[571047] Remove the workflow and server features

* delete org.eclipse.sirius.*workflow* plug-ins and features
* delete org.eclipse.sirius.server* plug-ins an features
* delete org.eclipse.sirius.services* plug-ins

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=571047 https://bugs.eclipse.org/bugs/show_bug.cgi?id=574125
Change-Id: I2acf99e3a9b9848d81c9f0ab7e9a5499896c928b
Signed-off-by: Laurent Fasani <laurent.fasani@obeo.fr>
diff --git a/packaging/org.eclipse.sirius.parent/pom.xml b/packaging/org.eclipse.sirius.parent/pom.xml
index 3818b3e..e1812e1 100644
--- a/packaging/org.eclipse.sirius.parent/pom.xml
+++ b/packaging/org.eclipse.sirius.parent/pom.xml
@@ -347,7 +347,6 @@
         <module>../../plugins/org.eclipse.sirius.synchronizer</module>
         <module>../../plugins/org.eclipse.sirius.table</module>
         <module>../../plugins/org.eclipse.sirius.tree</module>
-        <module>../../plugins/org.eclipse.sirius.workflow.model</module>
 
         <!-- features -->
         <module>../../packaging/org.eclipse.sirius.runtime</module>
@@ -360,51 +359,6 @@
       </modules>
     </profile>
     <profile>
-      <id>headless-server</id>
-      <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <build>
-          <directory>${build-folder-name}</directory>
-      </build>
-      <properties>
-        <target-platform-path>headless</target-platform-path>
-      </properties>
-      <modules>
-        <!-- plugins -->
-        <module>../../plugins/org.eclipse.sirius.services.common</module>
-        <module>../../plugins/org.eclipse.sirius.services.diagram</module>
-        <module>../../plugins/org.eclipse.sirius.services.graphql.common</module>
-        <module>../../plugins/org.eclipse.sirius.services.graphql.core</module>
-        <module>../../plugins/org.eclipse.sirius.services.graphql.emf</module>
-        <module>../../plugins/org.eclipse.sirius.services.graphql.workspace</module>
-        <module>../../plugins/org.eclipse.sirius.services.graphql</module>
-        <module>../../plugins/org.eclipse.sirius.server</module>
-        <module>../../plugins/org.eclipse.sirius.server.application</module>
-        <module>../../plugins/org.eclipse.sirius.server.backend</module>
-        <module>../../plugins/org.eclipse.sirius.server.diagram</module>
-        <!-- Disabled by default, see the README inside the plug-in for more details -->
-        <!--
-        <module>../../plugins/org.eclipse.sirius.server.diagram.sprotty</module>
-        -->
-        <module>../../plugins/org.eclipse.sirius.server.frontend</module>
-        <module>../../plugins/org.eclipse.sirius.server.frontend.workflow</module>
-        <module>../../plugins/org.eclipse.sirius.server.graphql</module>
-        <module>../../plugins/org.eclipse.sirius.server.images</module>
-        
-        <!-- tests -->
-        <module>../../plugins/org.eclipse.sirius.tests.server</module>
-        <module>../../plugins/org.eclipse.sirius.tests.services.graphql</module>
-
-        <!-- features -->
-        <module>../../packaging/org.eclipse.sirius.server.feature</module>
-        <module>../../packaging/org.eclipse.sirius.server.product.feature</module>
-
-        <!-- update sites -->
-        <module>../../packaging/org.eclipse.sirius.server.product</module>
-      </modules>
-    </profile>
-    <profile>
       <id>full</id>
       <activation>
         <activeByDefault>true</activeByDefault>
@@ -442,7 +396,6 @@
         <module>../../plugins/org.eclipse.sirius.editor.sequence</module>
         <module>../../plugins/org.eclipse.sirius.editor.table</module>
         <module>../../plugins/org.eclipse.sirius.editor.tree</module>
-        <module>../../plugins/org.eclipse.sirius.editor.workflow</module>
         <module>../../plugins/org.eclipse.sirius.editor</module>
         <module>../../plugins/org.eclipse.sirius.eef.adapters</module>
         <module>../../plugins/org.eclipse.sirius.interpreter</module>
@@ -455,7 +408,6 @@
         <module>../../plugins/org.eclipse.sirius.ui.editor</module>
         <module>../../plugins/org.eclipse.sirius.tests.junit.support</module>
         <module>../../plugins/org.eclipse.sirius.tests.swtbot.support</module>
-        <module>../../plugins/org.eclipse.sirius.workflow.edit</module>
 
         <module>../../plugins/org.eclipse.sirius.samples.family/samples/org.eclipse.sirius.sample.basicfamily</module>
         <module>../../plugins/org.eclipse.sirius.samples.family/samples/org.eclipse.sirius.sample.basicfamily.edit</module>
@@ -480,8 +432,6 @@
         <module>../../plugins/org.eclipse.sirius.sample.properties.radio</module>
         <module>../../plugins/org.eclipse.sirius.sample.properties.textarea</module>
         <module>../../plugins/org.eclipse.sirius.tests.ui.properties</module>
-        <module>../../plugins/org.eclipse.sirius.workflow.ui.page</module>
-        <module>../../plugins/org.eclipse.sirius.server.ui.autostart</module>
 
         <!-- features -->
         <module>../../packaging/org.eclipse.sirius.aql</module>
@@ -501,11 +451,9 @@
         <module>../../packaging/org.eclipse.sirius.properties.feature</module>
         <module>../../packaging/org.eclipse.sirius.specifier.properties.feature</module>
         <module>../../packaging/org.eclipse.sirius.samples.properties.feature</module>
-        <module>../../packaging/org.eclipse.sirius.workflow-feature</module>
 
         <module>../../packaging/org.eclipse.sirius.diagram.elk.feature</module>
-		<module>../../packaging/org.eclipse.sirius.diagram.elk.sdk.feature</module>
-        <module>../../packaging/org.eclipse.sirius.server.ui.autostart.feature</module>
+		    <module>../../packaging/org.eclipse.sirius.diagram.elk.sdk.feature</module>
         <module>../../packaging/org.eclipse.sirius.sample.basicfamily.feature</module>
 
         <!-- update sites -->
diff --git a/packaging/org.eclipse.sirius.server.feature/.project b/packaging/org.eclipse.sirius.server.feature/.project
deleted file mode 100644
index 5b0c436..0000000
--- a/packaging/org.eclipse.sirius.server.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/packaging/org.eclipse.sirius.server.feature/build.properties b/packaging/org.eclipse.sirius.server.feature/build.properties
deleted file mode 100644
index 8abe302..0000000
--- a/packaging/org.eclipse.sirius.server.feature/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/packaging/org.eclipse.sirius.server.feature/feature.properties b/packaging/org.eclipse.sirius.server.feature/feature.properties
deleted file mode 100644
index 5c8caca..0000000
--- a/packaging/org.eclipse.sirius.server.feature/feature.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-featureName = Sirius Server (Experimental)
-providerName = Eclipse Modeling Project
-description = Sirius Server used to provide a web application and an HTTP API to manipulate Sirius 
-copyright=\
-Copyright (c) 2018 Obeo and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
-\n\
-Contributors:\n\
-    Obeo - initial API and implementation\n
diff --git a/packaging/org.eclipse.sirius.server.feature/feature.xml b/packaging/org.eclipse.sirius.server.feature/feature.xml
deleted file mode 100644
index 79c2773..0000000
--- a/packaging/org.eclipse.sirius.server.feature/feature.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.sirius.server.feature"
-      label="%featureName"
-      version="7.0.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description url="http://www.eclipse.org/sirius">
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.sirius.server"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.backend"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.frontend"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.sirius.ext.ide"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.graphql"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.graphql"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.diagram"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <!--Disabled by default
-   <plugin
-         id="org.eclipse.sirius.server.diagram.sprotty"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-   -->
-
-   <plugin
-         id="org.eclipse.sirius.services.diagram"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.common.acceleo.aql"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.images"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.common"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.graphql.common"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.graphql.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.graphql.emf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.services.graphql.workspace"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/packaging/org.eclipse.sirius.server.feature/pom.xml b/packaging/org.eclipse.sirius.server.feature/pom.xml
deleted file mode 100644
index 59c8d1c..0000000
--- a/packaging/org.eclipse.sirius.server.feature/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <!-- Skip feature in Sonar analysis -->
-    <sonar.skip>true</sonar.skip>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.server.feature</artifactId>
-  <packaging>eclipse-feature</packaging>
-
-    <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho.extras</groupId>
-        <artifactId>tycho-source-feature-plugin</artifactId>
-        <version>${tycho-extras-version}</version>
-        <executions>
-          <execution>
-            <id>source-feature</id>
-            <phase>package</phase>
-            <goals>
-              <goal>source-feature</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-p2-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <executions>
-          <execution>
-            <id>attached-p2-metadata</id>
-            <phase>package</phase>
-            <goals>
-              <goal>p2-metadata</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/packaging/org.eclipse.sirius.server.product.feature/.project b/packaging/org.eclipse.sirius.server.product.feature/.project
deleted file mode 100644
index f58096e..0000000
--- a/packaging/org.eclipse.sirius.server.product.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.product.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/packaging/org.eclipse.sirius.server.product.feature/build.properties b/packaging/org.eclipse.sirius.server.product.feature/build.properties
deleted file mode 100644
index d487542..0000000
--- a/packaging/org.eclipse.sirius.server.product.feature/build.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-featureName = Sirius Server Product
-providerName = Eclipse Modeling Project
-description = Sirius Server used to provide a web application and an HTTP API to manipulate Sirius 
-copyright=\
-Copyright (c) 2018 Obeo and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
-\n\
-Contributors:\n\
-    Obeo - initial API and implementation\n
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/packaging/org.eclipse.sirius.server.product.feature/feature.properties b/packaging/org.eclipse.sirius.server.product.feature/feature.properties
deleted file mode 100644
index 14e6023..0000000
--- a/packaging/org.eclipse.sirius.server.product.feature/feature.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-featureName = Sirius Server Product (Experimental)
-providerName = Eclipse Modeling Project
-description = Sirius Server used to provide a web application and an HTTP API to manipulate Sirius 
-copyright=\
-Copyright (c) 2018 Obeo and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
-\n\
-Contributors:\n\
-    Obeo - initial API and implementation\n
diff --git a/packaging/org.eclipse.sirius.server.product.feature/feature.xml b/packaging/org.eclipse.sirius.server.product.feature/feature.xml
deleted file mode 100644
index a61a516..0000000
--- a/packaging/org.eclipse.sirius.server.product.feature/feature.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.sirius.server.product.feature"
-      label="%featureName"
-      version="7.0.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description url="http://www.eclipse.org/sirius">
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <includes
-         id="org.eclipse.sirius.server.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.application"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/packaging/org.eclipse.sirius.server.product.feature/pom.xml b/packaging/org.eclipse.sirius.server.product.feature/pom.xml
deleted file mode 100644
index 0c966ee..0000000
--- a/packaging/org.eclipse.sirius.server.product.feature/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <!-- Skip feature in Sonar analysis -->
-    <sonar.skip>true</sonar.skip>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.server.product.feature</artifactId>
-  <packaging>eclipse-feature</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho.extras</groupId>
-        <artifactId>tycho-source-feature-plugin</artifactId>
-        <version>${tycho-extras-version}</version>
-        <executions>
-          <execution>
-            <id>source-feature</id>
-            <phase>package</phase>
-            <goals>
-              <goal>source-feature</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-p2-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <executions>
-          <execution>
-            <id>attached-p2-metadata</id>
-            <phase>package</phase>
-            <goals>
-              <goal>p2-metadata</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/packaging/org.eclipse.sirius.server.product/.project b/packaging/org.eclipse.sirius.server.product/.project
deleted file mode 100644
index 5aaa912..0000000
--- a/packaging/org.eclipse.sirius.server.product/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.product</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/packaging/org.eclipse.sirius.server.product/Dockerfile b/packaging/org.eclipse.sirius.server.product/Dockerfile
deleted file mode 100644
index 2467ded..0000000
--- a/packaging/org.eclipse.sirius.server.product/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-FROM openjdk:10-jre
-
-LABEL maintainer="https://www.eclipse.org/sirius"
-
-LABEL org.label-schema.schema-version="1.0"
-LABEL org.label-schema.name="eclipsesirius/sirius-server"
-LABEL org.label-schema.description="Eclipse Sirius - Server"
-LABEL org.label-schema.url="https://www.eclipse.org/sirius"
-LABEL org.label-schema.vcs-url="http://git.eclipse.org/c/sirius/org.eclipse.sirius.git"
-LABEL org.label-schema.vendor="Eclipse Foundation"
-
-RUN groupadd -r developer && useradd -r -g developer developer
-
-ENV SIRIUS_SERVER_HOME /home/developer
-RUN mkdir -p "$SIRIUS_SERVER_HOME"
-
-ENV PLATFORM photon
-
-COPY /target/products/sirius-server-linux.gtk.x86_64.zip /home/developer
-
-WORKDIR $SIRIUS_SERVER_HOME
-RUN unzip sirius-server-linux.gtk.x86_64.zip
-RUN chown -R developer:developer "$SIRIUS_SERVER_HOME"
-
-USER developer
-RUN chmod +x /home/developer/sirius-server/sirius-server
-WORKDIR /home/developer/sirius-server
-EXPOSE 8080
diff --git a/packaging/org.eclipse.sirius.server.product/category.xml b/packaging/org.eclipse.sirius.server.product/category.xml
deleted file mode 100644
index 8c5965b..0000000
--- a/packaging/org.eclipse.sirius.server.product/category.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-</site>
diff --git a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.icns b/packaging/org.eclipse.sirius.server.product/icons/sirius-server.icns
deleted file mode 100644
index ac376a3..0000000
--- a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.icns
+++ /dev/null
Binary files differ
diff --git a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.ico b/packaging/org.eclipse.sirius.server.product/icons/sirius-server.ico
deleted file mode 100644
index 2ce6d3f..0000000
--- a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.ico
+++ /dev/null
Binary files differ
diff --git a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.xpm b/packaging/org.eclipse.sirius.server.product/icons/sirius-server.xpm
deleted file mode 100644
index bdeeaad..0000000
--- a/packaging/org.eclipse.sirius.server.product/icons/sirius-server.xpm
+++ /dev/null
@@ -1,1072 +0,0 @@
-/* XPM */
-static char *_528464163991[] = {
-/* columns rows colors chars-per-pixel */
-"1035 1027 39 1 ",
-"  c #261D57",
-". c #251E57",
-"X c #261E57",
-"o c #271E57",
-"O c #261F57",
-"+ c #251D58",
-"@ c #261D58",
-"# c #271D58",
-"$ c #251E58",
-"% c #251F58",
-"& c #251E59",
-"* c #261E58",
-"= c #271E58",
-"- c #261F58",
-"; c #271F58",
-": c #261E59",
-"> c #271E59",
-", c #261F59",
-"< c #271F59",
-"1 c #7168A3",
-"2 c #7169A3",
-"3 c #7269A3",
-"4 c #7369A3",
-"5 c #726AA3",
-"6 c #7168A4",
-"7 c #7169A4",
-"8 c #7168A5",
-"9 c #7169A5",
-"0 c #7268A4",
-"q c #7368A4",
-"w c #7269A4",
-"e c #7369A4",
-"r c #7269A5",
-"t c #7369A5",
-"y c #716AA4",
-"u c #726AA4",
-"i c #736AA4",
-"p c #726AA5",
-"a c None",
-/* pixels */
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.#<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<...<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..#<+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<#.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<...+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<+<<++<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.++..<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<..+.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<+<#<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<..#<.<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#.+<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#<.<.<#.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.+<#.+.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<+.++<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#<.<.<#<..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.+.#<+..<+<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<<.<.<#<#.#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<.<+.#.#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<.<#.+<.<+<..#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.<+<.<+.#<#..<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#.+<.<.<+<#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#.#<#<.<.<+.+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<..+<#.+<.+<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+.<<+.<+..<+<.<#<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+.+<.<#<#.#.+.+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<...<#<#<.<+.+..<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#<+...+<.<#<#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..+<#<#<.<+...+<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#<..+.+<.<#<#<...<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+.+.#.#<#<.<+<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<#<.<+<..+<.<.<<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..#+.#<+.<+..<+.#.+<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<.<#.<#<#.+<#<...<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<.<.#<#<+..<.<+<.+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#.++<...<#<+<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<.<.#<+<#<...<+.<+<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#.++<.<..+<#<#.<#.#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#<<.<.<+.#<#<.+.#..<++<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.#.+<#.+<..+<<.<+<..<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<+<.<+.#<+.+.#<.+<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<#.#.+<.<.<#<.<.#<...<.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<++.#.#<+<.<.<#<.<<.<+<+#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<+<..#<#.+.+<#+<.<#..+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#<#..<+.#<.<+...<++.#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<.<+<#<#.+.+<.#<#.<.<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<.<+...#<#<+<<#<.#<.<+<<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#.+<.<+<.<..#..+<.+<#..+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.#<.<+<+<#.<+.#<+.#<+..<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait7447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<.+<#....<+#.+<.<.<.<#<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<<+.#<#<.<<+..<.<+.#<#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++.<#.+<.<#.<#<+<#.+<...<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<+<#...#<#<..<#<...<+.#<+<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<+<+<..+<+..+<#<#.+<.<..+<+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt77747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<+..<+<<+.#<#<.<.<.<+.#.<<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474tt77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<#<#..#.+<..+<#.+<#.+<.+.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<+.#<<+.#.#<+.#<.<#<..#<+.#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t47774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<#.+.<.<+<.<.<#.+.+<+<.<.<#.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<..#<<.<+<.<.<#<+.+.#<.<.<#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t4747itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<#<+<.+<#.#.+<+..<#<.<#.+<+..<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#..<.#<.<+.#<..+<+.#<.<#<..+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<#.<#.#.+<+<#<.<.<#.+.+<#<<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777t474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+.<#<+<+...#<.<.<+<+.+.#<.+<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t777t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.+<.+..<.<#<.<#.+<#..<#<.<#..#<+.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t474t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<<#<.<..+<+.#<+.#<.<#<.<+<..+.+<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t774t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.#..+<+<#<#.+<.<.<#.+.+<.<+<#<#<..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiit4t7t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.<.<+.#.#<.<+..<.<+<+.+..<#.#<.<.<+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477474747t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<#.+<.<#..<#<+<#..<#<#<+..<#.+<.<<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t474744t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+.#.#<+<#<...<+<+...+<#<#<.<.<#..<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t777t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<.<+<.<..+<#<#..<#<#<..+.+<#.+.<+<..+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t47774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.<.<+.#<#<..#<#<.<+.+.#<+.+<#+..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t774t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#.#.+<#.+<..+<+<..+<.<#<.<.<#<..+<<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4tt477t7t447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<+..<+#<..#<.<+<.<.<+<.<+.#<+.+.#<+.#<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t4777t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<#..+<+<.<#.#.+<#.#.+<.<.<#<.<.<#.+<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747t7t774t4474iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<..<+<+<..#.#<+.#.#<+<.<.<#<.<..#<+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t747477t77t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<<#...#<+<+<.<.<+<..#<#.+.+<#<+<...+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777474t7t4t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#<..<+<+<#..<+.#<.<#..<+<.<#<...<+<#<.<+.##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t7t4777777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.+<<#.#..<+.+<.<.<#<+<#.#.+.+<+<#..<.<#<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t4t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#+.#.#<.<#<+<+<...<+.#.#<.<+<+.#<+<....#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t7t7777474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<<.<+<.<#<..#.#<+.+<.<+<.<#..<#.+.#<+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t44777777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<.#<..+<#.#..<#<.<+<.<#<..#<.<.<+<+<#..<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4777t7t4t474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<+<.+<+..<+<+<#<.<#.#.+.+<+<.<#<#....<+<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4474t4t7t474tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..+.#.<+<#<.<.<+.+<..#.#<.<+<+<..+.#<#<.<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77t7777774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<<#..<.<#.+<..#<+<+<.<#...#<+<#.+<.<#<#.+.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4477t477t477t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+.#<+<.<.<+<+<#...#<.<+<+<#...#<#<..+.#<.<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t774t774t747iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<.<#.+.#.+<#.#..<+<+<.<#.#..<+<+<..+<+<#.+.+<..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77777777777777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..#<#.#<+.#.#<.<+<+.+.#.#<.<+<+..<+<..#<#<+<<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4t4t4t4t4t4t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<+<.<.<+<.<#..<#<.<+<.<#..<#<#..<+<.<..#.<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77474747474744t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<<...#<#<..#<.<+<.<#<..#<.<+<.<.<+<.<+<+<#.+<#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t7t7t7t7t77t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..++<+<..+<+<.<#.#.+.+<+<.<#.#.+<#.#<#....<+..<++<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t477t477t477774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<+..<+<+<..#.#<.<+<+<..#.#<+.#.+.#<#<.<#<.<.<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t774t774tt4t74iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<...<#<#...#<+<+<.<#...#<+<+<.<.<+<#.+<.<#<.<#.+#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t7t477t7477t47iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<.<+.#<+<#...#<.<+<+<#..<+.#<.<..#<#<..+<.<.#<+.++<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4747774t47t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<#.+..<+<+<.<#.#..<+.+<.<.<#<+<..+<+.#.++<.<<<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777474t477744t4t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<....#<#<.<+<+.+.#.#<.<#<+<+<..+<+..<+<#.#<<.<.+.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t7t7t774t7t77777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<+<+<.<.<#..<#<.<+<.<#<..#.#<+..<#<#..<+<.#.+<<#.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747777t7t477747474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<.<..++.#<..#<.<+<.<+.+<#.#..<#<.<+<.<<+..<+.#..#<#<..#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4t47774t7t7t7t7titaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<+<#<<#.+<+<.<#.#.+<...<+<+<#<.<#.#.+.<#<#.+<<+<..+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777774t7t7t477t4774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<...#<+<+.+.#.#<+<#<.<.<+.+<..#.#<.#<#<+..+<+..<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t7t4747774t774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<+<...<#<.<+<..#<.<#.+<..#<+<+<.+<...<#<..<#<#..<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77t77474t7t477t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..<+<#<+.+.#<#..<+<.<.<+<+<#...#<.#<+<#<.#<.<+.#<+.#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4744t477t7t47774t477t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<#..<.<#<.<.<+<#.#.+<#.#..<+<+<.+<.<..+<<.<#<#.+<#.+.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7774t47774t47774t47ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+<+.#<.<.<#<.<.<+.#.#<+.#.#<.<+<+.<.<.<+.#+<....#<..#<#<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744t7t774t7t774t7t7774iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#.+<#.+.+<#.+<.<+<.<.<+<.<#..<##.+<#.+<.#<+<+<.<+<.<..#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai47t4t477t4t477t4t477t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+..<+<+..<+.#<+.#.#<+.#<.<#<..#<+.#<.<#<.<..+<..+.+<#<..+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477477t77477t77477t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+#<#..<#<#.+<.<.<+<.<.<#.+.+<+<.<.<#...+<+<#<+<#<#<..++<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t774t4t77477t774t4t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<#<..#<#<+..<.<+<.<.<#<+.+.#<.<.<#<+<+.#.#<..#<.<.<+.#<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t47777t4t774t47777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<...+<+<...<#<+<#.#.+<+..<#<.<#.+<+..<#.+<.<#..<#.+<.<.<.<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t7777477t477t77774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#<..#<+<#<..#<.<+.#<..+<+.#<.<#<..+<+.#.#<+<#<.<.<#<#<.<.<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t4t4t774t774t4t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.+<+<.<..+<.<#.#.+<+<#<.<.<#.+.+<#<.<.<+<.<+.+<#.+.+.+<#.+.<.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77477t4t4t4t4t477t7747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+.#<.<.<+.#<#<+<+...#<.<.<+<+.+.#<.<.<+<.<..+.#<+.+.+.#<+.+<.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t77477777777t774t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#.+<#.+<+..<.<#<.<#.+<#..<#<.<#.+<#.#.+<#<.<.<#<#<.<.<#<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t4t77777777477t4t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+.#<.<..+.+<#<#<.<.<#<+.#.#<+.#<.<#<..#<+.#<.<.<+..<+<.<#<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4747477t4t4t4t4t77477t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<.<#.+<#<#<..+.+<#.+..<.<+<.<.<#.+.+<+<.<.<#.+<.<#<#.#.+.+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait7t7t77477t477t4t4t77477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.<.<#<+.#<.<.<+.+.#<+.+<.<+<.<.<#<+.+.#<.<.<#<+..<#<#<.<+.+..<#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t4t774t7747777t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<+..<.<#.+<.<#<.<.<#<+<#.#.+<+..<#<.<#.+<+..<#<+...+<.<#<#<+..<<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t4t477t4t77774t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<#<#<.<.<#<.<+.#<..#<.<+.#<..+<+.#<.<#<..+.+<#<#<.<+...+<#.+<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t77477t77477t4t477t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#<..+.+<#.+.+<.<.<#..<#.#.+<+<#<.<.<#.+.+<#<#<..+.+<.<#<#<..#<..<..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t4t77477t77477t7747474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<+.+.#<+.+..<#<#<+<#<+<+...#<.<.<+<+.+.#<.<.<+.+.#.#<#<.<+<.<+.+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77777t4t774t4t774t4t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.<#<.<.<#<#<+.+..<+..<.<#<.<#.+<#..<#<.<#.+<.<#<.<+<..+<.<+<.+<<.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477774t477t4t477t4t4777t7tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+..<+<+...+<#<#<.<#<.<..+<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#..<+<+..<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaattt4t477t77477t77477t74t4774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+<..<#<#<....+<..+<+<#<+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.#<#..<#<#.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t77477t774t4t77477774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#+..#<#<.<+<+.#<+.#.#<..+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+<#<..#<#<+..<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t4t774t47777t4t74t7tt4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..+<+<..+<.<#.+<#.+<.<#.#<.<.<#<#<+...+<#.+<+..<#<.<.<#<..+<+<...<#<+<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t477t477t77774t4777t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.<+.<+..<+<+..<+.#.#<+<.<+.#<..+<#<#<.<.<#<..+<.<+.#<.<+.#<.<+<#<...<+<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7477t774t774t4t477t74t477t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.+<.<#<#..<#<.<.<+<.<+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.#.+<+<.<..+<<+#.#.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t774t4t4t4t477t77477774t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<#<#<..#<#<.<+<.<...<#<#<+<.<+.+.#<+.+.#<...<#<#<+<+....<#<+.#<#<.<+.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t477777777t774t4t74t7t774t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<+...+<+<..+<#.#.+<#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<.<#<#<+.#.+<..+<.+<.<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t77777777477t4t4777t7t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+.#<+.#<+..<+.#<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#.+<#<#<.<.<+..<++.#<+.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t4t4t4t4t77477t74t47774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<#.+<.<.<.<#<#.+<+<#<#<...<#.+.+<#.+.+<.<+<#<#<..#<....+<+<.<#<#.<.<.<#.+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4t477t477t4t4t77477774t7t7t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+..<.<+.#<#<+...#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+<.<+<+.#..<#<#<.#<.<..#<.<<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t774t7747777t4t74t7t4747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<+<#.+<...<#<.<#.+<.<+..<#<.<.<#<#<+..<#.+<.<+<.<#.+<#<+...+<.+<#<+<..+.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t477t4t77774t4777t77474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#<...<+.#<+<#<.<#<.<.<#<..+<+.#<+...+<#<#<.<.<#..<+<+...+<#<#<.#<...<+<#<+.<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t477t77477t4t477t74t477t7t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<#<#.+<.<..+<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+.#<#..<#<#<..+.+<.+<+<#..<.<##.+..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77477t77477t77477774t47774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+#.#<#<.<.<.<+.#.+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+<#<..#<#<.<+.+.#.<+<+.#<.<.<<+.+<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t4t774t4t774t4t74t7t774t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<..+<#.+<#.+<#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<..+<+<..+<.<#<.<<#..<#.+<#.+.<#<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t477t7t477t7t47t4t477t4t47t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<..<+<.<<+..<.<+..<+<+..<+.#<+.#.#<+.#<.<#<.<+..<+.#<+.#.#<+.#<.<#<..#<+.#<..<<.<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t47774t47774t47777477t77477t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.#.+.<#<+<.<#<#..<#<#.+<.<.<+<.<.<#.+.+<.<#<#.+<.<.<+<.<.<#.+.+<+<.<.<#..+#.+.+<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t47774t7t774t47t774t4t7747t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.#.#<.#<#..<#<#<..#<#<+..<.<+<.<.<#<+.+.#.#<#<+..<.<+<.<.<#<+.+.#<.<.<#<+<#<+.<.<<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t774t7t47477t7774t47777t4t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+<.+<..#<+...+<+<...<#<+<#.#.+<+..<#<.<+<...<#<+<#.#.+<+..<#<.<#.+<+..<+..<<#.+#.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa54t477t4777474t7t47t4t7777477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<.#<.<+.+<#<#<..#<+<#<..#<.<+.#<..+<+.#.#<+<#<..#<.<+.#<..+<+.#<.<#<..+#..<+<.<.#<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t774t7t7t47777477t4t4t774t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.++<+<.<#<..+.+<+<.<..+<.<#.#.+<+<#<.<.<+<.<..+<.<#.#.+<+<#<.<.<#.+.+<#<<+<#.#.++<.<.<.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7t7t7t47774t47t77477t4t4t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<...<#<.<+.+.#<.<.<+.#<#<+<+...#<.<.<+<.<.<+.#<#<+<+...#<.<.<+<+.+.#<..<+.#.#<<.<.<++..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47474747774t7t7774t4t774777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<+.+<.<#<.<#.+<#.+<+..<.<#<.<#.+<#.#.+<#.+<+..<.<#<.<#.+<#..<#<.<#..+<.<+<.#.+<#.<.<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774747474t477t7t47t4t477t777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<<...<+.#<+..<+<+..<#<.<..+<+.#<+.#.#<+.#<.<#<.<..+<#<.<.<#<+.#.#<+#<+.+.#<+<.<.<+<.+<#+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7t774t47777477t774t4t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<#<#.+<.<#<#..<#<..+<+<#<#.+<.<.<+<.<.<#...+<+<#<+.+<#.+..<.<+<.<<.<#<.<..#.+<#.##<....<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t477t7t774t47t774t4t477t477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<#<.<.<.<#<..#<#<+.#.#<.<+..<.<+<.<.<#<+<+.#.#<..+.#<+.+<.<+<.<..<.<#<.<#.#<+.#.<.<+<+<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t774t47477t7774t47777t774t774t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<..+<#.+<..+<+<..#.+<.<#..<#<+<#.#.+<+..<#.+<.<#.#<.<.<#<+<#.#.+<<#.+.+<#<+<.<.<++<.<#..<<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t77t77474t7t47t4t77774t477t4t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++.<+.#<+.#<.<+<+.#.#<+<#<...<+<.<#<..+<+.#.#<+<.<+.#<..#<.<+.#+.#<.<+..<+.#<.<..<+<.<#<..+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4744t477t7t47777477t4t477t77477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.<.#.+<#.+<+<.<.<.<+<.<..+<#<#.#.+.+<#<.<.<+<.<+<.<.<#..<#.#.+<<#.+.+<..+<.<.<##<#.#.+.+<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7774t47774t47t77477t77477t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+..<+....<#<.<+<.<.<+.#<#<.<+.+.#<.<.<+<.<...<#<#<+<#<+<+....#<#<+<#<+<+<..<#<.<+.+.#<.<.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7744t7t774t7t7774t4t774t4t774t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<.<#<#<+.+<#.#.+<#.+<..+<.<#<.<#.+<#.#.+<#<+.+..<+..<.<#<<+<.<..#<..#.#<+..+<.<#<.<#.+<.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47747777t47777t7t4t477t4t477t4t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<#<.<..+..<+<+..<+.#<+.#.#<+.#<.<#<.<.<#<#<.<..+<..+.+<#<..+.+<#.+<#<#<.<#<.<.<#<.<+..<+.#<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4tt7t474t7t4747477t77477t77477t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<++<<..+<+<#<#<#..<#<#.+<.<.<+<.<.<#.+.+<#.+...+<+<#<+<#<#<..+<#<#<..#<....+<+.+<#.+.+<.<#<#.+<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777474t77774t7t7t774t4t77477t77477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<+.#.#<.<#<..#<#<+..<.<+<.<.<#<+.+.#<+.+<+.#.#<..#<.<.<+.#<.<.<+<.<+<+.#.+.#<+.+..<#<#<.<.<...<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74tt777t4t4777474t47777t4t774t4t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+<.<#...+<+<...<#<+<#.#.+<+..<#<.<.<#<#.+<.<#..<#.+<.<.<#.+<.<+<.<#.+<#<.<.<#<#<+...+<#.+<#<+...<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t474t4t777t7t4t7777477t477t4t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#.#<+<+.#<.<+<#<...<+<.<#<..+<.<+.#<.<+.#.#<+<#<.<.<#<#<.<.<#..<+<+..<.<+.#<..+<#<#<.<.<#<..+<.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t77777t4747477t4t4t774t77477t74ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.<#.+<+<.<..+<#<#.#.+.+<#<+<.<.<#..<.<+<.<+.+<#.+.+.+<#.+.#<#..<#<+<.<.<#.#<..+.+<#.+.+<#<+<.+<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77777t474t7t7t77477t4t4t4t4t7747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<+<.<.<+....<#<+.#<#<.<+.+.#<...<#<#<+<.<+<.<..+.#<+.+.+.#<+.+<#<..#<#..<#<#<+<.<+.+.#<+.+.#<...#<+<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4t474t7777474t4t77477777777t4t74t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#.++.<#<#<+.#.+<..+<.<#<.<#.#<+.+..<+<#.#.+<#<.<.<#<#<.<.<#<..+<+<..#<+.+..<+<.<#<.<.<#<.<#.<+<..#<+.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait4t4t7t47777t7t4t477t77777777477t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<.+<#<#<.<.<+..<+<.<#<.<+<..+.+<#.#<.<#<..#<+.#<.<.<+..<+<.<#<.<+<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#<.#<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777774t7t4747477t774t4t4t4t4t77477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.#<....+<+<.<#<#.#.+.+<.<+<#<#<...<#.+.+<+<.<.<#.+<.<#<#.#.+.+<.<+<#<#<...<#.+.+<#.+.+<.<+<#<#<..+<.+<+.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t4777774t7t7t774t4t477t477t4t4t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<+<+.#..<#<#<.<+.+..<#.#<.<.<+<#<+.+.#<.<.<#<+..<#<#<.<+.+..<#.#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+..<<.+<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t4t4777474t47777t774t7747777t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<#.+<#<+...+<.<#<#<+..<#.+<.<+..<#<.<#.+<+..<#<+...+<.<#<#<+..<#.+<.<+..<#<.<.<#<#<+..<#.+<.<<++.#<.<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747774t4t777t7t4t77774t477t4t77774t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+...+<#<#<.<+...+<#<#<.<.<#<..+<+.#<.<#<..+.+<#<#<.<+...+<#<#<.<.<#<..+<+.#<+...+<#<#<.<.<#<..+<+.#<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t47777t4747477t4t477t77477t4t477t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#..<#<#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<#.+.+<#<#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+.+<#<.<.<#.+.+<.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t7t474t7t7t77477t77477t77477t774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..#<#<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<+<+.+.#<.<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+.#<.<.<+<+.+.#.<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77774t7777474t4t774t4t774t4t774t4t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+<..+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#..<#<.<#.+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<.<#.+<#..<#<.<<#<.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t477t4t4777t7t477t7t477t7t477t7t4477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<+.<.#<+.#<.<#<..<+<.<+.#<+.+.#<+.#<..#<.<+<.<+.#<+.+.#<+.#<..#<+.#<+.#<..#<#<..#<.<+<.<+.#<+.#<..#<#<..+.<+..<+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t77477t74t47774t47774t47774t4777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<.++<.<.<#.+.+<<#.#.+<.<.<#<.<.<#.+<+<.<#.#.+<.<.<#<.<.<#.+<+<.<.<.<#.+<+<..+<+<.<#.#.+<.<.<#.+<+<..+<++<.<#<#.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774t4t77477774t7t774t47774t7t774t4474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.<+<.<.<#<+.+.#+.#.#<+<.<.<#<.<..#<+<+.+.#.#<+<.<.<#<.<..#<+<+.#<.<..#<+<+..<+<+<..#.#<#<.<..#<+<+..<+<..<#<#<.<+.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47777t4t74t7t47477t774t7t47477t77t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+<.#.+<+..<#<.<<.<+<..#<#.+.+<#<+<...<#<.<+<..#<#.+.+<#<+<...<#.+<#<+<...<#<#...#<+<+<..+<#<+<...<#<#..#<+...+<.<#<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t77774t4777t77474t477t4777474t7t447777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<.#<..+<+.#+.#<#..<+.#<.<+..<+<#<+.+.#<#..<+.#<.<+..<+<#<+.#<...<+<#<.<+.#<+<#...#<#<...<+<#<.<+.#<.+<#<#<.<+...+<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t4t477t74t477t7t774t774t7t7t4777t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<.+<+<#<.<.<<.<.<+<#<#.+.+<.<#..<.<#<.<.<+<#<#.+.+<.<#..<.<#.+<+<#..<.<#<#.+..<+<+<..+<+<#..<.<#<#.+#<..+.+<.<#<#<...<.+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t477t77477774t477t7t7t7t7t47774t4474ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<++...#<.<.<+#<.<.<+...#<#<+<+.#<.<.<#<.<.<+...#<#<+<+.#<.<.<.<+<+.#<+<....#<#<.<+<+..<+<+.#<+<....#<<.<+.+.#.#<#<.<+<.<<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t774t4t74t7t774t47474747774t7t77t777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<#.+<#..+<#.+<.<+<.<..#<#.+<#.+.+<#.+<.<+<.<..#<#.+<#.+<#..<#.+.#<+<+<.<.<#..<#<#..<#.+.#<+<+<.+<.<#<.<+<..+<.<.<+..<.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t4t4777t7t47774747474t7t477t7t7t447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#<.+.#<+<.<.<+<#..<.<+<.<+.#<+.+.#<+.#<#..<.<+<..#<#<..#<+.+.#<.<+<+<#.+.#<..#<#<..#<.<.<+<+<#...<+<+..<#<.<.<#.+<#<#<.#<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t77477t74t47774t7t7t7t7t47774t474777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.+<<.<..#.+<#.#<+<#<#...+<.<.<#<.<.<#.+<+<#<#..<+<..+<+<.<#<.<.<#....<+<#.+<+<..+<+<.<#<#....<+#<#..<#<+.+<#.+.#<....+<<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t4t77477774t7t7t477t47774t4777474t4477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.##<.<#.#<+.#..<+.+.#<#<+<.<.<#<.<..#<.<+.+.#<+<+..<+<.<.<#<.<+.#<#<.<..#<+<+..<+<+<..+.#<#<.<<#<..#<#.+.#<+.+<.<+<+.#.<.<<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747777t4t74t7t4747774t774t7t774t7t7t77t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.+<#<+<.<.<+.+<.<#.+<..#<#.+.+<#<+<..+<.<#.+..<#<#..<#.+.+<#<#.+<.<#<+<...<#<#...#<+<#.+<.<#..+<+<..#<.<.<#<+<.<#.+<<.<..<.<<<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t77774t4777t77474t7t477t7t477t477t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<+..<+.#<.<#<+.+.#<#..<+<.<#<...<+<#<+.+.#<#<.<+.#<+.#<.<+...#<#<...<+<#<+..<+<+<#...#<#<..<+.#<.<+<.<+.#<...<+<+...+<#<<+..#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4t477t74t477t7t47774t47774t774t774t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<..+<.<.<#<.<#<.<.<+<#.#.+.+<+<#..<.<#<.<.<.<#<#.+<#.+.+<.<+<..+<+<#..<.<#<#.#..<+<+<..+<+#.+<+<.<+<.<.<#.#<#..<#<#<..+.+<+<.<<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<a",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t77477774t47774t47774t7t7t7t7t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+#<+<+<...<.<#<.<.<+.#.#<.<+<+.#<.<.<#<.<+<....#<..#<#<+<+<+..<+<+.#<.<.<+.#.#<.<+<+..<+<<+....<#..<#<#<+<#<..#<#<.<+.+.#<.<..<<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<aa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t774t4t74t7t774t7t774t7t47474747474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<..#.#<+<#.+.+<#.+<.<+<.<#..<#.+<#.+.+<#.#<+<+<.<+<.<..#..<#<#..<#.+<#.+<.<+<.<#..<#<#...<#<#<+.#<+.+..<..+<+<..+<.<#<.<#.++<..<.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<aaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t4747777t7t477t7t477t77474747474747474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.++<.++<+<.<.<+<.<+.#<+.+.#<+.#<..#<#<..#..<.<+<.<+<+<#.#<.<+<.<#<..#<.<+.#<..#<+.#<+.#<<..+.+<#.+<#<#<.<#<.<.<#<.<+..<+#<..#<.<+<.<.<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t777t4t4t47774t47774t477t7t7t7t7t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..<<...#.+<#.#.+<.<.<#<.<.<#.+<+<..+<+<+<#<#..<#....<+<.<#.#.+.+<+<.<#<#.+<+<.<.<.<#.++<#<#<..#<....+<+.+<#.+.+<.<#<#..+<+<.<#.#.+<#.#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<aaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77474t7777774t7t774t47774t477t477t477t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<+.<+#.#<+.#.#<+<.<.<#<.<..#<+<+..<+<.<+.+.#<+.#<#<.<+<..#.#<.<+<+<....#<+<+.#<.<..#<.#<.<.<+<.<+<+.#.+.#<+.+..<#<#<..<+<+<..#.#<+.#..<.<#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<;aaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t474t4t7t47477t774t7t774t774t774t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#.<<+<.<.<+<..#<#.+.+<#<+<...<#<#...+<.<#.+<#.+<.<#.#<+<+<.<#...#<+<+<...<#.+<#<+<..<#.+<.<+<.<#.+<#<.<.<#<#<+...+<<#...#<+<+<.<.<+<.<.<..+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<.<aaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7t7747777t77474t477t477t7t477t7t7t477t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<+.#<.<#..<+<.<#<...<+<#<.<+.#<#<+.+.#<..#<#<..+<#...#<.<+<+<#..<+<#<+.#<...<+<<#<.<.<#..<+<+..<.<+.#<..+<#<#<..<+<+<#..<+.#<.<..#<+.#<.<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.++<++.<#aaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747477t4t4t477t7t774t774t47774t4747774t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<.<#<+<#.#.+.+<+<#..<.<#<#.+<.<#<.<.<+<..+<+..<+<+<.<#.#..<+<#..<.<#.+<+<#..+.+<#.+.#<#..<#<+<.<.<#.#<..+.+<<#.#..<+.+<.<.<#<+<.<.<.<.<..<##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<<<...<.+aaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t4t7777774t477t7t7t7t774t4777474t47774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<+<+<...<+.#.#<.<+<+.#<+<....#<.<.<#<.<+<+..<+<#<.<+<+.+.#.#<.<+.#<.<.<.<+<+.#<.+.#<+.+<#<..#<#..<#<#<+<.<+.+.#+.#.#<.<#<+<+<..+<+.#<.<+<+..#<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.+..<.<<aaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaati4t77474t4t7t774t474747477t774t7t7t774t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#.#<+.+<.<+<.<#..<#.+.#<+<+<.<#.+.+<#..<#<#..<.<#..<#<.<+<.<#<#.+<#.+<#..<#.+#<.<.<#<..+<+<..#<+.+..<+<.<#<.<<.<+<.<#<..#.#<+..<#.+<#..<#+<...<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<..<.<<#<.<aaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4747777t7t47774747474t477t7t477t7t477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<..<#<.<+<.<#<..#<.<.<+<+<#.+.#<..#<+.#<+.#<+<.<.<+<..#<#<....#<#<..#<+.+.#<<.<+..<+<.<#<.<+<..+.+<#.#<.<#<..<+<.<+.+<#.#..<#<.<+<.<<.<#<.<+<+.#<+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<..+.+<..<<.aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t777t4t4t47774t7t7t7t7t774t47774t47774t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#++<.<.<#.#.+.+<+<.<#<#....<+<#.+<+<.<.<.<#.+.#.+<#.#<+<..+<+<+<..+<+<.<#<.<.+<.<#<#.#.+.+<.<+<#<#<...<#.+.+<<#.#.+<...<+<+<#<.<#.#.+#.+.+<.<<.+<.<.<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.#.<+<+<#<<<.<.+#aaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7474t7777774t7t7t477t477t7t774t47774t7t77747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<..#.#<.<+<+<..+.#<#<.<..#<+<+.#<.<..#<#.#<+.#.+<+..<+<+<+..<+<.<.<#<.<..<#<#<.<+.+..<#.#<.<.<+<#<+.+.#+.#.#<+<#<.<.<+.+<..#.#<<+.+..<#++..<.<+#<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.;<+.+<.<..#<.+.<.#.aaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t474t4t7t4747774t774t47477t774t7t4747t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..#<+<+<.<#...#<+<#.+<.<#<+<...<#.+<#<+<.<+<.<.<+..<#<#....<#<#..<#.+.+<##<+...+<.<#<#<+..<#.+<.<+..<#<.<<.<+<..#<.<#.+<..#<+<+<..<#<#<+..<#<+<#..+<#.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.<#<.<.<.<#.+<.<aaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7747777t77474t7t477t77474t7t477t77474477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#..<..#<.<+<+<#...#<#<...<+<#<+.#<...<+<.<+.#<.<#<.<+.#<#<.<+.#<+.#<.<+..+<#<#<.<+...+<#<#<.<.<#<..+<+.#+.#<#..<+<.<.<+<+<#...#<<+...+<#<#<...<+#<...<+<.<+...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#..<.<<+...+<#<#<..<.aaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747477t4t4t477t7t47774t477t7t47774t477t7tt7744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<+<.<#.#..<+<+<..+<+<#..<.<#.+<+<#...+<.<.<#<.<#<#.+<.<#<#.+<#.+.+<.#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<<.<.<+<#.#.+<#.#..<+<+<..<#<#<....+<#<#..+<+<#..<.+<+<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<.<+<.<..<#<#<..+.+<<<aaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t4t7777774t47774t47774t47774t47774t4774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+<+.+.#.#<.<+<+..<+<+.#<.<.<.<+<+.#<#<+<+<..+<....#<+<....#<..#<#<+<<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<+#<.<.<+.#.#<+.#.#<.<+<+..#<#<.<+<+.#<#<..<+<+.#<.<.<+..<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.+..<+<+..#<#<.<+.+.#<aaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t77474t4t7t774t7t774t7t774t7t774t7t774t777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#..<#<.<+<.<#..<#<#..<#.+<#.+<#..<#.+<..#.#<+.#<+<+<..#<+<+<.<+<.<..#+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#..+<#.+<.<+<.<.<+<.<#..<#+<..+<.<#.+<..+<<#..<#.+<#.+<.<.<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<.<.<<#<#..+<+<..+<.<#<.<aaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47777t77t7t477t7t477t7t477t7t477t7t4774t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<++.#<.<#<.<.<#<.<+..<+#<..#<.<+<#.#..<#..<.<+<#..<.<+<.<+<+<#...<+<+..<+.#<+.#<.<#<.<+..<+<+..<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#<+.#.#<+.#<.<#<.<+..<+.#<+.#.#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<#.#..<.<+.#<+..<+<.<<.<<.aaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t4744t47774t47774t47774t47774t47774t777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<.<#.+.+<#.+.+<.<#<#..+<+<.<#..<+<+<#<+<#<#..<+<#<#..<#....<+#<#..<#<#.+<.<.<#.+.+<.<#<#..<#<+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+..<.<+<.<.<#.+.+<.<#<#.+<.<.<+<.<#<.<.+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<.<+..<+<+<#.+<.<.<#<#.#.+.<.aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t7t7774t7t774t47774t7t774t47774t7t77t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<#<+.+.#<+.+..<#<#<..<+<+<..#<.<.<+..<+.+.#<.<+.+.#<+.#<#<.<<#<..#<#<+..<.<+<+.+..<#<#<..#<#.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+<.<+<.<.<#<+.+.#.#<#<+..<.<+<.<.+<<..<+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<+.+..<#<.<.<+.#<+<.<.<+.#.#<+#aaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t477744t7t47477t774t7t47477t774t7t474774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+..<#<.<.<#<#<+...+<<#...#<+<.<#.+<..+<.<#.+.+<.<#.+<#.+<.<#..+<+<...<#<+<#..<#<#<+...+<+<..#<.<.<#<#<+...+<#.+<+..<#<.<.<#<+<#.#.+<+..<#<.<+<...<#<+<#.#.+<..+<<#...<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..+<.<.<#<#<.<#.+<.<..#<#.+<.<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t777t77t77474t477t4777474t7t477t77474777t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<.<.<+.#<..+<#<#<..<+<+<#.+<.<.<+<#<+.+.#<#<+.+.#<..#<#<..<+.#<.<+<#<...<+<+...+<#<+.#<.<+<.<+.#<..+<#<#<.<.<#<..+<.<+.#<..#<.<+.#<..+<+.#.#<+<#<..#<.<+.##<.<+.#<+<#..<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.+.#<.<+.#<..+<.<.<+<#..<+<.<<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4744t477t7t774t774t7t7t47774t477t7tt4744t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+<.<.<#.#<..+.+<<#.#..<+.#.+<#.#<.<#<.<.<.<#<.<.<+<..+<+#.+<+<.<..+<#<#..<#<#<..#.+<+<.<+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#..<#.#.+<+<#<.<.<+<.<..+<.<#.#.+<<.<#<#.+..<+<.<.#.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<..<.<<.<.<.<#.+<+.#.+<#.#<+<#.#.+.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t474t7t7774t477t7t7t7t7t47774t47774t4774t7t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<...<#<#<+<.<+.+.#+.#.#<.<#.#<+.#..<.<#<.<.<.<#<.<+<+..<+<<+....<#<+.#<#<..#<#<.<+<+....<#..<#<#<+<.<+.+.#<+.+.#<...<#<#<+<#<+<+...#<.<.<+<.<.<+.#<#<+<+..+<....#<#<.<+<+.<+.<.<#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<..<+<<.<+#<.<.<.<.<+<#.#<+.#..<+.#.#<<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t777744t7t774t47474747774t7t774t7t774t77744t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<+.+..<+<.<#<.<<.<+<.<#<+<.<.<+<#.+.+<#<#.+.+<#..<#<#...<#<#<+.#.+<..+<+<..+<.<.<#<#<+.#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<+..<.<#<.<#.+<#.#.+<#.+<+..<.<#<.#<+<+<.<.<#..+<.+<.<..+.<.<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<#.<.<<#..++<..+<#<#.+<#..<+<.<.<+.+<.<+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t7t477t7t47774747474t7t477t7t7t477t77t47777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<..+..<+.<+<..#<#<...<+.#<+..<+<.<+.+.#<..#<+.#<+.#<.+<#<#<.<.<+..<+<+..<+.#.+<#<#<.<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#<#<.<..+<+.#<+.#.#<+.#<.<#<.<..+.<+<+<#.+.#<..#<#<..#<.<.<+<+<#..+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<#<..<+.#<+.#.<+<.<+.+.#<..#<#<..#<.<#<+.<.<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai74t47774t47774t7t7t7t7t47774t4747774t4774t7t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.++<<#<#.<#.#<+<..+<+.+<.<.<#<#.#.+<.<#.+<+<.<.<.<#.+#<....+<+<.<#<#..<#<#.+<#<....+<+<#<#<...<#.+.+<#.+.+<.<+<#<#<....+<+<#<#.+<.<.<+<.<.<#...+<+<#<<#....<+<#.+<+<..+<+<.<#<#....<+#<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<.<.<..+<+<.+<.<.<<#.#.+<.<#.+<+<..+<+<.<#<.<#.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t47774t7t7t477t47774t4777474t4777477774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<#<.+.#.+<+..<+<#<+<.<.<+.#.#<+<..#<+<+.#<.<..#<<.<+<+.#..<#<#<..#<#<+..<.<+<+.#.#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+<+.#.#<.<+..<.<+<.<.<#<+<+.#.#<.+.#<#<.<..#<+<+..<+<+<..+.#<#<.<<..<.<<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<..<+<+<+..<+<++..<.<++.#.#<+<..#<+<+..<+<+<...<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t774t7t4747774t774t7t774t7t7t774t7tt4t477747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+.<..+<<.<+..<#<#..<..#<#.+<.<+<..#<+<...<#.+<#<+<.+<.<#.+<#<+...+<+<...<#<+<.<#.+<.<#.+<.<+..<#<.<.<#<#<+..<#.+<.<#.+<.<#..<#<+<#.#.+<+..<#.+<.<#.<#.+<.<#<+<...<#<#...#<+<#.+<.<#+<<.<.#.<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#..<.<<#....<#<#...<#<+<#.<.<+<..#<+<...<#<#...#<+<#.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7t477t77474t7t477t7t477t477t477t4774t4t777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++.#<.<#<.<+.#<#..<+<.<+.#<#..<.<+<#<+.#<...<+<..<+<+...+<#<#<..#<+<#<...<+<+..<#<.<.<#<..+<+.#<+...+<#<#<.<.<#<+.#.#<+<#<...<+<.<#<..+<+.#.#<+..#<#<...<+<#<+..<+<+<#...#<#<....<+.#<+<#<..<.<#<.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<<.<..#<+<+.<+.#<#<.<+.#<<#<...<++.#<#..<.<+<#<+..<+<+<<.+.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47774t477t7t47774t47774t774t774t774t7777t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.<.<.<#<.<#<#.+<+<#.#.+<.<.<+<#<#..<.<#.+<+<#..#<#..<#<#<..+.+<+<.<..+<#<#..<#<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+..<.<+<.<..+<#<#.#.+.+<#<.<.<+<.<<+<..+<+<#..<.<#<#.#..<+<+<..+<+#<#.+<.<..+<<.<..+<+..<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+#<<+<#.<.<+<.<<.<#<#.+<.<#<#.+..+<#<#.<.<.<+<#<#..<.<#<#.#..++<#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t47774t47774t47774t7t7t7t7t7t7t7t77t474t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<..+<....#<.<+.#.#<#<.<.<+.+.#<.<.<.<+<+.#<<#<..#<#<.<+.+.#<.<.<+.#<#<..#<#.+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+<.<+<.<.<+.#<#<.<+.+.#<.<.<+<.<.+<+..<+<+.#<.<.<+.#.#<.<+<+..<+<<#<.<.<.<+.#+<+..<+<<..<<.<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..<+<.<+.#.<+<.<.+<....#<+<....#<<+.#<#<.#<.<.<+.+.#<.<.<+.#.#<.<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t774t7t774t7t774t7t474747474747474774t7777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<+.#<+<+<..+<.<+<..+<#.+<.<#.+<#.+<#..<#.+..+<+<..+<.<#<.<#.+<#.+<..+<+<..#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<+<#.#.+<#.+<..+<.<#<.<#.+<#.#.+<..<#<#..<#.+<#.+<.<+<.<#..<#<#....+<#.+<#.+<..+<<#..+<+<.<.<<<#.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<.<.<<#..<.<.<+<.#.+<.#<+<+<..#<+<+<.#.+<..+<.+<#.+<.<#.+<#.+<.<+<.<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t7t477t7t477t7t477t77474747474747474777t47777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<..+.++<#<+.+.#<+.#<..#<.<+<.<+.#<+.+.#<<+.#<+.#<+..<+.#<.<+..<+<.<#<.<+<.<+..<+<.<#<.<+.#<.<#<..#<+.#<..#<.<#<..#<+.#<.<+.#<+.#<+..<+.##<.<+<.<#<..#<.<+.#<..#<+.#<+.#<<+.#<+.#<+..<+.#<.<+..<+<.<#<.<+.<<.<#<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+..<+.#<+.#.#<+.#<.<#<.<.<#<#<.<..+<..+.+<#<+.#.#<+.#<.<#<.+.#<+.#<..#<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t47774t47774t47774t477t7t7t7t7t7t7t7tt474t7t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#<#<..<.<#<.<.<#.+<+<.<#.#.+<.<.<#<.<.#.+<.<.<.<#<#.+<+<.<#<#.#.+.+<.<+<.<#<#.#.+.+<.<.<#.+.+<+<.<.<#..<#.+.+<+<.<.<#.#.+<.<.<.<#<#.+<<.<#.#.+.+<+<.<#<#.+<+<.<.<.<#.+#.+<.<.<.<#<#.+<+<.<#<#.#.+.+<.<<.#.+.+<+<<+.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<<<..<.<#<#.+<.<.<+<.<.<#.+.+<#.+...+<+<#<+<#<#<...<.<+<.<.<#.+.+<<.<.<#.+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t47774t7t774t47774t477t477t477t4774t7t474t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..#<.<.<+.<.<#<.<..#<+<+.+.#.#<+<.<.<#<.<<+..<.<+.#<#<+....<#<#<.<+.+..<#..<#<#<.<+.+..<#<#<+.+.#<.<.<#<+<#<+.+.#<.<.<#<+<+..<.<+.#<#<+..+<..#.#<.<+<+<....#<+<+.#<.<..#<<+..<.<+.#<#<+....<#<#<.<+.+..<#.<++.+.#<.<.<.<+.<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<..<.<<.+<<..#<#<+..<.<+<.<.<#<+.+.#<+.+<+.#.#<..#<.<.<+<.<+<.<.<#<+.+.##<.<..#<+<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t774t7t47477t774t7t774t774t774t774t7774t777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.+<.<<#.+.+<#<+<...<#<.<+<..#<#.+.+<#.<#<+<#.+<...<#<#<+...+<.<#<#<+.#<+...+<.<#<#<+.+..<#<.<#.+<+..<+..<#<.<#.+<+..<.<#<+<#.+<...<#<.#<+<+<.<#...#<+<+<...<#.+<#<+<..<#<+<#.+<...<#<#<+...+<.<#<#<+.<..<#<.<#.+<.<.<<.<.<.<<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<.<.<.<<.<.#...+<+<...<#<+<#.#.+<+..<#<.<.<#<#.+<.<#..<#.+<.<+<#.#.+<+..<#<.<.+<#<+<...<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t477t77474t477t477t7t477t7t7t477t77t477t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.+.#<.<+..<+<#<+.+.#<#..<+.#<.<+.<#<...<+.#<+<#<..+<#<#<.<+...+<#.+<#<#<.<+...+<#<..+<+.#<.<#<..+<..+<+.#<.<#<..+<#<...<+.#<+<#<.+<#...#<.<+<+<#..<+<#<+.#<...<+<<#<...<+.#<+<#<..+<#<#<.<+...+<#<..+<+.#<.<#<..+.<+<.<+.#<...<+<.<+#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<+.#<<.<.<.<#<.<+.#<+<+.#<.<+<#<...<+<.<#<..+<.<+.#<.<+.#.#<+<#<.<.<#.#<.<+.#<..+<+.##<...++<#<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47774t477t7t774t774t47774t4747774t4774t774t7t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#.+.+<.<#..<.<#<.<.<+<#<#.+.+<...+<#<#.+<.<..+<#<..+.+<.<#<#<..#<..+.+<.<#<#<..+<#<.<.<#.+.+<#<+<#<.<.<#.+.+<#<..+<#<#.+<.<..+<..<+<+<.<#.#..<+<#..<.<#.+<+<#....+<#<#.+<.<..+<#<..+.+<.<#<#<..+<#<.<.<#.+.+<#<<#..<.+<.+<+<#..<#.<.<.<.+#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<<.<.+<#.+.<.<#.+..<#.+<.<#.+<+<.<..+<#<#.#.+.+<#<+<.<.<#..<.<+<.<+.+<#.+..<#.#.+<+<#<.<.<.+<+<<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7774t47774t477t7t7t7t774t4777474t477747777777747t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#<#<+<+.#<.<.<#<.<.<+...#<#<+<<+.#<#<.<.<.<+.#<.<+.+.#.#<#<.<+<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<..#<.<.<+<+.+.#<.<+.#<#<.<.<.<+.##<.<+<+.+.#.#<.<+.#<.<.<.<+<+.#<<+.#<#<.<.<.<+.#<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<.+.#<.<.<.<+<+.#<+.+.<.<..<<.<.#<<...<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<.<.<+.<.<<.<.<<..#<<.<+<+.+<#<.<.<.<+....<#<+.#<#<.<+.+.#<...<#<#<+<.<+<.<..+.#<+.+<#<+<+...#<.<.<+.<+<+..<+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t774t7t774t474747477t774t7t7t774t7tt4t4t4t4t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<..#<#.+<#.+.+<#.+<.<+<.<..##.+<..+<#.+<#.+<+<.<#<.<+<..+<.<+<.<#<.<+<..+<.<.<#.+<#..<#<.<#..<#.+<#..<#<.<#.#.+<..+<#.+<#.+<<.<#..<#<.<+<.<#<#.+<#.+<#..<#.+#.+<..+<#.+<#.+<+<.<#<.<+<..+<.<.<#.+<#..<#<.<#.<#.+<#.+<#..<#.+<#<.+<.<+<.<.<.+.<<.<<.<<.<<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<<.<.<.<.+<.<.<.+<.<.#..<+.<+<.+<#..<#<..+<#.+<.<#<#<+.#.+<..+<.<#<.<#.#<+.+..<+<#.#.+<#<.<.<#<+..<.<#<.<#.+<#.<#..<#<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t77t7t47774747474t477t7t477t7t47774747474477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<..<+.#<+.+.#<+.#<#..<.<+<<+.#.#<+..<+<+....<+<+..<#<.<.<#..<+<+..<#<.<.<#<#<.<.<#<+.#.#<+<#<.<.<#<+.#.#<+<+.#.#<+..<+<+..+<.<.<+<..#<#<....#<#<..#<+.+.#<<+.#.#<+..<+<+....<+<+..<#<.<.<#<#<.<.<#<+.#.#<+..#<#<..#<+.+.#<..#<#<..#<+.+.#<<.<+<+..<#<.<.<#<.<..#<+.##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.<<+..<+.#.+<#<#<..<<+..<+<.<#<.<+<..+.+<#.#<.<#<.<+..<+.#.+<#<#<.<.<+..<+<.<#<.<+<..+.+<#.#<.<#<..#<+.#<.<#<.<..+<+.#<+.#+.#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4744t47774t7t7t7t7t774t47774t47774t7t7t7t7tt7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<.+<.<.<#<.<.<#.+<+<#<#...<.<+<.<#<#..<#<#<#..<#<+.+<#.+.#<#..<#<+.+<#.+.+.+<#.+..<.<+<.<+.+<#.+..<.<+<.<.<.<+<.<#<#..<#<.#.+<#.#<+<..+<+<+<..+<+<.<#<.<..<.<+<.<#<#..<#<#<#..<#<+.+<#.+.+.+<#.+..<.<+<.<<+<..+<+<.<#<.<.<+<..+<+<.<#<.<..<<..<#<+.+<#.+..<.<<#.<#.<<.<<.<#.<.##.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<#<.<<.<<..<.+.<#<#.+<#<....+<<..<#<#.#.+.+<.<+<#<#<...<#.+.+<.<#<#.+<#<....+<+<.<#<#.#.+.+<.<+<#<#<...<#.+.+<+<.<.<#...+<+<#<#.+<.<.<<.<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t7774t7t7t477t477t7t774t47774t7t7t477t4774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<+<.<.<#<.<..#<.<+.+.#<<.<+<.<.<#<..#<#<#<..#<#.+.#<+.+<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<..+.#<+.+<.<+<.<.<.<+<.<.<#<..#<##.#<+.#.+<+..<+<+<+..<+<.<.<#<.<<.<+<.<.<#<..#<#<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<.+<+..<+<.<.<#<.<+<+..<+<.<.<#<.<<#+..#<#.+.#<+.+#.<++.#.+<.<.#<#<.<.+.#.<.<<.#<#<.<.<..#<<..<.#.<<<.<<<.<.<<<aaaaaaaaaaaaaaa<..#<..<<<.<<.<.<.<..<+<<.<..<.<.<<.<.<+<.<+.#<#<+..<.<+<+.#..<#<#<.<+.+..<#.#<.<.<+<#<+.+.#.#<#<+..<.<+<+.#..<#<#<.<+.+..<#.#<.<.<+<#<+.+.#<.<.<#<+<+.#.#<.<+..<.<+#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477744t7t4747774t774t47477t774t7t4747774t774t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..#<#.+.+<#<+<..+<.<#.++<#.#.+<..+<+<....+<+<..#<.<.<#<..+<+<..#<.<.<#<#<.<.<#<+<#.#.+<#<.<.<#<+<#.#.+<+<#.#.+<..+<+<..<+<.<.<+..<#<#....<#<#..<#.+.+<#+<#.#.+<..+<+<....+<+<..#<.<.<#<#<.<.<#<+<#.#.+<..<#<#..<#.+.+<#..<#<#..<#.+.+<#..+<+<..#<.<.<#<<+<.<.<+..<.+<..+<.<<.<+.<.<+<...<.<.<+<<.<..<.<#.+<.<.<.<.<.<<.<.<.<<.<<.<#.<#<<.<.<.<#.<.<.<.<<#...<.<<.<.<.#..<.<++<.+<...<#<+<.<#.+<<++...+<.<#<#<+..<#.+<.<+..<#<.<+<...<#<+<.<#.+<#<+...+<.<#<#<+..<#.+<.<+..<#<.<#.+<+..<#.+<.<#..<#<+<#..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777t77t77474t7t477t77474t7t477t77474t7t477t774744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.+<.<#<...<+<#<+.+.#<.#<.<+.#<+.#<.<+<+.#<.<+<.<+.#<.<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.#<.<+.#<..#<.<+.#.#<.<+.#<+.#<.<+.<+.#<.<#<.<+.#<#<.<+.#<+.#<.<+..#<.<+.#<+.#<.<+<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.##<.<+.#<+.#<.<+.#<.<+.#<+.#<.<+.<+.#<.<+<.<+.#<..<+.#<.<<+.#<.<+.<+.#<.<<+.#<.<+<.<+<+...+<#<#<.<+...+<#<<+..<+<+<#..<.<#<...<+<.<+.#<...<+<<<+..<+<+<#...<+.#<+<#<...<+.#<+<#<...<+<+...+<#<#<.<+...+<#<#<.<.<#<..+<+.#.#<+<#<...<+<+...+<#<#<.<+...+<#<#<.<.<#<..+<+.#<.<#<..+<+.#.#<+<#<...<+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4744t477t7t47774t477t7t47774t477t7t47774t477t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#.+.+<+<#..<.<#<.<..<#.#.+<#.+<+<.<#.+<+<.<+<.<.<#.#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<+<.<.<#..<#.#.+<.<#.#.+<#.+<+<.<.+<.<.<#<.<#<#.+<.<#<#.+<#.+.+<..<#.#.+<#.+<+<.<#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<<.<#<#.+<#.+.+<.<.<#<#.+<#.+.+<.#.+<+<.<+<.<.<#..+<.<.<##.+<+<.<.+<.<.<#<.+<+<.<.<#..<#<#<..+.+<.<#<#<..+.+<<#.#..<+<.<..+<+<#..<.+<.+<+<#..+.<#<#.#..<+<+<.+<.<..+<#<#.+<.<..+<#<#..<#<#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<+<.<..+<#<#..<#<#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<#.+.+<#<.<.<+<.<..+<#<#..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7t7774t47774t47774t47774t47774t47774t47774t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<+<+.#<.<.<#<.<<#<+<+..<+....<#<+....<#..<#<#<+<+....<#..<#<#<+..<#<#<+<#<+<+....<#<#<+<#<+<+..<#<+<+..<+....<##<+<+<..+<....#<+<....#<..#<#<+<<#<+<+..<+....<#<+....<#..<#<#<+..<#<#<+<#<+<+..+<....#<..#<#<+<+<....#<..#<#<+<<+....<#..<#<#<+#<+<+<..<+....<##<+<+<..++....<#<#<..#<#<.<+.+.#.#<#<.<+.+.<+.#.#<.<+<+..<+<+.#<.<.<.<+<+.#<.<.<+.#.#<.<+<+.<.<.<+.#<#<.<.<.<+.#<#<..#<#<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<+<.<.<+.#<#<..#<#<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<+<+.+.#<.<.<+<.<.<+.#<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777744t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<#.+<#.+.+<#+..<.<#<.<#<#<+..<#<#<+.#<+.+..<.<#<#<+.#<+.+..<#<+.+..<+..<.<#<#<+.+..<+..<.<#<+..<.<#<.<#<#<+.<..#.#<+.#<+<+<..#<+<+<.<+<.<..#+..<.<#<.<#<#<+..<#<#<+.#<+.+..<#<+.+..<+..<.<#<.#<+<+<.<+<.<..#.#<+<+<.<+<.<..#.<#<#<+.#<+.+..<<..#.#<+.<#<#<+.<..#.#<+.<#<#<+...+<+<..+<.<#<.<+<..+<.<#<.+<.<+<.<#..+<<#..<#.+<#.+<#..<#.+<#.+<.<+<.<#..<##.+<#.+<..+<#.+<#.+<..+<+<..+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#.#.+<#.+<..+<+<..+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#..<#<.<#.+<#.#.+<#.+<..+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t477t7t477t7t477t7t477t7t477t7t4t47477t4747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.<..<+<.<+..+<#<#<.<#<.<..+.<+<+<#.+<#.#..<.+<#<#<.<#<.<..+<#<.<..+<..+.+<##..<.<+<.<+<+<#..<+<+<#.+<#.#..<.<+<+<#.+<#.#..<+<#.#..<#..<.<+<+<#.#..<#..<.<+<#..<.<+<.<+<+<#.#..<.<+<.<+<+<#..<+<+<#.+<#.#..<<..+.+<#.+<#<#<..+<#<#<.<#<.<..+.+<#<#<.<#<.<..+<#<.<..+<..+.+<#<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#<.<+..<+<.<#<.<+..<+<+..<+.#<+.#.<+<.<+.#<+.+.#<+.#<..#<+.#<+.#<..#<#<..#<.<+<.<<.<#<.<+..<+<+..<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<.<.<#<.<+..<+<+..<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t774t47774t47774t47774t47774t4777777t4t777t4t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<<#.#.+<.#<....+<..+<+<#<<#....<+..<+<+<##<....+<..+<+<#<..+<+<#<+<#<#<..<+<#<#..<#....<+<#....<+..<+<+<#<#....<+..<+<+<#..<+<+<#<+<#<#....<+<+<#<+<#<#..<+<#<#..<#....<+<+<#<#..<#....<+<#....<+..<+<+<#+<#<#<..#<....+<#<....+<..+<+<#<#<....+<..+<+<#<..+<+<#<+<#<#<..+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.+<.<#<#.#.+.+<.<#<#..<#<#.+<.<.<<#.#.+<.<.<#<.<.<#.+<+<.<.<.<#.+<+<..+<+<.<#.#.+#.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.+<#.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4tt7t7t7t774t47774t7t774t47774t7t774t4t4t77474t77777iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+.<.#<+<<.<+<+.#<+.#.#<.+.#<#<.<#<.<.<+.<.<+<+.#<+.#.#<.<+.#.#<..#<.<.<+.<+.+.#<+.#<#<.<+.#<#<.<#<.<.<+.+.#<#<.<#<.<.<+.#<.<.<+..<+.+.#<#<.<.<+..<+.+.#<.<+.+.#<+.#<#<.<.<+.+.#<+.#<#<.<+.#<#<.<#<.<.<+..#<.<.<+<.<+<+.#<.<+<+.#<+.#.#<.<.<+<+.#<+.#.#<.<+.#.#<..#<.<.<+.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+..<#<#<.<+.+..<#<#<..#<#<+..<.<++.#.#<+<.<.<#<.<..#<+<+.#<.<..#<+<+..<+<+<..#.#<<+.+..<#<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<#<+.+.#<+.+..<#<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474747477t774t7t47477t774t7t47477t7777477t7t474t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.+<<..#+<.<#.+<#.+<.<#.<#.+<.<#<.<#.+<.+<.<#.+<#.+<.<#.#.+<.<#..<#.+<.<.+<.<#.+<#.+<.<#<#.+<.<#<.<#.+<.<#.+<.<#<.<#.+<.<.<#.+<..+<.<#.+<.<#.+<..+<.<#.+.+<.<#.+<#.+<.<#.+<.<#.+<#.+<.<#<#.+<.<#<.<#.+<..<#.+<.<+<.<#.+<+<.<#.+<#.+<.<#.+<.<#.+<#.+<.<#.#.+<.<#..<#.+<.<#<.<.<#<#<+...+<#.+<+..<#<.<.<#<#<+...+<.<#<#<+...+<+<...<#<+<#.<.<+<..#<#.+.+<#<+<...<#.+<#<+<...<#<#...#<+<+<..<#<#<+...+<+<...<#<+<#.+<...<#<+<#.#.+<+..<#<.<.<#<#<+...+<+<...<#<+<#.+<...<#<+<#.#.+<+..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4t7474t7t477t77474t477t4777474t7t4t474t7t777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<...<+<+..<+.#.#<+..#<#<..+<.<.<+<..<+<+..<+.#.#<+<+.#.#<+<#<.<.<##<+.+.#<..#<#<....#<#<..+<.<.<+<..#<#<..+<.<.<+<+<.<.<+<#<+.+.#<+<.<.<+<#<+.+.#<#<+.+.#<..#<#<..#<+.+.#<..#<#<....#<#<..+<.<.<+<<#<.<.<#..<+<+....<+<+..<+.#.#<+..<+<+..<+.#.#<+<+.#.#<+<#<.<.<#<.<+.#<..+<#<#<.<.<#<..+<.<+.#<..+<#<#<.<+...+<#<+.#<.<+<#<...<++.#<#..<+.#<.<+..<+<#<+.#<...<+<#<.<+.#<+<#...#<<+...+<#<+.#<.<+<#<...<+.#<+<#<..#<.<+.#<..+<+.#<+...+<#<+.#<.<+<#<...<+.#<+<#<..#<.<+.#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai477777t7t47774t477t7t774t774t7t7t4777777t47474t774t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<#<#..<#<.<.<+<.<<+<..+<+.#.+<#.##<#..<#<.<.<+<.<.<.<+<.<+.+<#.+.<.<#<.<.<+<..+<+<+<..+<+.#.+<#.#<+<..+<+.#.+<#.#.#.+<#.#<.<#<.<..#.+<#.#<.<#<.<.<.<#<.<.<+<..+<+<.<#<.<.<+<..+<+<+<..+<+.#.+<#.#+.+<#.+.#<#..<#<#<#..<#<.<.<+<.<#<#..<#<.<.<+<.<.<.<+<.<+.+<#.+.+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.#<..+.+<.<#<#<..#.+<+<.<..+<#<#.<.<.<+<#<#.+.+<.<#..<.<#.+<+<#..<.<#<#.+..<+<+<..<#<#<..#.+<+<.<..+<#<#.+<.<..+<.<#.#.+<+<#<.<.<.<#<#<..#.+<+<.<..+<#<#.+<.<..+<.<#.#.+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t47t47774t47774t477t7t7t7t7t47774t4t4t777t474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<..#<#<.<+<.<.+<+..<+<#.#<+.#.<#<..#<#<.<+<.<.<.<+<.<..+.#<+.+.<.<#<.<+<+..<+<+<+..<+<#.#<+.#.+<+..<+<#.#<+.#.#.#<+.#..<.<#<.<#.#<+.#..<.<#<.<.<.<#<.<+<+..<+<.<.<#<.<+<+..<+<+<+..<+<#.#<+.#..+.#<+.+<#<..#<#<#<..#<#<.<+<.<.<#<..#<#<.<+<.<.<.<+<.<..+.#<+.+..<#<#<+<.<+.+.#<+.+.#<...<#<#<+<.<+.+.#.#<#<.<+<+....<#<+.#<#<.#<.<.<+...#<#<+<+.#<.<.<.<+<+.#<+<....#<#<.<+<+..#<#<.<+<+....<#<+.#<#<.<.<.<+.#<#<+<+...#<.<.<+.#<#<.<+<+....<#<+.#<#<.<.<.<+.#<#<+<+...<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t7774t7t774t7t774t47474747774t7t7777474t777t7t7t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..+<+<..+<#.#.+<..<#<#..<+<.<.<+..+<+<..+<#.#.+<+<#.#.+<#<.<.<#<<#.+.+<#..<#<#....<#<#..<+<.<.<+..<#<#..<+<.<.<+<+<.<.<+<#.+.+<#<+<.<.<+<#.+.+<#<#.+.+<#..<#<#..<#.+.+<#..<#<#....<#<#..<+<.<.<+#<.<.<#<..+<+<....+<+<..+<#.#.+<..+<+<..+<#.#.+<+<#.#.+<#<.<.<#<#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<+<.<#<.<+<..+<.<.<#<#<+.#.+<..+<.+<#.+<.<+<.<..#<#.+<#.+<#..<#.+.#<+<+<.<.<#..<#+<..+<.<.<#<#<+.#.+<..+<#.+<#.+<+..<.<#<.<#.+<#.+<..+<.<.<#<#<+.#.+<..+<#.+<#.+<+..<.<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai74777t7t477t7t7t477t774747474t477t7t4t47477t4t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<.<+<+..<+.##<.<+<.<#<..#<.<<+.#<+.#<+..<+.#.#<.<#<..#<+.#<.+.#<..#<+.#<+.#<#<.<+<.<#<..#<.<#<.<+<.<#<..#<.<.<+.#<+..<+<.<+..<+.#<+..<+<.<+.+.#<..#<+.#<+.#<+.#<..#<+.#<+.#<#<.<+<.<#<..#<.<<.<+..<+<.<#<.<+<+.#<+.#<+..<+.#<+.#<+.#<+..<+.#.#<.<#<..#<+.#<.<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#..<+<+..<#<.<.<#.+<#<#<.<.<+..<++.#<+.#<#..<.<+<..#<#<..#<+.+.#<.<+<+<#.+.#<..#<<+..<+.#.+<#<#<.<+.#.#<+..<+<+..<#<.<..+<+.#<+.#<+..<+.#.+<#<#<.<+.#.#<+..<+<+..+<<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t447774t4747774t477t7t7t7t774t4777777t4t7747474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#..<#<#.+<<.<#.#.+.+<+<.<##.+<.<.<.<#<#.+<.<#.+.+<+<.<.<#.<#.+<+<.<.<.<#.+<.<#.#.+.+<+<.<#<.<#.#.+.+<+<.<#.+<.<.<#<#.#.+<..+<.<.<#<#.#.+<.<#.+<+<.<.<.<#.+<#.+<+<.<.<.<#.+<.<#.#.+.+<+<.<#+<.<#<#.#.+.+<.<#.+<.<.<.<#<#.+<#.+<.<.<.<#<#.+<.<#.+.+<+<.<.<#.+<#<#<...<#.+.+<#.+.+<.<+<#<#<..#<#..<#<+.+<#.+.#<....+<+<.<#<#.<.<.<#.+<+<#<#..<+<..+<+<.<#<.<.<#....<+<#.+<+<..<#<#.+<#<....+<.<.<+<.<#<#..<#<..+<+<#<#.+<.<.<.<#<#.+<#<....+<.<.<+<.<#<#..<#<..++<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t74t4777474t47774t477t477t7t774t4t4t7747477t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<..#<.<+..+<..#.#<.<+<+<..<+..<.<+.#<#<+..<#<+.+.#<.<.<#<+..#<+<+.#<.<..#<+<..#.#<.<+<+<..+<..#.#<.<+<+<..#<+<.<.<+.#.#<+<#<+<.<.<+.#.#<+<..#<+<+.#<.<..#<..#<+<+.#<.<..#<+<..#.#<.<+<+<....<#<#<.<+.+..<#<+..<.<+.#<#<+..<+..<.<+.#<#<+..<#<+.+.#<.<.<#<+.#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+<#<..#<#.+.#<+.+<.<+<+.#..<#<#<.#<.<..#<.<+.+.#<+<+..<+<.<.<#<.<+.#<#<.<..#<+<+..#<#<+..<.<+<+.#<.<+<.<.<#<..#<#<+.#.#<.<+..<.<+.#<#<+..<.<+<+.#<.<+<.<.<#<..#<#<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7777t774t7t7t774t7t774t774t47477t7777477t7t4t774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+<.<.<#<.#<+<+<.<#...#<+.<#<+<#.+<...<#<+..<#<.<#.+<+..<<+<...<#.+<#<+<..#<+<+<.<#...#<+.#<+<+<.<#...#<+<..#<#.+<.<+<..#<..#<#.+<.<+<..#<+<...<#.+<#<+<.<+<...<#.+<#<+<..#<+<+<.<#...#<+#<+...+<.<#<#<+..<#<+<#.+<...<#<.<#<+<#.+<...<#<+..<#<.<#.+<+..<.<#.+<.<+..<#<.<.<#<#<+..<#.+<.<..+<+<..#<.<.<#<+<.<#.+<#<+...+<.+<#<+<..+<.<#.+..<#<#..<#.+.+<#<#.+<.<#<+<...<#+<...<#<+<.<#.+<+<#.#.+<..+<+<..#.+<.<#..<#<+<#.+<...<#<+<.<#.+<+<#.#.+<..+<+<..#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47t477t477t477t477t7t477t77474t7t4t474t7t77477t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<#<.+<#...#<.<+<+<#.<#<...<+.#<+<#<.<..+<+.#<.<#<..+.<+<#<+.#<...<+<+<#...#<.<+<+<#.+<#...#<.<+<+<#.#..<+<.<+.#<#..<#..<+<.<+.#<#..<.<+<#<+.#<...<+<.<+<#<+.#<...<+<+<#...#<.<+<+<#..+<#<#<.<+...+<#<#<...<+.#<+<#<.<#<...<+.#<+<#<.<..+<+.#<.<#<..+<#<.<.<#<..+<+.#<+...+<#<#<.<.<#<+.#<.<+<.<+.#<...<+<+...+<#<#<.#<...<+<#<+.+.#<#<.<+.#<+.#<.<+...#<#<...<+<#<+..#<+<#<...<+<+...#<.<+.#<+.#<.<+<+.#.#<+<#<...<+.#<+<#<...<+<+...#<.<+.#<+.#<.<+<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7774t774t774t774t47774t477t7t4777777t47477t4t777ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..+<..<+<+<.<#.#..<+..+<#<#.+<.<..+<+<#<.<.<#.+.+<#<<#..<.<#.+<+<#....<+<+<.<#.#..<+..<+<+<.<#.#..<+<+<#.#.+<.<.<+<#<+<#.#.+<.<.<+<#<#..<.<#.+<+<#..<#..<.<#.+<+<#....<+<+<.<#.#..<+#<..+.+<.<#<#<....+<#<#.+<.<..+<..+<#<#.+<.<..+<+<#<.<.<#.+.+<#<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+.#.+<+<.<+<.<.<#.#<#..<#<#<..+.+<.+<+<#..<.<#<.<.<.<#<#.+<#.+.+<.<+<..+<+<#..<.<#+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<.<.<+<.<..+<#<#.+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777t7t7t7t7t7t7t7t774t47774t47774t4t4t777t4t777t4t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#<.<+<+.+.#.#<.<<+.#<#<.<.<.<+.#.#<.<.<+<+.+.#<.+.#<.<.<.<+<+.#<#<.<+<+.+.#.#<.<#<.<+<+.+.#.#<.<.<+.#.#<#<.<.<+..<+.#.#<#<.<.<+.+.#<.<.<.<+<+.#<+.#<.<.<.<+<+.#<#<.<+<+.+.#.#<.<<.<+.+.#.#<#<.<+<+.#<#<.<.<.<+.#<+.#<#<.<.<.<+.#.#<.<.<+<+.+.#<..+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+<+....<#..<#<#<+<#<..#<#<.<+.+.#.<+<+.#<.<.<#<.<+<....#<..#<#<+<+<+..<+<+.#<.<.<<.<.<+.#<#<..#<#<#<+<+..<+....<#<.<+<.<.<+.#<#<.<.<.<+.#<#<..#<#<#<+<+..<+....<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t447474747474747477t774t7t774t7t7777474t77474t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<#..<#<.<+<.<##.+<..+<#.+<#.+<.<#.+<#..<#<.<#.<#.+<#.+<#..<#.+<.<#..<#<.<+<.<#<.<#..<#<.<+<.<#.+<.<+<..+<#.+<..+<.<+<..+<#.+<.<#.+<#.+<#..<#.+<#.+<#.+<#..<#.+<.<#..<#<.<+<.<#+<.<#<.<+<..+<.<#.+<..+<#.+<#.+<#.+<..+<#.+<#.+<.<#.+<#..<#<.<#.#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<.<#<#<+.#<+.+..<..+<+<..+<.<#<.<<#..<#.+<#.+.+<#.#<+<+<.<+<.<..#..<#<#..<#.+<#.+#.+<#.+<..+<+<..+..<.<#<.<#<#<+.+<#.#.+<#.+<..+<#.+<#.+<..+<+<..+..<.<#<.<#<#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77777474747474747474t7t477t7t477t7t4t47477t47477t4744taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<.<+.#<..<+.#.<+<.<+.#<+.<+..<+.#<+.#.#<+..#<#<..#<.<+<.<+.#<+.#<..#<#<..+<.<.<+<.<+.#<+.#<..#<.<+<.<.<+<#<+.+.#<+.#<..#<.<+<.<+.#<+.+.#<..#<#<..#<.<+<.<+.#<+.#<..#<#<....<+<+..<+.#<+.#<.<#<.<+..<+<+..<+.#.#<+.#<.<#<.<+..<+.#<+.#.#<+<.<+..<+<.<#<.<+.#<.<#<..#<+.#<.<..+.+<#.+<#<#<.<#<.<.<#<.<+..<++.#<+.#<..#<#<..#..<.<+<.<+<+<#.#<.<+<.<#<..#<.<+.#<..#<<.<#<.<+.+<#<#<.<#<.<..+..<+<+..<+.#<+.#<+..<+.#<+.#.#<+.+<#<#<.#..<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t47t7t7t7t7t7t7t7t47774t47774t4777777t4t777t4t777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<.+<.+<+.<.<<#.#.+<.<.<#.<#<#.+<.<.<+<.<<+<..+<+<.<#.#.+<.<.<#.+<+<..+<+.#.+<#.#.+<.<.<#.+<+<.<#.#.+<#.#<.<#<.<.<#.+<+<.<#.#.+<.<.<#<.<.<+<..+<+<.<#.#.+<.<.<#.+<+<..+<+#<#..<#<#.+<.<.<#.+.+<.<#<#..<#<.<.<+<.<.<#.+.+<.<#<#.+<.<.<+<.<+<.<#<#.#.+.+<.<.<#.+.+<+<.<.<#.+<#<#<..#<....+<+.+<#.+.+<.<#<#.<.<.<#.+<+<..+<+<+<#<#..<#....<+<.<#.#.+.+<+<.<#<#.+<+<.#.+.+<.<#<....+<..+<+<#<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<#<....+<<+<#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477tt477t477t477t47774t47774t7t774t4t4t77474t777t4t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+.<.<<.<.<++.#.#<+<.<.<.#<#<+..<.<+<.<.+<+..<+<+<..#.#<#<.<..#<+<+..<+<#.#<+.#.#<+<.<.<.<+<+<..#.#<+.#..<.<#<.<..#<+<+.+.#.#<+<.<.<#<.<+<+..<+<+<..#.#<#<.<..#<+<+..<+<<#<..#<#<+..<.<+<+.+..<#<#<..#<#<.<+<.<.<#<+.+.#.#<#<+..<.<+<.<...<#<#<.<+.+..<#<#<+.+.#<.<.<#<+.#<.<.<+<.<+<+.#.+.#<+.+..<#<#<.#<.<..#<+<+..<+<.<+.+.#<+.#<#<.<+<..#.#<.<+<+<....#<+<+.<+.+..<#<.<+<+.#<+.#.#<.<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<.<+<+.#.<+.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774774t774t774t774t7t774t7t47477t7777477t7t474t774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.++<.<+<#.<.<+<..#<#.++<...<#<+<#.#.+<..<#<#...#<+<+<..+<#<+<...<#<#..<+<.<.<+<..#<#.+<#...#<+<+<.<.<+<#.+.+<#<+<...<#<.<+<..#<#.+.+<#..<#<#...#<+<+<..+<#<+<...<#<#....+<+<...<#<+<#..<#<#<+...+<+<..+<#.#.+<+..<#<.<+<...<#<+<#.#.+<#<+...+<.<#<#<+.+..<#<.<#.+<+..<.<#.+<.<+<.<#.+<#<.<.<#<#<+...+<.+<#<+<...<#<#...+<.<#.+<#.+<.<#.#<+<+<.<#...#<+<+<...<#.<#<#<+.+<.<#.+<#.+<.<#...+<+<...<#<+<#.+<...<#<+<#.#.+<+<.<#.+<.+<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4tt7t477t7t7t477t7t477t4777474t7t4t474t7t777t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<.<..#+.<+.<#..<+<.<.#<+<#<..#<.<+.##<.<+.#<+<#...#<#<...<+<#<.<+.#<.<+.#<.<#..<+<.<.<+<+<#..<+.#<.<+.#<.<+..<+<#<+.+.#<#..<+.#<.<+.#<.<+.#<+<#...#<#<...<+<#<.<+.#<<+.#<.<+<#<...<+<+...+<#<+.#<.<+.#<.<+.#<..+<+.#.#<+<#<..#<.<+.#.+<#<#<.<+...+<#<..+<+.#<.<#<..+<#<.<.<#..<+<+..<.<+.#<..+<#<#<.#<...<+<#<.<+.#<#<+.+.#<..#<#<..+<#...#<.<+<+<#..<+<#<+.<+...+<#..<+<+..<+.#.#<+<+.#<.<+<#<...<+.#<+<#<..#<.<+.#..<+<+..#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747747774t4747774t47774t774t7t7t4777777t47474t774t77t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<.<.<#<+<#.#.++<.<..+<.<#.#.+<<.<#<#.+..<+<+<..+<+<#..<.<#<#.+.+<.<.<#<+<#.#.+<#.#..<+.+<.<.<#<#.+.+<.<#..<.<#<.<.<+<#<#.+.+<.<.<#<#.+..<+<+<..+<+<#..<.<#<#.+#.+<+<.<..+<#<#..<#<#<..#.+<+<.<.<#.#.+<+<#<.<.<+<.<..+<.<#.#.+<#<..+.+<.<#<#<..+<#<.<.<#.+.+<#<+.+<#.+.#<#..<#<+<.<.<#.#<..+.+<.+<+<#..<.<#<#.+<.<#<.<.<+<..+<+..<+<+<.<#.#..<+<#..<.<#.<#<#<..#<#..<#<.<.<+<.<#.+<+<.<..+<#<#.+<.<..+<.<#.#.+<#<#..<#<<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7774t4777474t47774t7t7t7t7t47774t4t4t777t47474747474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<+<...<+.#.#<<.<.<+.#<#<+<+..+<....#<#<.<+<+..<+<+.#<+<....#<#<+<+<...<+.#.#<+.#.#<.<#<+<+<....#<#<+<+.#<.<.<#<.<.<+...#<#<+<+<....#<#<.<+<+..<+<+.#<+<....#<<+....<#<+.#<#<..#<#<.<+<+....<#<#<+<+...#<.<.<+<.<.<+.#<#<+<+..<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<..+.#<+.+<#<..#<#..<#<#<+<.<+.+.#.<+<+.#<+<....#<.<.<#<.<+<+..<+<#<.<+<+.+.#.#<.<+.#<.<.<.#<#<.<+<#<..#<#<.<+<.<.<+....<#<+.#<#<.<.<.<+.#<#<+<+..<#<..#<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t47t774t7t7t774t7t47474747774t7t7777474t777t7t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<+.+<.<+<.#.+<#.+<+..<.<#<.#<+<+<.<.<#..<#<#..<#.+.#<+<+<.<..#.#<+.+<.<+<.<.<+<.<#<..#.#<+<+<.<..#<#.+<#.+.+<#.+<.<+<.<..#.#<+<+<.<.<#..<#<#..<#.+.#<+<+<..<#<#<+.#.+<..+<+<..+<.<.<#<#<+.+..<.<#<.<#.+<#.#.+<#.+<+..<.<#<+<.<#<.<+<..+<.<.<#.+<#..<#<.<#.#<.<.<#<..+<+<..#<+.+..<+<.<#<.<<#..<#.+.#<+<+<.<#.+.+<#..<#<#..<.<#..<#<.<+<.<#<#.+<#.++<..+<.<..+<+<..+<#.#.+<.<#<#<+.#.+<..+<#.+<#.+<+..<.<#<..+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477tt477t7t477t7t47774747474t477t7t4t47477t4t7t7t7t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.#<.<.<+..#<+.#<..+<#<#<..<+<+<#.+.#<..#<#<..#<.<.<+<+<#.+<#.#..<#<.<+<.<.<+<.<+.+<#.#..<#..<.<+<.<+.#<+.+.#<+.#<#..<.<+<.<+<+<#.+.#<..#<#<..#<.<.<+<+<#..+<#<#<.<.<+..<+<+..<+.#.+<#<#<.<#<.<..+<+.#<+.#.#<+.#<.<#<.<..+..<+<+..<#<.<.<#<#<.<.<#<+.#.#<+<.<+..<+<.<#<.<+<..+.+<#.#<.<#<.#<..#<.<.<+<+<#.+.#<..#<+.#<+.#<+<.<.<+<..#<#<....#<.<+<..#<+.<#<+<.<<.<<+..<+.#.+<#<#<.<.<+..<+.#<+.#<.<#<.<..+<+.#<+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774774t47774t47774t7t7t7t7t774t4777777t4t7747474747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<.+<+<.<.<#.#<....+<<#....<+<#.+<+<..+<+<.<#<#....<+..<+<+<#<.<#.#.+<#.#.+<...<+<+<#<+<#<#...+<.<.<#<.<.<#.+<+<#<#..<#....<+<#.+<+<..+<+<.<#<#....<+#<....+<+<.<#<#..<#<#.+<#<....+<..+<+<#<#.+<.<.<+<.<.<#...+<+<#<#<#..<#<+.+<#.+.+.+<#.+..<.<+<.<+<.<#<#.#.+.+<.<+<#<#<...<#.+.+<.+<+<.<#<#....<+<#.+<+<.<.<.<#.+.#.+<#.#<+<..+<+<+<.<#.#<+<.<.+.#..<.a#..<#<#.+<#<....+<+<.<#<#.+<.<.<#...+<+<#<#.+<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4tt7t774t47774t7t7t477t477t7t774t4t4t7747477t477t4t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<#.<+.<.<#<+<.<+<+.#+.#<#<.<..#<+<+..<+<+<..+.#<#<.<#<.<.<+.+<..#.#<+.#.#<+<#<.<.<+..<+.+.#<#<+<.<.<#<.<..#<.<+.+.#<+.#<#<.<..#<+<+..<+<+<..+.#<#<.<<.<+<+.#..<#<#<..#<#<+..<.<+<+.#<+.#.#<.<+..<.<+<.<.<#<+<+.#.#<.<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<...<#<#<.<+.+..<#.#<.<.<+<#<+.+.#.<+<+<..+.#<#<.<..#<+<+.#<.<..#<#.#<+.#.+<+..<+<+<+.+.<.+<+.<+<.<<.aa<<..#<#<+..<.<+<+.#..<#<#<.<.<.<#<+<+.#.#<.<+...<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777747477t774t7t4747774t774t47477t7777477t7t4t774t774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.+<.+<+..<+<.<#.+<<#.+<.<#<+<...<#<#...#<+<#.+<.<#<.<#.+<..#<+<+<.<.<+<..#<.<#.+<..+<.<#.+<..#<#.+.+<#<+<..+<.<#.+<#.+<.<#<+<...<#<#...#<+<#.+<.<#+<.<#.+<#<+...+<+<...<#<+<.<#.+<#.+<.<#..<#<+<#.#.+<+..<#.+<.<#...+<+<..#<.<.<#<#<.<.<#<+<#.#.+<#<+...+<.<#<#<+..<#.+<.<+..<#<.<<#...#<+<#.+<.<#<+<...<#.+<#<+<.<+<.<.<+..<#<#....<#<.+<..<#.<.<aaaa<.+<+<...<#<+<.<#.+<#<+...+<#.+<+..<#.+<.<#..<#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t7474t7t477t77474t7t477t77474t7t4t474t7t77477t474t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..<.<..<+<+....#<#<...<+<#<+..<+<+<#...#<#<..+<.<.<+<+<#...#<+.#<#..<+<.<.<+<#<+.+.#<#..<+<.<#<...<+<#<+.+.#<..#<#<...<+<#<+..<+<+<#...#<#<....<+<+...+<#<#<..#<+<#<...<+<+..<+.#.#<+<#<...<+<.<#<..+<+.#.#<+<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.#.+<#<#<.<+...+<#<#<.<.<#<..+<+.#.<+<+<#...#<#<...<+<#<+.#<...<+<.<+.#<.<#<.<+.#<#<.<+.<.#<.<.aaaaaa#.<+..#<+<#<...<+<+...+<#<#<.<.<#<..+<+.#.#<++<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777t7t47774t477t7t47774t477t7t4777777t47477t4t777t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<.#<#..+#<<+<..+<+<#..<.<#<#.#..<+<+<..+<+.#.+<#.#..<+<+<.<.<.<+<#.#.+<#.#<.<#<.<.<+<#.#.+.+<+<#..<.<#<.<.<+<..+<+<#..<.<#<#.#..<+<+<..+<+#<#..<#<#<..+.+<+<.<..+<#<#..<#<.<.<+<.<..+<#<#.#.+.+<#<.<.<+<.<#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<#<..+.+<.<#<#<..+.+<#.+.+<#<.<.<<#.#..<+<+<..+<+<#..<.<#.+<+<#...+<.<.<#<.<#<#.+<.<#<#.<<.<aaaaaa.<.<.+<+<.<..+<#<#..<#<#<..+.+<#.+.+<#<.<.<+<.<..<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47t47774t47774t47774t47774t47774t4t4t777t4t777t4t777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<<#<..<<.+<+..<+<+.#<.<.<+.#.#<.<+<+..<+<#.#<+.#.#<.<+<+.#<.<.<+.#.#<+.#..<.<#<.<.<+.#.#<.<+<+.#<.<.<#<.<+<+..<+<+.#<.<.<+.#.#<.<+<+..<+<<#<..#<#<.<+.+.#<.<.<+.#<#<..#<#<.<+<.<.<+.#<#<.<+.+.#<.<.<+<.<.<+....<#..<#<#<+..<#<#<+<#<+<+..<.<+.+.#.#<#<.<+.+.#<+.+.#<.<.<++.#.#<.<+<+..<+<+.#<.<.<.<+<+.#<#<+<+<..+<....#<+<...<.<aaaaaaaa#<<+.+.<<.<.<+.#<#<..#<#<.<+.+.#<+.+.#<.<.<+<.<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7774t7t774t7t774t7t774t7t774t7t7777474t77474t77474t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...+<+<.<..<#<#..<#.+<#.+<.<+<.<#..<#<#..<+<.<.<+<.<#..<#.+<#.+<.<+<.<.<+<#.+.+<#.+<.<+<.<#..<#.+<#.+.+<#..<#<#..<#.+<#.+<.<+<.<#..<#<#....+<+<..+<.<#<.<#.+<#.+<..+<+<..+<#.#.+<#.+<..+<.<#<.<#.+<#.#.+<.<#<#<+.#<+.+..<#<+.+..<+..<.<#<+<.<#<.<+<..+<.<#<.<.<#<.<#.+<#.<.<+<.<#..<#<#..<#.+<#.+<#..<#.+<..#.#<+.#<+<+<..#<+#aaaaaaaaaa<<..<#<.+#.+<#.+<..+<+<..+<.<#<.<.<#<.<#.+<#.#.+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74777t7t477t7t477t7t477t7t477t7t477t7t7t477t7t477t7t4t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<.#<.<.<+.<+..<+.#<+.#.#<+.#<.<#<.<.<#<.<+..<+<+..<+.#<+.##<..#<.<+.#<..#<+.#<+.#<..#<#<..#<.<+<.<.<+<.<+.#<+.+.#<+.#<..#<+.#<+.#<<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<.<.<#<.<+..<+<+..<+.#<+.#<+..<+.#.+<#<#<.<#<.<..+<#<.<..+<..+.+<#.#<.<#<..#<+.#<.<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#<.<+..<+#<..#<.<.<+<+<.<<.<.<..<<.aaaaaaaaaaaa#..<.<<.<#<.<+..<+<+..<+.#<+.#.#<+..<+<+..<+.#<+.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t447774t47774t47774t47774t47774t4747774t47774t4777777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<.<.<.+<.+#<#.+<.<.<+<.<.<#.+.+<#.+.+<.<#<#..<#<#.+<.<.<.+<+<.<#<#.+<+<.<.<.<#.+<+<..+<+<.<#.#.+<#.#.+<.<.<#<.<.<#.+<+<.<.<.<#.+#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.+<#.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<#<....+<..+<+<#<..+<+<#<+<#<#<...<#.+.+<+<.<.<#.+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.+<.<#<#..+<+<.<#<#....<.+<.<.<#aaaaaaaaaaaaa#<#+<.<.#.+.+<.<#<#..<#<#.+<.<.<+<.<#<#..<#<#.+<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t74t47774t7t774t47774t7t774t4777474t47774t7t774t4t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+.#.<<.<+..<.<+<.<.<#<+.+.#<+.+..<#<#<..#<#<+..<.<+.<+<+<....#<+<+.#<.<..#<+<+..<+<+<..#.#<+.#.#<+<.<.<#<.<..#<+<+.#<.<..#<<+..<.<+.#<#<+..<.<+<.<.<#<+.+.#<+.+..<#<#<..#<#<+..<.<+.#<#<+..<.<+<+.#<+.#.#<.<+.#.#<..#<.<.<+<#<+.+.#<.<.<#<+.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+..<#<#<..<+<+<..+.#<<+.<.#<.aaaaaaaaaaaaaaa<<<.<.+.<<+.+..<#<#<..#<#<+..<.<+<.<.<#<..#<#<+..<#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7777t774t7t47477t774t7t47477t774t7t7t774t7t47477t777747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<.<.<#<+<#.#.+<+..<#<.<.<#<#<+...+<+<...<#<+<#.<#...#<+<+<...<#.+<#<+<...<#<#...#<+<+<.<.<+<..#<#.+.+<#<+<...<#.+<#<+<..<#<+<#.+<...<#<+<#.#.+<+..<#<.<.<#<#<+...+<+<...<#<+<#.+<...<#<+<.<#.+<#.+<.<#.#.+<.<#..<#.+<.<+..<#<.<#.+<+..<#<.<.<#<#<+...+<#.+<+..<#<.<.<#<#<+...+<<#...#<+<#.+<.<<#aaaaaaaaaaaaaaaaa<.<.<##<.+.<#<#<+...+<+<...<#<+<#.#.+<..+<+<...<#<..#+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47t477t4777474t7t477t77474t477t477t477t4777474t7t4t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<.<..#+.<+.#<..+<+.#<+...+<#<+.#<.<+<#<...<+.<+<+<#..<+<#<+.#<...<+<#<.<+.#<+<#...#<+.#<#..<+.#<.<+..<+<#<+.#<...<+<<#<...<+.#<+<#<..#<.<+.#<..+<+.#<+...+<#<+.#<.<+<#<...<+.#<+<#<...<+<+..<+.#.#<+<+.#.#<+<#<.<.<#<..+<+.#<.<#<..+<.<+.#<..+<#<#<.<.<#<..+<.<+.#<..+<#<#<..<+<<.<..+.##aaaaaaaaaaaaaaaaaaaa.<.#<..<.<+.#<..+<#<#<..#<+<#<..#<.<+.#<+.#<.<+<.<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7774t774t7t7t47774t477t7t774t774t774t774t7t7t4777777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<.<<.#.+<+<#<.<.<.<#<#<..#.+<+<.<..+<#<#.<#.#..<+<#..<.<#.+<+<#..<.<#<#.+..<+<+<.<.<.<+<#<#.+.+<.<#..<.<#.+<+<#....+<#<#.+<.<..+<.<#.#.+<+<#<.<.<.<#<#<..#.+<+<.<..+<#<#.+<.<..+<#<#..<#<.<.<+<.<.<.<+<.<+.+<#.+.+<#<.<.<#.+.+<#<+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.#<..+.+<+<.#.<.<<+aaaaaaaaaaaaaaaaaaaaaa<<.<.+<++<.<.<#.#<..+.+<+<.<..+<.<#.#.+<#.+<+<.<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777t7t7t7t7t47774t47774t477t7t7t7t7t7t7t7t7t47774t4t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<<+...#<.<.<+.#<#<.<+<+....<#<+.#<#<.+.#.#<.<+.#<.<.<.<+<+.#<+<....#<#<.<+<+.#<.<.<+...#<#<+<+.#<.<.<.<+<+.#<<+.#<#<.<.<.<+.#<#<+<+...#<.<.<+.#<#<.<+<+....<#<+.#<#<.<.<.<+.#<#<..#<#<.<+<.<.<.<+<.<..+.#<+.+.#<.<.<+<+.+.#<...<#<#<+<.<+.+.#<+.+.#<...<#<#<+<.<+.+.#+..<<.#aaaaaaaaaaaaaaaaaaaaaaaa++<<..<+<..<#<#<+<.<+.+.#<.<.<+.#<#<+<+..<+....<#.#<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t447474747774t7t774t7t774t4747474747474747774t7t7777474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..<#<.<#.+<#.+<..+<.<.<#<#<+.#.+<..+<<.<+<.<#<#.+<#.+<#..<#.+.#<+<+<.<.<#..<#.+<#.+<.<+<.<..#<#.+<#.+<#..<#.+#.+<..+<#.+<#.+<+..<.<#<.<#.+<#.+<..+<.<.<#<#<+.#.+<..+<#.+<#.+<..+<+<..+<#.#.+<+<#.#.+<#<.<.<#<.<#.+<#..<#<.<#.#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<+<.<#<.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaa<<..+<<#..#<+.+..<+<.<#<.<#.+<#.+<+..<.<#<.<#<#<+..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777774747474t477t7t477t7t4777474747474747474t477t7t4t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+<.<.<+<+..<+.##..<.<+<<+.#.<+<..#<#<....#<#<..#<+.+.#<.<+<+<#.+.#<..#<+.#<+.#<#..<.<+<..#<#<..#<+.+.#<<+.#.#<+..<+<+..<#<.<..+<+.#<+.#<+..<+.#.+<#<#<.<+.#.#<+..<+<+..<+.#<+.#<+..<+.#.#<.<#<..#<+.#<.<#<.<.<#<+.#.#<++<#.#..<.#<.<#<.<.<#<.<+<..+.<.<..<+<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<+.#<<..+.+<#.#<.<#<..#<+.#<.<#<.<..+.<+<+<#.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t47t7t7t7t774t47774t47774t7t7t7t7t7t7t7t7t774t4777777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<.<#..+#<#.+<<+<#<#...<.<<#.#<+<..+<+<+<..+<+<.<#<.<.<#....<+<#.+<+<.<.<.<#.+<+<#<#..<+<..+<+<.<#<.<..<.<+<.<#<#..<#<..+<+<#<#.+<.<.<.<#<#.+<#<....+<.<.<+<.<#<#..<#<#.+<.<.<.<#<#.+<.<#.+.+<+<.<.<#.+.+<#.+..<.<+<.<..<+<+<#.<#.+.+<#.+.+<.<++<<<.<.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<.<.<#.++<#<#<...<#.+.+<+<.<.<#...+<+<#<<#....<+#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477tt477t477t7t774t47774t7t7t477t477t477t477t7t774t4t4t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<..<<.<+...<+.+.#<<.<++.#.+<+..<+<+<+..<+<.<.<#<.<+.#<#<.<..#<+<+.#<.<..#<.<+.+.#<+<+..<+<.<.<#<.<<.<+<.<.<#<..#<#<+.#.#<.<+..<.<+.#<#<+..<.<+<+.#<.<+<.<.<#<..#<#<+..<.<+.#<#<+..<#<+.+.#<.<.<#<+.+.#<+.+<.<+<.<.#<.<.<+.<#<+.+.#<+.+..<#.#<.+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+.<#<.<..#<.#<.<.<+<#<+.+.#<.<.<#<+<+.#.#<.+.#<#<.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774774t774t47477t774t7t4747774t774t774t774t47477t7777477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<.<#<.+<.<#.++<#.<.<+..<#<#....<#<#..<#.+.+<#<#.+<.<#<+<...<#.+<#<+<..+<.<#.+..<#<#..<#.+.+<#+<#.#.+<..+<+<..#.+<.<#..<#<+<#.+<...<#<+<.<#.+<+<#.#.+<..+<+<...<#<+<#.+<...<#<+..<#<.<#.+<+..<#<.<.<#<+<#.#.+<<.<#.+<.+..<#<.<.<#<#<+..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<.+.+<#<+<..<#.+<.<+..<#<.<#.+<+..<#.+<.<#.<#.+<.<##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4tt7t477t77474t7t477t77474t7t477t7t7t477t77474t7t4t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.<..<.<.#+.#<.<#<.<+.#<#<.<+.#<+.#<.<+...#<#<...<+<#<+.#<...<+<#<+.+.#<#<.<+.#<+.#<.<+..#<.<+.#<+.#<.<+<+.#.#<+<#<...<+.#<+<#<...<+<+...#<.<+.#<+.#<.<+<#<...<+.#<+<#<.<..+<+.#<.<#<..+<.<+.#<..#<.<+.#+<.<.<+<+<.<<+.#<.<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..+<+.##<...<+<<#<.<.<#<..+<+.#<.<#<..+<+.#.#<+..#<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747747774t477t7t47774t477t7t47774t4747774t477t7t4777777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<..<<.<.<#<.<#<#.+<.<#<#.+<#.+.+<.<+<..+<+<#..<.<#.+<+<#..<.<#<.<.<.<#<#.+<#.+.+<..<#.#.+<#.+<+<.<.<.<+<.<..+<#<#.+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<..+<#<#.+<.<..+<+<#<.<.<#.+.+<#<+<.<.<#..<#.#.+<.#.+<#.#..<..<.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<#<.<.<.+<+<#..+.+<#.+.+<#<.<.<#.+.+<#<.<.<+<.<<+<..<++aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7774t47774t47774t47774t47774t4777474t47774t47774t4t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<++<..+<....#<+<....#<..#<#<+<+<+..<+<+.#<.<.<.<+<+.#<.<.<#<.<+<....#<..#<#<+<<#<+<+..<+....<#<.<+<.<.<+.#<#<.<.<.<+.#<#<..#<#<#<+<+..<+....<#<+.#<#<.<.<.<+.#.#<.<.<+<+.+.#<...<#<#<+<#<+<+..#.#<+.#.#<.<.<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<.<.<+.<+<+.#<.+.#<+.+.#<.<.<+<+.+.#<.<.<+<.<.+<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t47t774t7t774t7t774t7t774t7t774t7t7t774t7t774t7t7777474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+.#<+<+<..#<+<+<.<+<.<..#..<#<#..<#.+<#.+<#..<#.+<#.+.+<#.#<+<+<.<+<.<..#+..<.<#<.<#<#<+.+<#.#.+<#.+<..+<#.+<#.+<..+<+<..+..<.<#<.<#<#<+.#.+<..+<#.+<#.+<.<#.+<#..<#<.<#.#<+.+..<+..<.<#<<+<.<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.+#.+<#.<#..<#.+#<.<.<#<.<#.+<#..<#<.<#.+<#.#.+<..<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477tt477t7t477t7t477t477t7t477t7t477t477t7t477t7t477t477t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.<.<<.<.+<.<.<.<<#<.<..<#<+.+.#<+.#<..#<+.#<+.#<..#<#<..+<#.#..<#..<.<+<<..+.+<#.+<#<#<...<+<+..<+.#<+.#<+..<+.#<+.#.#<+.+<#<#<.<#<.<..+<+.##<..#<.<+<.<#<..#<.<+<.<.#<+.+<#<.<..<.<<.<..#<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<.<+.#<+.+.#<<.<+..<+<.<#<.<+.#<.<#<.<+..<+.##<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774774t47774t47774t774t47774t47774t774t47774t47774t774t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<..<.<.<...+<++<.<.<#<.<.<#.+<+<.<.<.<#.+<+<..+<+..<+<+<#<+<#<#..+<#<#<..#<....+<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<#<....+<..+<+<#<.<.<.+<+<.<#.#.+.+<+<.<#.#.++<.<#<..+<.<<.<..<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<#.#.+<.<.<#<.<.+<.<#<#.#.+.+<.<.<#.+.+<.<#<#.+<<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4tt7t774t47774t7t7t7t774t47774t7t7t7t774t47774t7t7t7t74t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<<<+.#.#.<.<.<<+.<..#<+<+.#<.+..#<+<+..<+<#<.<.<+..<+.+.#<.#<.<.<+<.<+<+.#<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<.<+<+.#<+.#.#<.<.<+.<+<+<..#.#<.<+<+<..#.#<+..<<.<+.<<..<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<+.+.#.#<+<.<.<#<.<..<#<#<.<+.+..<#<#<+.+.#.#<#<+..+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777747477t774t7t474747477t774t7t474747477t774t7t47474747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##.+<.<<.<#.+.+<.<+<...<#.+<<<+<...<#<#..<.<#.+<..+<.<#.+.<#.+<.<+<.<#.+<..+<+<...<#<+<#.+<...<#<+<#.#.+<+<.<#.+<#.+<.<#.+<#.<#...#<+<+<.+<...#<+<+<.<.<.+<.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<<.<+<..#<#.+.+<##<+...+<.<#<#<+.+..<#<.<+<...<#<.##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t7474t7t477t774747474t7t477t774747474t7t477t774744t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<.<.<<.<.#<+..<..<.<.#<.<+.#<+<.<.<+<#<+.+.#<<#<.<.<#..<+<+..<+.#<.<+<#<...<+.#<+<#<..#<.<+.#..<+<+..<+.#.<++.#<.<+#<<.<...#<<.<+<..<.<<..#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<#<#<.+.#<#..<+.#<.<+..+<#<#<.<+...+<#<..+<+.#.#<++<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777t7t47774t477t7t7t7t47774t477t7t7t7t47774t477t7t7777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<<<.<.<<.<#<.<++<.<<.<#<#.+.#.+<#.#<.<#<.<.+.+<#.+.#<#..<#<#.+<+<.<..+<#<#.+<.<..++.<#.#.+<#<#..<#<.<.<+<.<.<#.#..++<.<<+<..<.<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.#<..+.+<<.<.<+<#<#.+.+<.#<..+.+<.<#<#<..+<#<.<.<+<.<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47t47774t47774t477t47774t47774t477t47774t47774t4777t474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.<<.<.<<.+<....#<#.#<+.#..<.<<+<..+.#<+.+<#<..#<.<+....<#<+.#<#<.<.<.<+.<<#<+<+..<#<..#<#<.<+<.<.<#<+<.<<.<<..<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<+.+.##<.<.<+...#<#<+<<.<+.+.#.#<#<.<+.#<.<.<+<.<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7774t7t774t7t774t774t7t774t7t774t774t7t774t7t774t74t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#<+<+<.<+<.<.<+<#.+.<.<#<.<.<#<..+<+<.<.<#<#<+.#.+<..+<#.+<#.<.+..<.<#<..+<+<..+<#..<.<+..<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<#<.<.+<#.+<.<+<.<..#+<.<#<.<+<..+<.<.<#.+<#.#.++<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74777t7t477t7t7t477t7t7t477t7t7t477t7t7t477t7t7t477t7777t4774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#<.<.<#<.<.<<.<..<...<<.<.<+<.<.<.<.<.<.<.<.<+<.<.<+.<.<.<.<.<<+<.<<.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.+<#.#<.<#<.+.#<+.#<#..<.<+<..<+<+..<#<.<.<#<#<.<.<#<+.#.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t447774t4747774t4747774t4747774t4747774t4747774t47t474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<<+.+.<.<#..<.<.<.<.<+<.<.<#..<.<#<.<#.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<...<#.+.+<<.<.<#.+<+<#<#..#<#..<#<+.+<#.+.+.+<#.+..<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t74t4777474t4777474t4777474t4777474t4777474t477744t7t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<#<+.+.##<.<..#<.<+.+.#<<#<..#<#.+.#<+.+.+.#<+.+<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7777t774t7t7t774t7t7t774t7t7t774t7t7t774t7t7t774t7t7774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.+<.<+..<#<.<.+<#<+<..+<.<#.+..+<+<..#<.<.<#<#<.<.<#<+<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47t477t477t477t477t477t477t477t477t477t477t477t4777t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.<.<#<..+<+.##<...<+<#<+.+.#<<+.#<.<+<.<+.#<.<.<+.#<..#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t74t7774t774t774t774t774t774t774t774t774t774t774t774t74t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<##.+.+<#<.<.<.+<+<#..<.<#<.<.#.+<+<.<+<.<.<#.+<.<.<#..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<.<<+.+.#<.<.<+.<+<+.#<.<.<#<.<<+....<#..<#<#<+..<#<#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaattt4t4474747474747474747474747474747474747474747474747t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<#.+.<#<.<#.+<#.<#..<#.+<#.+.+<#.<#<#<+.#<+.+..<#<+.+..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t4tt7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<..#<.<+<.<.<+<.<+.#<+..<+<.<+.#..<.<+<.<+<+<#..++<<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777474747474747474747474747474747474747474747474747474747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.+<+<.<#.#.+<#.#.+<.<.<#<#.#.+<.<+<#<#..<#....<+#<...<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t4777t477t477t477t477t477t477t477t477t477t477t477t477t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+.#.<+<+<..#.#<+.#.#<+<.<.<+.#.#<+<.<+.+.#<+.#<#<.<<.<+<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t74t774t774t774t774t774t774t774t774t774t774t774t774t774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#<.<<#...#<+<+<.<.<+<..#<#.+<.<+<..#.+<.<#.+<#.+<.<#+<.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47777477t4747477t4747477t4747477t4747477t4747477t4747477t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+.#.<+<+<#..<+.#<.<#..<+<.<+.#<#..<#<+.+.#<..#<#<....<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t47t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#<.<.<<#.#..<+.+<.<.<#<+<#.#.+<.<.<+<#<.<#<.<.<+<..+<+#<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474tt777t4t7t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<.<.<++.#.#<.<#<+<+<...<+.#.#<#<.<.<+..<.<#<.<+<+..<+<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t777474t7747474t7747474t7747474t7747474t7747474t7747474t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#.+<#.<.<+<.<#<..#.#<+.+<.<+<..+<#.+<.<#.+.+<#..<#<#..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4777t47477t47477t477t47477t47477t477t47477t47477t477t474774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+.#<+.#.<+<.<+.+<#.#..<#<+.+.#<+<.<.<+<+.#<..#<+.#<+.#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t74t777t4t777t4t774t777t4t777t4t774t777t4t777t4t774t777t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#<#.+<.<.<<#.#.+<...<+<+<#<.<#<.<..#.+<#.#<#.+<+<.<.<.<#.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77777474t777t4t774747474t777t4t774747474t777t4t774747474t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.#<.<+..<.<++.#.#<+<#<.<.<+..<.<#<.<#.#<+.#...#<+<+.#<.<..#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t47t7t474t77477t7t7t7t474t77477t7t7t7t474t77477t7t7t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<#..<#<+<#.<.<+<..#<.<#.+<.<#.+.+<#<+<.<.<+<+<...<#.+<#<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777t7t77477t474t7t7t7t77477t474t7t7t7t77477t474t7t7t7t774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..#<+<#<...<++.#<#..<+<.<.<+<+.#<.<+..<+.#<.<.<+<#<+.#<..<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t447477t4t777t474747477t4t777t474747477t4t777t474747477t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<+<.<..+<#<#.<.<.<+<#.#.+<#.#<#.+.+<..+<.<.<#<#..<.<#.+<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t77t4t777t4t777t477t4t777t4t777t477t4t777t4t777t477t4t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<+<.<.<+.#<#<.#<.<.<+.#.#<+.#...#<#<+<#<+<+<..+.#<.<.<.<+<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7744t77474t77474t774t77474t77474t774t77474t77474t774t77474tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.++<.#.+<#.+<..+<.+<#.+<.<+<.<.<+<+<.<..#<..#.#<+<#.+<#.+<#..+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4t7477t47477t47477t47477t47477t4747477t47477t4747747777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+..<+<+..<+.#<+.#.<+<.<+.#<+.+.#<+<#.#..<#..<.<+<..#<#<..#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t74777t4t777t4t777t4t777t4t777t4t777t7t4t777t4t777t4tt7t474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<#<#..<#<#.+<.<.<<#.#.+<.<.<#<.<...<+<+<#<+<#<#..<+<..+<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t77t777t4t77474t777t4t77474t777t4t7t777t4t77474t777474t77774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<.<#<..#<#<+..<.<++.#.#<+<.<.<#<.<#<.<.<+..<+.+.#<+<+..<+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t74t4474t77477t7t474t77477t7t474t7747474t77477t7t474tt777t4t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<#...+<+<...<#<+<#.<.<+<..#<#.+.+<#<.<#.+<..+<.<#.+..<#<#...#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t77t477t4t7t77477t474t7t777t477t477t477t4t7t7747747774t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#<+<+.#<.<+<#<...<++.#<#..<+.#<.<+.+<.<.<+<#<+.+.#<#<.<+.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t7744t774t7747477t4t777t47474t774t774t774t7747477t4tt7t4777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+<.<#.+<+<.<..+<#<#.<.<.<+<#<#.+.+<..#.+<#.#<.<#<.<.<.<#<#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t4t7474747477t4t777t4t777t4747474747474747477t4t777474t7t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+<<.<.<.<+....<#<+.#<#<.#<.<.<+...#<#<+<#.#<+.#..<.<#<.<+<....#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777777t7t7t7t4t77474t77474t777t7t7t7t7t7t7t7t4t77474tt77774t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..+<#.+<.<#<#<+.#.+<..+<.+<#.+<.<+<.<..#<+<.<.<+<#.+.+<#.#<+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747474t7t7t7t777t47477t47477t4t7t7t7t7t7t7t7t777t4747747777t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+..<+.#.+<#<#<.<.<+..<++.#<+.#<#..<.<+<.<+.#<+..<+<.<+.+<#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t474747474t777t4t777t4t7747474747474747474t777t4tt7t474t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<#<#.+<#<....+<+<.<#<#.<.<.<#.+<+<#<#...+<.<.<#<#.#.+<...<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t47777t477t47474t777t4t7747477t477t477t477t47474t777474t77777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.<.#<#<+..<.<+<+.#..<#<#<.#<.<..#<.<+.+.#<#<+<.<.<+.#.#<+<#<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t4t774t777t7t474t77477t7t4t774t774t774t777t7t474tt777t4t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.++<...<#<+<.<#.+<#<+...+<.+<#<+<..+<.<#.+<..#<#.+<.<+<..#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t77477t474t7t77477t474t7t77477t4747477t474t7t7747747774t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<.#<+<#<...<+<+...+<#<#<.#<...<+<#<+.+.#<#..<+<.<+.#<#..<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t477t4t777t47477t4t777t47477t4t777t7t4t777t47477t4tt7t47777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.#.++<.<..+<#<#..<#<#<..+.+<.+<+<#..<.<#<.<.<+<#.#.+<.<.<+<#.#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777774t777t4t777t4t777t4t777t4t777t4t7t777t4t777t4t777474t7t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#.#<<.<.<+.#<#<..#<#<.<+.+.#.<+<+.#<.<.<#<.<.<+.#.#<#<.<.<+..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai74t4t7t474t77474t77474t77474t77474t7747474t77474t77474tt77774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<.<+<.#.+<#.+<..+<+<..+<.<#<.<<#..<#.+<#.+.+<#.+<.<+<..+<#.+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t47777t47477t47477t47477t47477t4747747777t47777t47777t47777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.#.#<+.#<.<#<.<+..<+.#<+.#.#<+..<+<+..<+.#<+.#<+..<+.#<+.#.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t47774t4t777t4t777t4t777t4t777t4t777t4tt7t474t7t474t7t474t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<.<+<.<.<#.+.+<.<#<#.+<.<.<+<.<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t7t77474t777t4t77474t777t4t77474t777474t77774t7t474t77774t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#<.<+<.<.<#<+.+.#.#<#<+..<.<+<.<.<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t47477t7t474t77477t7t474t77477t7t474tt777t4t47774t777t4t47774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..+<#.#.+<+..<#<.<+<...<#<+<#.#.+<..+<+<...<#<+<#.+<...<#<+<#..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77474t7t77477t474t7t777t477t4t7t7747747774t4t7t477t474t4t777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+.#<.<+.#<..+<+.#.#<+<#<..#<.<+.#<+.#<.<+<#<...<+.#<+<#<..#<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t477t7t47477t4t777t47474t774t7747477t4tt7t4777774t774t77777t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<.<#.#.+<+<#<.<.<+<.<..+<.<#.#.+<#.+<+<.<..+<#<#.+<.<..+<.<#.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t47777t4t777t4t777t47474747477t4t777474t7t47777777777t474t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<...<#<#<+<+...#<.<.<+<.<.<+.#<#<+<+..<+....<#<+.#<#<.<.<.<+.#<#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t774t4t77474t77474t777t7t7t7t4t77474tt77774t7t4t4t4t474t77774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<++.+..<.<#<.<#.+<#.#.+<#.+<+..<.<#<.<#<#<+.#.+<..+<#.+<#.+<+..<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t77477t4747477t474t7t7t7t777t4747747777t474t4t4t4t777t477777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<.<+<<#<.<..+<+.#<+.#.#<+.#<.<#<.<..+.+<#<#<.<.<+..<+.#<+.#<..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t477t4t777t7t4t777t474747474t777t4tt7t474t777777777t474t7t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#<#....+<+<#<#.+<.<.<+<.<.<#...+<+<#<#<....+<+<.<#<#.+<.<.<#.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t47774t777t4t7t777t4t777t477t47474t777474t77777t477t474t7t474t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+.+.#<<+.#.#<.<+..<.<+<.<.<#<+<+.#.#<.<.<+<+.#..<#<#<.<.<.<#<++..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t7t474t7747474t77474t774t777t7t474tt777t4t474t774t77774t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<#.+#.+<.<#..<#<+<#.#.+<+..<#.+<.<#.+<.<#.+<#<+...+<#.+<+..<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t47777t477t477t477t47477t474t7t7747747774t4t777t47777t477t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#...#<+.#<<+.#.#<+<#<...<+<.<#<..+<+.#.#<+..<+<+...+<#<#<.<.<#<.<...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4774t774t4t774t774t774t777t4t777t47477t4tt7t47777t474t7t474t774t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<+<.<.<..<.<+<.<..+<#<#.#.+.+<#<.<.<+<.<#<#..<#<#<..+.+<#.+.+<.<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t7t7t77474747474747474t777t4t777t4t777474t7t474t7t474t7777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+.#<.<<.<+<.<.<+.#<#<.<+.+.#<.<.<+<.<.<#<..#<#<.<+.+.#<+.+.#<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474747477t7t7t7t7t7t7t7t474t77474t77474tt77774t77774t777t4t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#..<#.+<#+<#.#.+<#.+<..+<.<#<.<#.+<#.#.+<..+<+<..+<.<#<.<.<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474747474t7t7t7t7t7t7t7t77477t47477t4747747777t47777t47774t4t4t4t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.<<+..<+<.<+..#<.<#<..#<+.#<.<+.#<+.#<+..<+.#<+.#<+.#<+..<+.#<.<+..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t47474747474747477t4t777t4t777t4tt7t474t7t474t7t47777777774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+.<#<#.#.+<..<#.+.+<+<.<.<#.#.+<.<.<.<#<#.+<#.+<.<.<.<#<#.+<+<.<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t47777t477t477t477t4t777t4t77474t777474t77774t7t474t7t477t47t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<+.#.#<+<<#<+.+.#<.<.<#<+<+..<.<+.#<#<+..<+..<.<+.#<#<+....<#<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t774t4t774t774t774t77474t77477t7t474tt777t4t47774t77774t774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#.+<.<+<..#+..<#<.<#.+<+..<.<#<+<#.+<...<#<.<#<+<#.+<...<#<#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t477t77477t4747477t47477t477t4t7t7747747774t4t7t477t47777t4777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..<+<.<+.#<#..<<..+<+.#<.<#<..+<#<...<+.#<+<#<.<#<...<+.#<+<#<.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747774t477t4t777t7t4t777t4t774t7747477t4tt7t4777774t774t7t474t7t4474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..#.+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<+<#.#.+<.<.<+<#+<#<.<.<#.+.+<#<..+<#<#.+<.<..+<..+<#<#.+<.<..+<..<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t47774t777t4t7t777t4t77474747477t4t777474t7t47777777774t7t474t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.<+.#.#<#<.<.<+..#<.<.<+<+.+.#<.<+.#<#<.<.<.<+.#<+.#<#<.<.<.<+.#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t774t7t474t7747474t77477t7t7t7t4t77474tt77774t7t4t4t4t47774t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<+<.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<+<..+<#.+<..<#.+<#..<#<.<#.#.+<..+<#.+<#.+<#.+<..+<#.+<#.+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t7t47777t47477t47477t4t7t7t7t777t4747747777t474t4t4t4t7t47777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+..<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<##<+.+.#<+<.<.<+<<#<.<.<#<+.#.#<+<+.#.#<+..<+<+..<+.#.#<+..<+<+..<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t47774t4t777t4t777t4t77474747474t777t4tt7t474t77777777774t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.+.<.<#<.<..#.+<#.#+.+<#.+..<.<+<.<.<.<+<.<#<#..<#<.<.<+<.<#<#..<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777774t7t77474t777t4t7747477t477t47474t777474t77777t477t4777774t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.+.<.<#<.<#.#<+.#..+.#<+.+<.<+<.<.<.<+<.<.<#<..#<#<.<+<.<.<#<..#<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t7t47477t7t474t77477t7t4t774t777t7t474tt777t4t474t774t7t4t47774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<#<<#.+.+<#<+<.<.<+#<.<.<#<+<#.#.+<+<#.#.+<..+<+<..+<#.#.+<..+<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4777t77474t7t77477t474t7t77477t474t7t7747747774t4t777t47774t4t777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<#<.<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.<<.+.#<.<+..<+.#<.<<.<+.#<..#<.<+.#.#<.<+.#<+.#<.<+.#<.<+.#<+.#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t477t7t47477t4t777t47477t4t777t47477t4tt7t47777t474t7t47777t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..+.+<.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.+#.<#.+.+<..+<.<.<#+<.<.<#..<#.#.+<.<#.#.+<#.+<+<.<.<#.#.+<#.+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477774t47777t4t777t4t777t4t777t4t777t4t777474t7t474t7t474t7t474t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+.+.#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<+..#<#<+<#<+<+<....<#<#<+<#<+<+..<#<+<+..<+....<#<#<+<+..<+....<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t74t7t774t4t77474t77474t77474t77474t77474tt77774t77774t77774t77774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<#<.<<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+..<<+<.<..#<..#.#<+#<+.+..<+..<.<#<+..<.<#<.<#<#<+.+..<.<#<.<#<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t477t77477t47477t47477t47477t47477t47477t47477t47477t47477t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<+..<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#..<.<+<#..<.<+<.<+<+<#.#..<.<+<.<+<+<#..<+<+<#.+<#.#..<.<+<+<#.+<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t477t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<..<#<#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+<#<#..<+<#<#..<#....<+<+<#<#..<#....<+<#....<+..<+<+<#<#....<+..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t47774t777t4t77474t777t4t77474t777t4t77474t777t4t77474t777t4t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#+..#<#<+..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+..<+.+.#<.<+.+.#<+.#<#<.<.<+.+.#<+.#<#<.<+.#<#<.<#<.<.<+.+.#<#<.<<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477t774t7t474t77477t7t474t77477t7t474t77477t7t474t77477t7t474t77477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<...+<+<...<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..+<.<#.+.+<.<#.+<#.+<.<#.+<.<#.+<#.+<.<#<#.+<.<#<.<#.+<.<#.+<.<#<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777t477t47777t477t4t7t77477t474t7t777t477t4t7t77477t474t7t777t477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+.#<.<+#..<<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#<+.+.#<#<+.+.#<..#<#<..#<+.+.#<..#<#<....#<#<..+<.<.<+<..#<#<..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4774t774t4t774t7747477t4t777t47474t774t7747477t4t777t47474t774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<##.+<+<.<<+<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.#<.<#<.<.<.<#<.<.<+<..+<+<.<#<.<.<+<..+<+<+<..+<+.#.+<#.#<+<..+<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777tt7t7t7t77474747477t4t777t4t777t47474747477t4t777t4t777t47474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.<+....<#.<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#..<.<#<.<.<.<#<.<+<+..<+<.<.<#<.<+<+..<+<+<+..<+<#.#<+.#.+<+..<<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t74474747477t7t7t7t4t77474t77474t777t7t7t7t4t77474t77474t777t7t7t7tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<#<#<+..+<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<#.+.+<#<#.+.+<#..<#<#..<#.+.+<#..<#<#....<#<#..<+<.<.<+..<#+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t74747474t7t7t7t777t47477t47477t4t7t7t7t77477t4747477t4744t4t4t4t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.+<#<#<.#<+.+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++.<.<+<.<+.+.#<..#<+.#<+.#<+.#<..#<+.#<+.#<#<.<+<.<#<..#<.<#<.<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7747t7t7t7t474747474t777t4t777t4t77474747477t4t777t7t4t777t777777774iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...+#<....+<<.<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<.+<#.#.+<.<#.+<+<.<.<.<#.+<#.+<+<.<.<.<#.+<.<#.#.+.+<+<.<#<.<#.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t4tt477t47777t477t47474t777t4t7747477t477t4t777t4t7t777t4t77t477t477iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<<.<+<+.#.<.<#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#.#<+.#.#<+<..#<+<+.#<.<..#<..#<+<+.#<.<..#<+<..#.#<.<+<+<..+<..#.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777774t774t4t774t777t7t474t77477t7t4t774t77474t7747474t774774t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.+<.<#.+<<#.+.+<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<+<.<.<+<..#<+<...<#.+<#<+<.<+<...<#.+<#<+<..#<+<+<.<#...#<+.#<+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t7t477t77477t474t7t77477t474t7t77477t47477t477t477t477t4777t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<...<+<+..+.#<.<+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#...#<+.#<#..<.<+<#<+.#<...<+<.<+<#<+.#<...<+<+<#...#<.<+<+<#.+<<...#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t47774t477t4t777t47477t4t777t47477t4t777t4t774t774t774t77t474t7t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<#<#..<#<<#.+.+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#..<+<+<.<.<.<+<#<#..<.<#.+<+<#..<#..<.<#.+<+<#....<+<+<.<#.#..<+..++<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t47774t47774t777t4t777t4t777t4t777t4t777t4t774747474747474744t7t474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.#<#<..#<#..#<#<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#<.<+<+.#<.<.<+.+.#<.<.<.<+<+.#<+.#<.<.<.<+<+.#<#<.<+<+.+.#.#<.<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt774t7t774t7t474t77474t77474t77474t77474t77477t7t7t7t7t7t7t7t7774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.+<..+<+<..<+<.<..#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<#..<#.+<#.+<.<#.+<#.+<#..<#.+<#.+<#.+<#..<#.+<.<#..<#<.<+<.<#<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t77t7t47777t47477t47477t477t47477t47477t4t7t7t7t7t7t7t7t7777t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.#<+.#.#<+.<+<+<#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<+<.<.<+<.<+.#<+..<+<.<+.#<+.+.#<..#<#<..#<.<+<.<+.#<+.#<..#<#<..+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4744t47774t4t777t4t777t4t774t777t4t777t4t774747474747474747t474t7t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<.<+<.<<#....<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.#.#.+<#.#.+<.<.<#<#.#.+<.<.<#<.<.<+<..+<+<.<#.#.+<.<.<#.+<+<..+<+.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t7774t7t77474t777t4t774747474t777t4t7747477t477t477t477t44t7t474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<++..<.<+<.<.+.#<#<.<<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#.#.#<+.#.#<+<.<.<+.#.#<+<.<.<#<.<+<+..<+<+<..#.#<#<.<..#<+<+..<+<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477744t7t47477t7t474t77477t7t7t7t474t77477t7t4t774t774t774t777774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...<#<+<#.#.+<<#.+<.<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<+<.<.<+<..#<#.+<.<+<..#<#.+.+<#..<#<#...#<+<+<..+<#<+<...<#<#..<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777t77t77474t7t77477t474t7t7t7t77477t474t7t77477t4747477t4747t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#..#<.<+.#..#<#<..++.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.<+.<.<+.#<.<#..<+<.<+.#<#..<+.#<.<+.#<.<+.#<+<#...#<#<...<+<#<.<+.#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4744t477t7t47477t4t777t474747477t4t777t47477t4t777t7t4t777t74t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<...<+.<#.#.+<<+<..+<+.<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<#.+<.<.<#<+<#.#.+<.<.<+<#<#.+.+<.<.<#<#.+..<+<+<..+<+<#..<.<#<#.+<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t7t7774t47777t4t777t4t777t477t4t777t4t777t4t777t4t7t777t4t7777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.#<.<<#<+<+..+<+..<+<#.#<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++<..#<+<+<...<+.#.#<#<.<.<+...#<#<+<+<....#<#<.<+<+..<+<+.#<+<....#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777744t7t774t4t77474t77474t774t77474t77474t77474t7747474t7747t4t4t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<#+..<.<#<..<#<#..<+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.#<+<..#.#<+.+<.<+<..+<#.+<.<+<.<..#.#<+<+<.<.<#..<#<#..<#.+.#<+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t7t7t477t77477t4747477t4747477t4747477t47477t47477t47477t4t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<+.+<#.#..<#<.<+<.<#<..#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<#.+<#.#..<#<.<+<.<+.#<+.#<#..<.<+<.<+<+<#.+.#<..#<#<..#<.<.<+<+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t4747774t477t4t777t7t4t777t7t4t777t7t4t777t4t777t4t777t4t7747474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.#.+<...<+<+<#<.<#.#.+.+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#....<+..<+<+<#<.<#.#.+<.<.<#.+<+<#<#..<#....<+<#.+<+<..+<+<.<#<#....<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4777474t47774t777t4t7t777t4t7t777t4t7t777t4t77474t777t4t7747477t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#.#<+<#<.<.<+.+<..#.#<.<+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.#<#<.<#<.<.<+.+<..#.#<#<.<..#<.<+.+.#<+.#<#<.<..#<+<+..<+<+<..+.#<<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t7t7t774t7t474t7747474t7747474t7747474t77477t7t474t77477t7t4t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<..#<.<#.+<..#<+<+<.<#...#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#.+<.<#<.<#.+<..#<+<+<..+<#<+<..+<.<#.+<#.+<.<#<+<...<#<#...#<+<#.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t477t477t47777t477t477t477t477t477t477t477t4t7t77477t474t7t77477t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.#<#..<+<.<.<+<+<#...#<.<+<+<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#...#<#<..+<.<.<+<+<#...#<#<...<+<#<+.+.#<..#<#<...<+<#<+..<+<+<#...#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t774t774t774t4t774t774t774t774t774t774t774t7747477t4t777t47477t4t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<+<#.#.+<#.#..<+<+<.<#.#..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<..+<+.#.+<#.#..<+<+<..+<+<#..<.<#<.<.<+<..+<+<#..<.<#<#.#..<+<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t7t7t7t77474747474747474747474747474747477t4t777t4t777t4t777t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<.<+.#.#<+.#.#<.<+<+.+.#.#<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<+..<+<#.#<+.#.#<.<+<+..<+<+.#<.<.<#<.<+<+..<+<+.#<.<.<+.#.#<.<+<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474747474747477t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t4t77474t77474t77474t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..+<#.+<.<+<.<.<+<.<#..<#<.<+<..+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<#..<#<#..<+<.<.<+<.<#..<#<#..<#.+<#.+.+<#..<#<#..<#.+<#.+<.<+<.<#..<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74747474747474747474747474747474747474747474747477t47477t47477t474777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<+.#<..#<#<..#<.<+<.<#<..#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<#<.<+..<+#<..#<.<+<.<.<+<.<+.#<+..<+<.<+.#<.<+<.<#<..#<.<+<.<.<+<.<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t4t777t4t777t4t777t4t7477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<.<#.+<+<..+<+<.<#.#.+.+<+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.+.+<.<#<#..+<+<.<#.#.+<#.#.+<.<.<#<#.#.+<.<.<#.#.+.+<+<.<#.#.+<#.#.+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t477t477t477t477t477t477t477t477t477t477t4777474t777t4t77474t7777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<.#<.<..#<+<+..<+<+<..#.#<.<+<+<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<+.+..<#<#<..<+<+<..#.#<+.#.#<+<.<.<+.#.#<+<+<..#.#<.<+<+<..#.#<+.#.#<+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t774t774t774t774t774t774t774t774t774t774t774t7t7t474t77477t7t474t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.+<.+<#<+<...<#<#...#<+<+<.<#...#<+.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..<#<#<+...+<<#...#<+<+<.<.<+<..#<#.+<.<+<..#.#<+<+<.<#...#<+<+<.<.<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t477t7t7t477t7t7t477t7t7t477t7t7t477t7t7t477t7t7t77477t474t7t777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...<+#<...<+<#<.<+.#<+<#...#<.<+<+<#.<<+.+#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<..+<#<#<..<+<+<#..<+.#<.<#..<+<.<+.#<#..<+<#...#<.<+<+<#..<+.#<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47774t4747774t4747774t4747774t4747774t4747774t4747477t4t777t47474t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<<#<#..+<+<#..<.<#<#.+..<+<+<.<#.#..<++.+<<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.<#.#<..+.+<<#.#..<+.+<.<.<#<+<#.#.+<.<.<+<#..<+<+<.<#.#..<+.+<.<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai774t4777474t4777474t4777474t4777474t4777474t4777477t4t777t4t777t47474744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<..#<#<..<+<+.#<+<....#<#<.<+<+.+.#.#<.<.<.<#<.+<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<<#<+<.<+.+.#+.#.#<.<#<+<+<...<+.#.#<#<.<.<+.#<.<+<+.+.#.#<.<#<+<+<..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t774t7t7t774t7t7t774t7t7t774t7t7t774t7t7t774t7t4t77474t77474t777t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..<+<..+<<#..<#.+.#<+<+<.<.<#..<#<.<+<.<#<#.+.+<<.<.<<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+.+..<+<.<#<.<<.<+<.<#<..#.#<+.+<.<+<..+<#.+<.<.<#..<#<.<+<.<#<..#.#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t477t7t477t7t477t477t7t477t7t477t477t7t477t7t4777477t4747477t474747477iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#.#..<<+.<+<.<#<..#<.<.<+<+<#.+<.<.<+<..#<#<..+.#<..#<.#<+.#<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+.+<#.#<.<#<..<+<.<+.+<#.#..<#<+.+.#<+<.<.<+<+<.<.<+<..#<#<..#..<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t47774t47774t774t47774t47774t774t47774t47774t7t4t777t7t4t777t7t7t744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<+<+<#<.<#.#.+.+<+<.<#<#....<+.#.+<#.#<+<..+<+<#.+<+<.+<.<.<#..<.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#<#<...<#.+.+<<#.#.+<...<+<+<#<.<#<.<..#.+<#.#.#.+<#.#<+<..+<+<+<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t774t47774t7t7t7t774t47774t7t7t7t774t47774t7t7t777t4t7t777t4t7t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<#+..<.<+.+<..#.#<.<+<+<..+.#<#<.<#.#<+.#.+<+..<+<..#<+<+.<.<.<#<+<.<<<.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+<.#<.<.<+<#<+.+.#+.#.#<+<#<.<.<+..<.<#<.<#.#<+.#.#.#<+.#.+<+..<+<.<+.+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t47477t774t7t474747477t774t7t474747477t774t7t4747474t7747474t7747774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<..+<<#.+<..#<+<+<.<#...#<+<#.+<.<#<+<.<.<+..<#<#..<+<...<##.+<+..<.<+..<.<<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#...<#.+<.<+..<#<.<<.<+<..#<.<#.+<.<#.+.+<#<+<.<.<+<+<.<.<+..<#<#...+<.+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747474t7t477t774747474t7t477t774747474t7t477t7747477t477t477t477t4t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++.<.#<.<+..#<.<+<+<#...#<.<+<+<#...#<#<...<+.#<.<#<.<+.#<.<+<#<+.<.<#<..+.+<#<#<.<.<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#<.<.<#<..+<+.#+.#<#..<+<.<.<+<+.#<.<+..<+.#<.<.<+.#<.<#<.<+.#<#<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t47774t477t7t7t7t47774t477t7t7t7t47774t477t7t4t774t774t774t7747774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<.+<+<.<<+<.<#.#..<+<+<.<#.#..<+<+<..+<+.+<.<.<#<.<#<#.+<#..<.<##.+.+<#<#<..+.+<#.+.++<<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.++.+<#.+.+<#<.<.<<.<.<+<#.#.+<#.#<#.+.+<..+<.<.<#.+<.<.<#<.<#<#.+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t47774t47774t477t47774t47774t477t47774t47774t477747474747474747474t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<.<+.<....<#+<+.+.#.#<.<+<+.+.#.#<.<+<+..<+<#<+<+<..+<....#<+.#<.<.<<+.+.#<.<.<+.+.#<+.+.#.#+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<.+.#<+.+.#<.<.<+#<.<.<+.#.#<+.#...#<#<+<#<+<+<..#<+<+<..+<....#<.<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t7t774t7t774t774t7t774t7t774t774t7t774t7t774t7t7t7t7t7t7t7t7t7t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<+.<.<<.<+#<+...<#<.<+<.<#..<#<.<+<.<#..<#<#..<..#.#<+.#<+<+<.<#.+<#.+.<#<.<#.+<.<#<.<.<#<.<+<..<.<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+.#<.<.<#<.<#.+<#..+<#.+<.<+<.<.<+<+<.<..#<..#.#<+<..#.#<+.#<+<+<.<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777t7t477t7t477t7t7t477t7t477t7t477t7t477t7t477t77474747474747474t7t447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..#<+#..<.<+<.<+<+<#.#<+.+.#<+.#<..#<#<..#<.<+<.<.<+<.<+<+<#.+<#.#..<..#<#<..#<.<+<.<<.<#<.<+..<+<+..<+.<+<.<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.+<#<+.#.#<+.#<.<#<..<+<.<+.#<+.+.#<+<#.#..<#..<.<+<#..<.<+<.<+<+<#.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t74t47774t47774t4747774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t4777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<<+<#<#..<#....<+<.<#<.<.<#.+<+<..+<+<.<#.#.+<#.#<#....<+..<+<+<#<+<..+<+<.<#.#.+#.+.+<.<#<#..<#<<.<#.#.+#.#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<#<...<.<+<.<.<#.+.+<<#.#.+<.<.<#<.<...<+<+<#<+<#<#..<+<#<#..<#....<+.#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477774t7t774t4777474t47774t7t774t47774t7t774t47774t477t477t477t47774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<..#<#.<+.+.#<+.#<#<.<.<.<#<.<..#<+<+..<+<+<..#.#<+.#.+.#<#<.<#<.<.<+.+<+..<+<+<..#.#<<+.+..<#<#<..#<#+<..#.#<<+.+<.<<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<.<+<.<.<#<+.+.#+.#.#<+<.<.<#<.<#<.<.<+..<+.+.#<.<+.+.#<+.#<#<.<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t74t7t47477t774t7t7t774t7t47477t774t7t47477t774t7t774t774t774t774t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<.<.<.<+<...+<.<#.+<#.+<.<#<#.+.+<#<+<...<#<#...#<+<+<.<.<+<#.+<.<#<.<#.+<...<#<#...#<+<+<..<#<#<+...+<+<...#<+<+<..<#<.<+..<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.+<.<+<#.#.+<+..<#<.<<.<+<..#<#.+.+<#<.<#.+<..+<.<#.+.+<.<#.+<#.+<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4777t77474t477t477t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<.<+<<+.#<.<+#<+.+.#<..#<#<..+.#<.<+..<+<#<+..<+<+<#..<+.#<.<..#<#<..+<.<.<+<#<.<+.#<+<#...#<<+...+<#<+.#<.<++<#...#<<+...+<..+<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<.<#.#<.<+.#<..+<+.#+.#<#..<+.#<.<+.+<.<.<+<#<+.+.#<#<+.+.#<..#<#<..+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t74t477t7t774t774t774t774t7t7t47774t477t7t774t774t47774t4747774t47774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<.<#..<.+<+<.<<.<#<.<.<+<..+<+<#.+.+<.<#..<.<#<#.#..<+.+<.<.<#<+<..+<+.#.+<#.#<.<#<#.+..<+<+<..<#<#<..#.+<+<.<..<+<+<..<#<<<.<<<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..+#.+..<#.#.+<+<#<.<.<<.<.<+<#<#.+.+<..#.+<#.#<.<#<.<.<.<#<.<.<+<..+<++<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477774t477t7t7t7t7t7t7t7t7t47774t47774t477t7t7t7t774t4777474t47774t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<..<+<+.#<++....<#.<.<#<.<+<+..<+<..#<#<+<+.#<.<.<+.#.#<.<#<+<+<..+<+..<+<#.#<+.#.+<....#<#<.<+<+..#<#<.<+<+....<##<.<+<+..#<#+.<.+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<+.+<#<+<+...#<.<.<+#<.<.<+...#<#<+<#.#<+.#..<.<#<.<.<.<#<.<+<+..<+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t74t7t774t4747474747474747774t7t774t7t774t474747477t774t7t7t774t7t4747iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#<.<<#..<#.+.<#<#<+.<#.+.+<#..<#<#..<+<.<..#<#.+<#.+<.<+<.<#<..#.#<+..<#<#..<+<.<.<+.#<+<+<.<.<#..<#+<..+<.<.<#<#<+.<.<#..<#+<..+<.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<#..<#<+..<.<#<.<#.+<#..+<#.+<.<+<.<..#<+<.<.<+<#.+.+<#<#.+.+<#..<#<#..#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4777t7t4777474747474747474t477t7t477t7t47774747474t477t7t477t7t4774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<.<+<+..#<.<#..<.<+<+.#<..#<+.#<+.#<#..<.<+<.<+.#<+..<+<.<+.+<#.#..<#<.<+<.<#<..#<.<.<+<+<#.+.#<..#<<+..<+.#.+<#<#<.+<.<.<+<..#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+.#<.<#<.<..+<+.#<+.#+.#<+.#<#..<.<+<.<+.#<+..<+<.<+.+.#<..#<.#<+.#.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t74t47774t7t7t7t7t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<..+<+<.<#<+<#<#..<#.+<+<.<.<.<#.+<+<#<#...+<.<.<#<#.#.+<...<+<+<#<.<#.#.+.+<+<.<#<#....<+<#.+<+<..<#<#.+<#<....+<.#.+<..#<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+<.<.<#...+<+<#<#.+<.<.<<.<.<#.+<+<#<#...+<.<.<#<#.#.+<.<#.+<+<.+<.<.<<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777477774t7t7t477t477t477t477t7t774t47774t7t7t477t477t7t774t47774t7t77t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#+..<.<+<...<+.+.#<..#<+<+.#<.<..#<.<+.+.#<#<+<.<.<+.#.#<+<#<.<.<+.+<..#.#<.<+<+<..+.#<#<.<..#<+<+..#<#<+..<.<+<+.##.#<.<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<<.<.<#<+<+.#.#<.<+..<.<+#<.<..#<.<+.+.#<#<+<.<.<+.#.#<+<..#<+<+.<.<.<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t74t7t4747774t774t774t774t47477t774t7t4747774t774t47477t774t7t474774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<..#<+.+<.<#.+<+<...<#.+<#<+<..+<.<#.+<..#<#.+<.<+<..#<.<#.+<..#<+<+<.<#...#<+<#.+<.<#<+<...<#+<...<#<+<.<#.+<<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.#.+<+..<#.+<.<#..<#<+<#..+<#<+<..+<.<#.+<..#<#.+<.<+<..#<+<...<##.+<+..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4777t77474t7t477t7t7t477t77474t7t477t77474t7t477t77474t7t477t77474777iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<#<+.+.#<.<+<#<+.#<...<+<#<+.+.#<#..<+<.<+.#<#..<+<.<.<+<+<#...#<.<+<+<#...#<#<...<+<#<+..#<+<#<...<+.<...<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+++.#<.<#<..+<+.#.#<+<#<...<+#<...<+<#<+.+.#<#..<+<.<+.#<#..<.<+<#<+.<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t74t477t7t47774t4747774t477t7t47774t477t7t47774t477t7t47774t477t7tt474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaattaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<<.<#<.<.<#..<.<#.+<+<#..<.<#<.<.<+<#.#.+<.<.<+<#.#.+<#.#..<+<+<.<#.#..<+<+<..+<+<#..<.<#+<.<..+<#<#.<.<+.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#.+.+<#<.<.<+<.<..+<#<#..+<+<#..<.<#<.<.<+<#.#.+<.<.<+<#<#..<.<##.+..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77477774t47774t4777474t47774t47774t47774t47774t47774t47774t47774t477747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<.<+<+.#<.<.<.<+<+.#<.<.<#<.<.<+.#.#<#<.<.<+.#.#<+.#.#<.<+<+.+.#.#<.<+<+..<+<+.#<.<.<<.<.<+.#<#<..<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<+.+.#<.<.<+<.<.<+.#<#<..<+<+.#<.<.<#<.<.<+.#.#<#<.<.<+.+.#<.<.<<+.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t4t74t7t774t7t774t7t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#..<#.+<#.+<#..<#.+<#.+.+<#.+<.<+<..+<#.+<.<+<.<.<+<.<#..<#<.<+<.<#..<#<#..<#.+<#.+#.+<#.+<..+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<#..<#<.<#.+<#.#.+<#.+<..+<<#..<#.+<#.+.+<#.+<.<+<..+<#.+<.<#.+<#.+.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77t7t477t7t477t7t477t477t7t477t7t477t7t477t7t477t7t4t47477t47477t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<.<.<+.<+<.<+.#<+.+.#<+.#<..#<<.<#<.<+..<+<+..<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<.<.<+.#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+..<+.#<+.#<.<#<.<+..<+<+..<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<.#<..#<.<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7744t47774t47774t47774t774t47774t47774t47774t47774t4777777t4t777t4t777t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<<.<..#.+<.<.<#<.<.<#.+<+<.#.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.+<.<.<.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<#.+<.<.<#.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.+<.+<+<.<#.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t7774t7t774t47774t7t7t7t774t47774t7t774t47774t7t774t4t4t77474t777t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.#<.<#<+<.<.<#<.<..#<+<+.<+.+..<#<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<#<+.+.#<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<..#<#<+..<.<+<+.+..<#<#<..#<#<+..<.<+.#<#<+..<.<+<.<.<#<+.+.#.<+<+<..#.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47744t7t47477t774t7t474747477t774t7t47477t774t7t47477t7777477t7t474t77477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<..#<#.+.+<#<+<...<#.<#<#<+...+<+<...<#<+<#.+<...<#<+<#.#.+<+..<#<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<+<...<#<+<#..<#<#<+...+<+<...<#<+<#.+<...<#<+<#.#.+<+..<#<.<<#...#<+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4777474t7t477t774747474t7t477t77474t477t4777474t7t4t474t7t777t477t44taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.+..<.<+..<+<#<+.<+...+<#<+.#<.<+<#<...<+.#<+<#<..#<.<+.#<.<.<<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<+.#<.<+<#<...<+<+...+<#<+.#<.<+<#<...<+.#<+<#<..#<.<+.#<..+<+.#.<+<+<#..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t774t7t7t47774t477t7t7t7t47774t477t7t774t774t7t7t4777777t47474t774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt477774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#<.<.<.<#..<.<#.<#<#<..#.+<+<.<..+<#<#.+<.<..+<.<#.#.+<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##.+<+<.<..+<#<#..<#<#<..#.+<+<.<..+<#<#.+<.<..+<.<#.#.+<+<#<.<.<<#.#..<+.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t7t7t7t47774t47774t477t47774t47774t477t7t7t7t7t47774t4t4t777t4747474747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<+<+++.#<.<.<.#<#<.<+<+....<#<+.#<#<.<.<.<+.#<#<+<+..<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+....<#<+.#<#<..#<#<.<+<+....<#<+.#<#<.<.<.<+.#<#<+<+...#<.<.<++.#.#<.<#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai47474747774t7t774t7t774t774t7t774t7t774t47474747774t7t7777474t777t7t7t7t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t7774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...<<#.+<#.++<..+<.<.<#<#<+.#.+<..+<#.+<#.+<+..<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.<#<#<+.#.+<..+<+<..+<.<.<#<#<+.#.+<..+<#.+<#.+<+..<.<#<.<#.+<#.<.<+<.<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774747474t7t477t7t7t477t7t7t477t7t7t477t774747474t477t7t4t47477t4t7t7t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt4747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<+.<+..<+.#.+<#<#<.<+.#.#<+..<+<+...<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<#<#<.<.<+..<+<+..<+.#.+<#<#<.<+.#.#<+..<+<+..<#<.<..+<+.#<+.#.<+<.<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t47774t4747774t4747774t4747774t477t7t7t7t774t4777777t4t774747474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774777t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.+<.<#<#.+<#<....+<.<.<+<.<#<#..<#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#<....+<+<.<#<#..<#<#.+<#<....+<.<.<+<.<#<#..<#<..+<+<#<#.+<.<.<<#.#.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t47774t4777474t4777474t4777474t47774t477t477t7t774t4t4t7747477t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7tt4t74t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<#<+..<.<+<+.#<.<+<.<.<#<..#<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<+<+.#..<#<#<..#<#<+..<.<+<+.#<.<+<.<.<#<..#<#<+.#.#<.<+..<.<++.#.#<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774t774t7t774t7t7t774t7t7t774t7t7t774t7t774t774t47477t7777477t7t4t774t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774774777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.++<...<#<+<.<#.+<+<#.#.+<..+<+<...+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+<.<#.+<#<+...+<+<...<#<+<.<#.+<+<#.#.+<..+<+<..#.+<.<#..<#<+<#.<.<+<..#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t477t7t477t477t477t477t477t477t477t477t7t477t77474t7t4t474t7t77477t4744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t47t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<+<#<...<+<+...#<.<+.#<+.#<.<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+..<+<+...+<#<#<..#<+<#<...<+<+...#<.<+.#<+.#<.<+<+.#.#<+<#<...<++.#<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47774t47774t774t774t774t774t774t774t774t47774t477t7t4777777t47477t4t777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t7774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+<#<#<#..<#<#<..+.+<+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<.<.<+<.<..+<#<#.<.<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7774t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t774t47774t47774t4t4t777t4t777t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7474747477774iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.<+.#<#<..#<#<#<+<+..<+....<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#<.<#<..#<#<.<+.+.#<.<.<+.#<#<..#<#<#<+<+..<+....<#<.<+<.<.<+.#<#<.#<.+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t7t774t7t474747474747474747474747474747477t774t7t774t7t7777474t77474t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7tt4t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.+<#.+<..+<+<..+..<.<#<.<#<#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#...+<+<..+<.<#<.<#.+<#.+<..+<+<..+..<.<#<.<#<#<+.+<#.#.+<#.+<..+<.+<<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t477t7t7t7t7t7t7t7t7t77474747474747474t7t477t7t477t7t4t47477t47477t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t4t4t4t4t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..<+.#<+.#.#<+.+<#<#<.<#<.<..+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#<+<+.#<+.#<+..<+.#<.<+..<+<.<#<.<+.+<#<#<.<#<.<..+..<+<+..<+.#<+.#.#<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t4747474747474747477t7t7t7t7t7t7t7t47774t47774t4777777t4t777t4t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777777777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<+#.+<.<.<+<.<#<....+<..+<+<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<#.+<.<.<.<#<#.+<+<.<#<#.#.+.+<.<#<....+<..+<+<#<#<#..<#<#.+<.<.<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t4777477t477t477t477t4t477t477t477t47774t47774t7t774t4t4t77474t777t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t477t477t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<<+..<.<+<.<.<.<+<+.#<+.#.#+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<.<.<+..<.<+.#<#<+....<#<#<.<+.+..<#<.<+<+.#<+.#.#<.<#<..#<#<+..<.<+<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477t774t7t4t774t774t774t77774t774t774t774t7t774t7t47477t7777477t7t474t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t774t774t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<#<+<#.#.+<+<.<#.+<#.+<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+<.<#<+<#.+<...<#<#<+...+<.<#<#<+.+<.<#.+<#.+<.<#...+<+<...<#<+<#.#.+<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t477t4777477t4747477t474t7t477t7t7t477t7t477t4777474t7t4t474t7t777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747777t4777777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.#<.<+.#..<+<+..<+.#<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.<+.#<#<...<+.#<+<#<..+<#<#<.<+...+<#..<+<+..<+.#.#<+<+.#<.<+<#<...<++.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4774t774t7t4t777t7t4t777t47774t4747774t47774t774t7t7t4777777t47474t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t474t7t4t474t7t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#...<#.#.+<#<#..<#<.<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.#.+<..+<#<#.+<.<..+<#<..+.+<.<#<#<..#<#..<#<.<.<+<.<#.+<+<.<..+<#<#.<.+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477tt7t7t7t7t777t4t7t777t4t774t4777474t47774t7t7t7t7t47774t4t4t777t47474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t7t474t4t7t474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+.#<<#<+<+..<#<..#<#<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<++<+..<+.#<#<.<.<.<+.#<.<+.+.#.#<#<.<+<#<..#<#<.<+<.<.<+....<#<+.#<#<.<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77447474747474t7747474t77477t774t7t7t774t7t47474747774t7t7777474t777t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t47774t7777774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#.++..<.<#<..+<+<..+<#..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+..<.<#<#.+<..+<#.+<#.+<+<.<#<.<+<..+<.<..+<+<..+<#.#.+<.<#<#<+.#.+<..+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477tt7t7t7t777t47477t47477t4t477t7t477t7t47774747474t477t7t4t47477t4t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t7t47777t47777t4774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<..<<#<.<..+<+.#<+.#<+..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#<.<..+<+.#.#<+..<+<+....<+<+..<#<.<.<#<+.#<+.#<+..<+.#.+<#<#<.<.<+..<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774474747474t777t4t777t4t77774t47774t47774t7t7t7t7t774t4777777t4t77474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t7t474t7t474t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#..+<+<#<#.+<.<.<.<#<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..+<+<#<.<.<+<.<#<#..<#<#<#..<#<+.+<#.+.#.+<.<.<.<#<#.+<#<....+<+<.<#<#..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t4t77t477t47474t777t4t77474t7t774t47774t7t7t477t477t7t774t4t4t7747477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777774t7t474t777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..<+.#.#<.<+..<.<+.#<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#.#<.<.<+<.<.<#<..#<#<#<..#<#.+.#<+.+<+..<.<+.#<#<+..<.<+<+.#..<#<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477774t774t777t7t474t77477t7t47477t774t7t4747774t774t47477t7777477t7t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t4t47774t777t4t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<<+#.+<.<#..<#<+<#.+<...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+<.<#.+<#.#.+<..+<+<....+<+<..#<.<.<#<.<#<+<#.+<...<#<+<.<#.+<#<+...+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt7t77477t474t7t77477t474t7t77474t7t477t77474t7t477t77474t7t4t474t7t774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47774t4t777t47774t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+.#.#<+<#<...<+.<++<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<+.#.#<+.#<.<+.#<+.#<.<+<+.#<.<+<.<+.#<.<#<...<+.#<+<#<...<+<+...+<#<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747477t4t777t47477t4t777t47477t7t47774t477t7t47774t477t7t4777777t47477t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t47777t474t7t47777t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<.<.<+<.<..+<#<#.+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#<.<.<+<.<.<#.#.+<#.+<+<.<#.+<+<.<+<.<.<#...+<#<#.+<.<..+<#<#..<#<#<..+.+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777t4t777t4t777t4t777t4t777t4t47774t47774t47774t47774t47774t4t4t777t4t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4474t7t474t7t474t7t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<.<.<+.#<#<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.<+<.<.<#<+<+..<+....<#<+....<#..<#<#<+<+.#<#<.<.<.<+.#<#<..#<#<.<+.+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t77474t77474t77474t77474t77774t7t774t7t774t7t774t7t774t7t7777474t77474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77774t77774t77774t7t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.+<#.#.+<#.+<..+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.+<#.#.+<+..<.<#<.<#<#<+..<#<#<+.#<+.+..<#.+<..+<#.+<#.+<..+<+<..+<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t47477t47477t47477t47477t474t7t477t7t477t7t477t7t477t7t477t7t7t477t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4747777t47777t47774t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+.<.#<+.#<.<#<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+..<+.#+<#.#..<#..<.<+<#..<.<+<.<+<+<#.<.<+..<+<.<#<.<+..<+<+..<+.#<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t777t4t777t4t777t4t777t4t777t47774t47774t47774t47774t47774t4747774t47774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7477t7t7t474t7t474t7t477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.++<.<.<#.+.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<.<#<#.+<..<+<+<#<+<#<#..<+<#<#..<#....<++<.<#<#.#.+.+<.<#<#..<#<#.+<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t4t77474t777t4t77474t777t4t774t47774t7t774t47774t7t774t4777474t47774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7747474t77774t7t474t77477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.<.<#<+.+.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.<.#<#<+..#<.<.<+..<+.+.#<.<+.+.#<+.#<#<.<..<#<#<.<+.+..<#<#<..#<#<+...<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t77477t7t474t77477t7t474t77477t774t7t47477t774t7t47477t774t7t7t774t7t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t7t777t4t47774t777t4t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#.#.+<+..<#<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.++<...<#<<.<#.+<..+<.<#.+.+<.<#.+<#.+<.<##<+...+<.<#<#<+...+<+<...<#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t4t7t77477t474t7t777t477t4t477t4777474t7t477t77474t477t477t477t477747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t4747774t4t7t477t47477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<.<+.#<..+<+.#.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<.#<+<#<.+<.<.<+<#<+.+.#<#<+.+.#<..#<#<...+<#<#<.<+...+<#<+.#<.<+.++<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t774t7747477t4t777t47474t774t77774t774t7t7t47774t477t7t774t774t774t774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t477t7t7t4777774t774t7t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#.#.+<+<#<.<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#.++<.<..+<.#.+<#.#<.<#<.<.<.<#<.<.<+<..+<+#<..+.+<.<#<#<..#.+<+<.<#<..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474747477t4t777t4t777t474747474t7t7t7t7t47774t47774t477t7t7t7t7t7t7t7t7t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7747474t7t47777777774t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+<+...#<.<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#.#<<.<.<+.##.#<+.#..<.<#<.<.<.<#<.<+<+..<+<<.<+.+.#.#<#<.<+<+....<#<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t4t77474t77474t777t7t7t7t47474747774t7t774t7t774t474747474747474777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait774t4t7t77774t7t4t4t4t47777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+..<.<#<.<#.+<#.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<.#.+<#.+<<+<.<.<+<#.+.+<#<#.+.+<#..<#<#..+<.<#<.<+<..+<.<.<#<#<+.+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t777t47477t47477t4t7t7t7t774747474t477t7t477t7t47774747474t7t7t7t7t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4477t4t4747777t474t4t4t4t77777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<.<+<<#<.+.#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<..#<+..<+<+...<+.#<+..<+<.<+.+.#<..#<+.#<+.#<..<+<+..<#<.<.<#.<+<+<#..#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474747474t777t4t777t4t77474747477t7t7t7t774t47774t47774t7t7t7t7t4747474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt77477t7t7t474t777777777t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<#..+.+<<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<.<#<#..<#<.+<.<.<#<#.#.+<.<#.+<+<.<.<.<#.+#<#..<#<+.+<#.+.<#....<+.<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t477t47474t777t4t7747477t477t4t477t477t7t774t47774t7t7t477t47777t477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4t7747474t77777t477t47477t477ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+.+.#<.+.#.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<.<#<..#<##<+<.<.<+.#.#<+<..#<+<+.#<.<..#<<#<..#<#.+.#<+.++.#<#<.<<#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t774t777t7t474t77477t7t4t774t77774t774t47477t774t7t4747774t774t4t774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7777t4t7t777t4t474t774t7t774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+#<.<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<#.+<..+<+<..<..#<#.+<.<+<..#<+<...<#.+<#<+<...+<+<..#<.<.<#<<#.+<.<#+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747477t474t7t77477t474t7t77477t474t7t477t77474t7t477t77474t7t477t77477t47474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777774t4747774t4t777t47774t477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#<<.<+.##<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..#<.<+.#<+.#<.<+#..<+<.<+.#<#..<.<+<#<+.#<...<+<<+.#<.<+<.<+.#<...#<#<...<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t7t4t777t47477t4t777t47477t4t777t47774t477t7t47774t477t7t47774t477t4t777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747t4t477t7t7t47777t474t7t477t77477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<.+<.<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#.#.+<#.+<+<.<<+<#.#.+<.<.<+<#<#..<.<#.+<+<#..#.+<+<.<+<.<.<#.<+<..+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t777t4t777t4t777t4t777t4t777t4t774t47774t47774t47774t47774t47774t777t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t7747474t7t474t7t474t77477t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<..<#<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#<+<+..<+....<#.<+.#.#<#<.<.<+.+.#<.<.<.<+<+.#<<+....<#..<#<#<++<+..<+<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747474t77474t77474t77474t77474t77477t774t7t774t7t774t7t774t7t774t7t474t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t774t4t7t77774t77774t777t4t774t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<##<+.+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+..<.<#<.<#<#<+..+<.<+<..+<#.+<.<#.+<#.+<#..<#.+.<#<#<+.#<+.+..<..<#<#..+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t47477t47477t477t47477t47477t4t477t7t477t7t477t477t7t477t7t47777t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47747777t477t47777t47777t47477t4t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+..+<<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<.<+<.<+<+<#.#<+.+.#<+.#<..#<.<+<.<+.#<+.+.#<+<#.#..<#..<.<+<#<+.+.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t777t4t777t4t774t777t4t777t4t77774t47774t47774t774t47774t47774t4t777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4tt7t474t774t7t474t7t474t7t77477t7744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+..++.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<#<#..<#....<+<.<#<.<.<#.+<+<.<#.#.+<.<.<#<.<...<+<+<#<+<#<#..<.<#<.<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474747474t777t4t774747474t777t4t77474t7t774t47774t7t7t7t774t47774t7t774744t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777474t777777774t7t474t77774t4t77477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+#<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.<+.+.#<+.#<#<.<.<.<#<.<..#<+<+.+.#.#<+<.<.<#<.<#<.<.<+..<+.+.#<.<.<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t7t7t7t474t77477t7t7t7t474t77477t7t47477t774t7t474747477t774t7t47477t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474tt777t4t4t4t47774t777t4t47777t4t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<...+<.<#.+<#.+<.<#<#.+.+<#<+<...<#<.<+<..#<#.+.+<#<.<#.+<..+<.<#.+<#.+.+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7t7t77477t474t7t7t7t77477t474t7t77474t7t477t774747474t7t477t774744t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747747774t4t4t4t777t47774t4t77774t47t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+#<+.+.#<..#<#<..+.#<.<+..<+<#<+.+.#<#..<+.#<.<+.+<.<.<+<#<+.+.#<+.#<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474747477t4t777t474747477t4t777t47477t7t47774t477t7t7t7t47774t477t7t7777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4tt7t477777777t474t7t47777t4t477t7777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<.<#<.<.<+<..+<+<#.+.+<.<#..<.<#<.<.<+<#<#.+.+<..#.+<#.#<.<#<.<.<#.+.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t477t4t777t4t777t477t4t777t4t777t4t47774t47774t477t47774t47774t4777t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt777474t7t477t474t7t474t7t47477t7747t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<.<.<#<.<+<+..<+<..#<#<+<+.#<.<.<#<.<.<+...#<#<+<#.#<+.#..<.<#<.<..#<#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t774t77474t77474t774t77474t77474t77774t7t774t7t774t774t7t774t7t774t74t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474tt77774t774t77774t77774t7t774t4t777474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.<#.+.+<#..<#<#..<+<.<..#<#.+<#.+.+<#.+<.<+<.<..#<+<.<.<+<#.+.+<#<+<.<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4747477t4747477t4747477t4747477t474t7t477t7t7t477t7t7t477t7t7t477t7777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777777t4777777t4777777t47774t477t4t4t47t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#.+.#<..#<+.#<+.#<#..<.<+<.<+.#<+.+.#<+.#<#..<.<+<.<+.#<+..<+<.<+.+<#.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777t7t4t777t7t4t777t7t4t777t7t4t777t47774t4747774t4747774t4747774t47t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t7t4t474t7t4t474t7t4t474t7t477t7747777t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<...<+<#.+<+<.<.<.<#.+<+<#<#...+<.<.<#<.<.<#.+<+<#<#...+<.<.<#<#.#.+<...<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t4t7t777t4t7t777t4t7t777t4t7t777t4t774t4777474t4777474t4777474t477744t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t474t4t7t474t4t7t474t4t7t474t77477t777747t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#<.<..#<+<+.#<.<..#<.<+.+.#<#<+<.<.<#<.<..#<.<+.+.#<#<+<.<.<+.#.#<+<#<.<<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777747474t7747474t7747474t7747474t77477t774t7t7t774t7t7t774t7t7t774t7t7774iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7777774t7777774t7777774t777t4t774t4t4t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<#<+<...<#.+<#<+<..+<.<#.+<..#<#.+.+<#<+<..+<.<#.+<..#<#.+<.<+<..#<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t477t477t477t477t477t477t477t477t477t4t477t477t477t477t477t477t477t4777t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t477t477t477t477t477t477t47477t477t477t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<...<+<#<+.#<...<+<#<+.+.#<#..<+<.<#<...<+<#<+.+.#<#..<+<.<+.#<#..<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t774t774t774t774t774t774t774t774t77774t774t774t774t774t774t774t774t74t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t774t774t774t774t774t774t7t774t774t774t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<+<#..<.<#.+<+<#..<.<#<.<.<+<#.#.+.+<+<#..<.<#<.<.<+<#.#.+<.<.<+<#.#.+<;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474747474747474747474747474747474747474t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777777777777777777777777777774t4t4t4t4t4t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<..<+<+.#<.<.<.<+<+.#<.<.<#<.<.<+.#.#<.<+<+.#<.<.<#<.<.<+.#.#<#<.<.<+.#.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47474747474747474747474747474747t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t477777777777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<#..<#.+<#.+<#..<#.+<#.+.+<#.+<.<+<.<#..<#.+<#.+.+<#.+<.<+<..+<#.+<.<+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474747474747474747474747474747474747474t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t74t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777777777777777777777777777777777777777777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..#<+.#<.<#<..#<+.#<.<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#<.<+..<+#<..#<.<+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47474747474747474747474747474747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<.<.<#.+.+<+<.<.<#.+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.+<.<#<#..+<+<.<#.#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t477t477t477t477t477t477t477t477t477t47777t477t477t477t477t477t477t477t47ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t477t477t477t477t477t477t477t477t477t477t477tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+<.<.<#<+.+.#<.<.<#<+.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+..<#<#<..<+<+<..+<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t774t774t774t774t774t774t774t774t774t4t774t774t774t774t774t774t774t77747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t774t774t774t774t774t774t774t774t774t774t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<++<.#.+<+..<#<.<#.+<+..<#<.<.<#<#<+...+<#.+<+..<#<.<.<#<#<+...+<<#...#<+..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t477t7t7t477t7t7t477t7t7t477t7t7t477t77477t4747477t4747477t4747477t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744t477t4t4t477t4t4t477t4t4t477t4t4t477t4t4t477t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#<.<+.#<..+<+.#<.<#<..+<.<+.#<..+<#<#<.<.<#<..+<.<+.#<..+<#<#<..<+<+<#.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4747774t4747774t4747774t4747774t4747774t477t4t777t7t4t777t7t4t777t7t4t777tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77t7747777t7747777t7747777t7747777t7747777t77477t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#.#.+<+<#<.<.<#.+.+<#<+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.#<..+.+<<#.#..<+#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t4777474t4777474t4777474t4777474t47774t777t4t7t777t4t7t777t4t7t777t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777477t7777477t7777477t7777477t7777477t7777477t77744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.<#<+<+...#<.<.<+<+.+.#<...<#<#<+<.<+.+.#<+.+.#<...<#<#<+<.<+.+.#+.#.#<.<<+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t774t7t7t774t7t7t774t7t7t774t7t7t774t7t474t7747474t7747474t7747474t7747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747t4t774t4t4t774t4t4t774t4t4t774t4t4t774t4t4t774t47t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+..<.<#<.<#.+<#..<#<.<#.#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<+<.<#<.<<.<+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t7t477t477t7t477t7t477t477t7t477t7t47777t47477t47477t477t47477t47477t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4477t4t477t4t477t477t4t477t4t477t477t4t477t4t477tt477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.+<#<#<.<#<.<.<#<+.#.#<+<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#..<+<+..<#<.#<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t47774t774t47774t47774t774t47774t47774t4t777t4t777t4t774t777t4t777t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77t77477t77477t774t77477t77477t774t77477t77477t774774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<....+<+.+<#.+..<.<+<.<+<#<#<...<#.+.+<#.+.+<.<+<#<#<..#<#..<#<+.+<.+<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t7t7t7t774t47774t7t7t7t774t47774t7t77474t777t4t774747474t777t4t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74744t4t77477t774t4t4t4t77477t774t4t4t4t77477t774t4tt7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<+<+.#.+.#<+.+<.<+<.<..#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+<#<..#<#.+.#.<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t7t474747477t774t7t474747477t774t7t47477t7t474t77477t7t7t7t474t77477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7777t4t774t477777777t4t774t477777777t4t774t4777747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<#.+<#<.<.<#<+<#.#.+<.<#.+<.<+..<#<.<.<#<#<+..<#.+<.<..+<+<..#<.<<#..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t477t774747474t7t477t774747474t7t477t77474t7t77477t474t7t7t7t77477t474t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai747477774t477t4t777777774t477t4t777777774t477t4t7777777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<...<+<+..<.<+.#<..#<.<+.#<#<.<.<#<..+<+.#<+...+<#<#<.<.<#<+.#<.<+<.<+.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47774t477t7t7t7t47774t477t7t7t7t47774t477t7t47477t4t777t474747477t4t777t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7tt4t477t77477t4t4t4t477t77477t4t4t4t477t77477t4t4t4t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<#<#..<#<+<.<.<#..<#.#.+<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+.#.+<+<.<+<.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t47774t477t47774t47774t477t47774t47774t47777t4t777t4t777t477t4t777t4t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t477477t77477t77477t477t77477t77477t477t77477t77477t477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#<#<..#<#..<#<#<+<#<+<+...+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+<+....<#..<#<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t774t7t774t774t7t774t7t774t774t7t774t7t774t4t77474t77474t774t77474t77474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774tt774t4t774t4t774t774t4t774t4t774t774t4t774t4t774t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.+<..+<+<..#<+.+..<+..<.<#<#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<.<#<#<+.#<+.+..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaati7t477t7t477t7t7t477t7t477t7t477t7t477t7t477t77477t47477t474777t4t477t4t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t74t477t4t477t4t477t4t477t4t477t4t4t477t4t477t4t4747777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#<+.#.#<+<..+.+<#.+<#<#<.<.<+..<+<.<#<.<+.#<.<#<..#<+.#<.+<#.#..<#..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747774t47774t4747774t47774t47774t47774t47774t477t4t777t4t777t4t7477t77477t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t4777t77477t77477t77477t77477t7747777t77477t77477t7t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<.<+<.<+<#<#<..#<....+<+<.<#<#.#.+.+<.<.<#.+.+<+<.<.<#...<+<+<#<+<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t774t4777474t47774t7t774t47774t7t774t47774t777t4t77474t7777t774t4t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777477477t774t4t77477t774t4t77477t7777477t774t4t7747474t77774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+..<.<+<.<..#<.<.<+<.<+<+.#..<#<#<.<+.+..<#<#<+.+.#<.<.<#<+#<.<.<+..<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t47477t774t7t7t774t7t47477t774t7t47477t774t7t474t77477t7t474t74t47777t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t7tt4t774t47777t4t774t47777t4t774t4t4t774t47777t4t7t777t4t47t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#<+<#.#.+<.<#.+<.<+<.<#.+<#<+...+<.<#<#<+.+..<#<.<#.+<+..<<.<#.+<..+<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77474t477t477t477t4777474t7t477t77474t477t47777t477t4t7t774777t4t777747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t477477t477t77774t477t4t7777477t477t477t477t77774t4747774t4t7t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#..<.#<.<+.#<#<.<.<#..<+<+...+<#<#<.<+...+<#<..+<+.#<.<#<..++<.<.<+<#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t477t7t774t774t774t774t7t7t47774t477t7t774t774t4t774t7747477t4t7477t4t4t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74774t774tt774t774t4t477t77477t4t4t774t774t774t774t4t477t7t7t4777774t774t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+<#.<#.#.+<+.+<#.+.#<#..<#<#<..+.+<.<#<#<..+<#<.<.<#.+.+<#<.#.+<#.#<.<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7774t477t7t7t7t7t7t7t7t7t47774t47774t477t7t7t7t77474747477t4t7777t77477t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47tt7t7t7t74t4t4t4t477t77477t77477t4t4t4t4t4t4t4t4t477t7747474t7t477777777774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<+.<#<+<+...+.#<+.+<#<..#<#<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<.#.#<+.#..<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t7t774t4747474747474747774t7t774t7t774t474747477t7t7t7t4t77474t74t4t7747774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7t77744747474777777777t774t4t774t4t7747777777777777777t774t4t7t77774t7t4t4t4t47t7t77t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.+<.+..<.<#<#<.<.<#<..+<+<..+<.<#<.<+<..+<.<.<#.+<#..<#<.<#.<+<.<.<+<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777t7t4777474747474747474t477t7t477t7t47774747474t7t7t7t777t474777t4t477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t4t477t7777777777777777477t4t477t4t477t7777777777777777477t4t4747777t474t4t4t4t4t4t4t4tt47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<.+<#<#<.<.<+..<+<.<#<.<+..<+<+..<#<.<.<#<#<.<.<#<+.#.#<+.<+.#<+.<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t47774t7t7t7t7t7t7t7t7t774t47774t47774t7t7t7t7t474747474t777t4t7477t77477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t77477t774t4t4t4t4t4t4t4t4t77477t77477t774t4t4t4t4t4t4t4t4t77477t7t7t474t77777777777777777774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<#.+#<....+<+<.<#<#.#.+.+<.<#<#..<#<+.+<#.+.+.+<#.+..<.<+<.<.+<.<.<##.+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7774t7t7t477t477t477t477t7t774t47774t7t7t477t47777t477t47474t7777t774t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t77477t774t4t477t477t477t477t4t4t77477t774t4t477t477t477t477t4t4t7747474t77777t477t477t477t47t7t74t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<#..#<<.<+<+.#..<#<#<.<+.+..<#<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<.#<+<.<.<<+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7744t7t4747774t774t774t774t47477t774t7t4747774t774t4t774t777t7t474t74t4777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai74t777t4t774t47777t774t774t774t7747777t4t774t47777t774t774t774t7747777t4t7t777t4t474t774t774t774t7474777744t7ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..<+<.+<.<#.+<#<+...+<.<#<#<+...+<+<..#<.<.<#<#<.<.<#<+<#.#.+<<..#<#.+.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4777t77474t7t477t7t7t477t77474t7t477t77474t7t477t77477t474t7t774777t4t777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t4t77774t477t4t77774t477t4t4t477t4t77774t477t4t77774t477t4t4t477t4t77774t4747774t4t777t4777777t47774t4t777t77t77475aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<+<#<...<+<+...+<#<#<.<+...+<#<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.##..<+<.<<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t477t7t47774t4747774t477t7t47774t477t7t47774t477t4t777t47477t4t7477t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4777477t4t477t77477t4t477t7747777t77477t4t477t77477t4t477t7747777t77477t4t477t7t7t47777t474t7t4t474t7t47777t4744t477t7t7itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<..+<#<#..<#<#<..+.+<.<#<#<..#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<<+<#.#.+.<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477774t47774t4777474t47774t47774t47774t47774t47774t777t4t777t4t7777t77477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t47t77477t77477t77477t77477t7777477t77477t77477t77477t77477t7777477t77477t7747474t7t474t7t474t4t7t474t7t474t7t7774t4777447t5aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+.#<#<..#<#<.<+.+.#.#<#<.<+<+....<#..<#<#<+..<#<#<+<#<+<+...<+.#.#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t74t7t774t7t774t7t7t774t7t774t7t774t7t774t7t774t7t474t77474t77474t74t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t47t7774t4t774t4t774t4t774t4t774t4t4t774t4t774t4t774t4t774t4t774t4t4t774t4t774t4t7t77774t77774t7777774t77774t777744t7t774t7t774t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#.+<#.+<..+<+<..+<.<#<.<+<..+<.<.<#<#<+.#<+.+..<#<+.+..<+..<.<#<.+<.<+<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t47777t47477t47477t474774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t477tt477t7t477t7t477t7t477t7t477t7t47t4t477t4t477t4t477t4t477t4t477t477t4t477t4t477t4t477t4t477t4t47t47477t47477t47477t47477t47477t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<.<#<.<+..<+.#<+.#<.<#<.<.<#<..+.+<#.+<#<#<..+<#<#<.<#<.<..+#<.<+<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t47774t47774t47774t47774t47774t47774t47774t47774t4t777t4t777t4t777t4tt7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt77477t774774t47774t47774t47774t47774t47777477t77477t77477t77477t77477t774t77477t77477t77477t77477t77477t7777t4t777t4t777t4t777t4t777t4t7777774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.+<#<#<..#<....+<#<....+<..+<+<#<<.<#.#.+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t774t47774t7t774t47774t7t774t47774t7t774t47774t7t77474t777t4t77474t777474iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77477t774t4tt7t774t47774t7t774t47774t7t774t47t774t4t77477t774t4t77477t774t4t4t4t77477t774t4t77477t774t4t7747t4t77474t777t4t77474t777t4t7747474t4777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.+.#<.<.<+<.<+<+.#<.<+<+.#<+.#.#<.+<..#.#<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait47477t774t7t47477t774t7t47477t774t7t47477t774t7t47477t7t474t77477t7t474tt77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t4t774t4777747477t774t7t47477t774t7t47477t7774t47777t4t774t47777t4t774t477777777t4t774t47777t4t774t47777t4t777477t7t474t77477t7t474t77477t7t7t774t7tt47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#<.<.<#<#<+...+<#.+<+..<#<.<.<#<.<#.+<.<+<.<#.+<+<.<#.+<#.+<.<#..#<+<+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77474t477t4777474t7t477t77474t477t4777474t7t477t77474t7t77477t474t7t777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777774t477t4t77777474t7t477t77474t477t4777474t7t47t4t7777477t477t77774t477t4t777777774t477t4t7777477t477t77774t47t474t7t777t477t4t7t77477t474t7t7t477t47777777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.<.<+.#<..+<#<#<.<.<#<..+<.<+.#<.<#<.<.<#..<+<+....<+<+..<+.#.#<++<#...#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t774t774t7t7t47774t477t7t774t774t7t7t47774t477t7t47477t4t777t47474t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t4t477t77477t4t47t7t47774t477t7t774t774t7t7t47777477t4t4t774t774t4t477t77477t4t4t4t477t77477t4t4t774t774t4t477t7777t47474t774t7747477t4t777t4747774t774tt4t4t7t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.+.+<#.+.#<#..<#<#<#..<#<.<.<+<.<..<+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t477t7t7t7t7t47774t47774t477t7t7t7t7t47774t47774t47777t4t777t4t777t474747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t7777477t77477t77477tt47774t47774t477t7t7t7t7t47774t47t77477t4t4t4t4t477t77477t77477t477t77477t77477t4t4t4t4t477t7747t4t777t47474747477t4t777t4t777t4t7t7t7t7477t77477t77t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+..<#<#<+<.<+.+.#<+.+.#<...<#<#<+.+.#<+.+<#<..#<#<#<..#<#<.<+<.<.#<.<+<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t47474747774t7t774t7t774t47474747774t7t774t7t774t4t77474t77474t777t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7777t4t4t774t4t774t4t774774t7t774t7t774t47474747774t7t7774t4t77477777777t774t4t774t4t774t774t4t774t4t77477777777t774t4t777474t777t7t7t7t4t77474t77474t7747474747t774t4t774t77477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<#<.<.<#<..+<+<....+<+<..+<#.#.+<<.<#..<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t774747474t477t7t477t7t47774747474t7t477t7t7t477t77477t4747477t474t7t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477747474744t477t4t4t477t4tt7t477t7t7t477t774747474t477t7t47t4t477t777777774t477t4t4t477t4t4t477t4t4t477t4t77777777477t4t47t47477t4t7t7t7t77477t4747477t47477777777477t4t47t47477t4t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<..+.+<#.#<.<#<.<.<#<.<+<..+.+<#<.<+..<+<.<#<.<+<+.#<+.#<+..<+.#+<.<<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t477t7t7t7t774t47774t47774t7t7t7t7t47774t4747774t477t4t777t7t4t777t4747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t7t7t7t7t77t7747777t7747747774t4747774t477t7t7t7t774t47777477t774t4t4t4t477t7747777t7747777t7747777t77477t4t4t4t4t77477t7777t4t77474747477t4t777t7t4t777tt4t4t4t4t77477t7777t4t7747474774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<+<#<#<...<#.+.+<#.+.+<.<+<#<#<..+<.<#<#.#.+.+<.<#.+<.<.<.<#<#.+<.#.+.<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t477t477t7t774t47774t7t7t477t47774t4777474t47774t777t4t7t777t4t777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477774t7t7t477t47777477t7777477t7774t4777474t47774t477t477t7t774t47t774t4t477t477t77477t7777477t7777477t7777477t77477t477t4t4t7747t4t7747477t477t4t777t4t7t777t4t7477t477t4t4t7747t4t7747477t4777t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<..#<.<.<+<#<+.+.#<+.+..<#.#<.<.<+..<#<#<.<+.+..<#<+..<.<+.#<#<+..#.#<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t7t774t774t47477t774t7t4747774t774t7t774t7t7t774t7t474t7747474t77474t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t774t7t4747774t774tt4t774t4t4t774t47t774t7t7t774t7t774t774t47477t7774t47777t774t774t4t774t4t4t774t4t4t774t4t4t774t4t774t7747777t4t777477t7t4t774t77474t7747474t7747t774t7747777t4t777477t7t4t774t744t74ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#..<#.+<.<+..<#<.<.<#<#<+..<#.+<.<#<+...+<.<#<#<+..<#<+<#.+<...<#<<+<..<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t477t7t477t77474t7t477t77474t7t477t7t477t477t477t47777t477t477t477t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7t477t77474t7t477t7477t477t477t477tt477t477t477t477t7t477t77474t7t47t4t77774t477t4t477t477t477t477t477t477t477t477t4t477t4t77774t47t474t7t77477t47477t477t477t477t44t477t4t77774t47t474t7t774777t4t7477t474iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<+<#<.<.<#<..+<+.#<+...+<#<#<.<.<#.+<#<#<.<+...+<#<#<...<+.#<+<#<..<+.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74774t774t47774t477t7t47774t477t7t47774t47774t774t774t774t4t774t774t774t777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t47774t477t7t47774t47t774t774t774t774774t774t774t774t47774t477t7t47777477t4t477t77477t774t774t774t774t774t774t774t77477t77477t4t477t7777t47477t4t777t4t774t774t774t7777t77477t4t477t7777t47477t4t74777t4t777t4774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+.#<..+.+<.<#<#<....+<#<#.+<.<..+<.+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt7t7t7t774t47774t47774t47774t47774t47774t7t7t7t7t7t7t7t77474747474747474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa444t7t7774t47774t47774t477744t4t4t4t4t4t4t4tt7t7t7t7t7t7t7t774t47774t47774t47t77477t77477t774t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t77477t77477t7747t4t777t4t777t4t7747474747474747477477t77477t7747t4t777t4t7777t77t777t4t7777t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+<.<+.+.#.#<#<.<+<+.#<#<.<.<.<+.##<+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7474747477t774t7t774t7t774t7t774t7t774t7t47474747474747477t7t7t7t7t7t7t7t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t777744t7t774t7t774t7t774t7t777777777777777747474747474747477t774t7t774t7t7774t4t774t4t774t477777777777777777777777777777777t4t774t4t774t4t777474t77474t77477t7t7t7t7t7t7t7tt4t774t4t774t4t777474t77474t74t4474t77474t74t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.+<#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<+<.<#<.<+<..+<.<#.+<..+<#.+<#.+<<..#.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474747474t7t477t7t477t7t477t7t477t7t477t7747474747474747474747474747474747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t477t7t477t7t477t7t477t7t477t774747474747474747474747474747474t7t477t7t477t7t47t4t477t4t477t4t777777777777777777777777777777774t477t4t477t4t47t47477t47477t474t7t7t7t7t7t7t7t7477t4t4777t7t477t477t7t47t4t477t77t474774774474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#<.<+..<+<.<#<.<+.#<.<#<..#<+.#<...<+<+..<+.#<+.#<.<#<.<+..<+<+..+<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t7t47774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774747774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47774t47774t47777477t77477t77477t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t477t77477t77477t7777t4t777t4t777t4747474747474747t77477t74t47774t774t47777477t7744t777t4tt7iiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<.<#<#.#.+.+<.<.<#.+.+<+<.<.<#.#<#..<#<#.+<.<.<#.+.+<.<#<#..<#<..++.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t477t47774t47774t7t774t47774t7t774t47774t477t477t477t477t477t477t477t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4t474t47774t7t774t47774t7t774t47774t477t477t477t477t477t477t477t47774t47774t7t774t47t774t4t77477t77477t477t477t477t477t477t477t477t77477t774t4t7747t4t77474t777t4t777t477t477t477t44t4t77477774t7t7t7t774t47t774t4t74744t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+....<#<#<.<+.+..<#<#<+.+.#<.<.<#<+<#<..#<#<+..<.<+<+.+..<#<#<..#<##<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t774t774t7t774t7t47477t774t7t47477t774t7t774t774t774t774t774t774t774t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4744t77777t774t7t47477t774t7t47477t774t7t774t774t774t774t774t774t774t774t7t774t7t47477t7774t47777t4t774t4t774t774t774t774t774t774t774t774t4t774t47777t4t777477t7t474t77474t774t774t774t777777t4t74t7t474747477t7774t477777t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<<+#<+...+<.<#<#<+.+..<#<.<#.+<+..<..+<+<...<#<+<#..<#<#<+...+<+<..<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai77t7t7t477t7t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t7t477t7t7t477ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t777tt474t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t7t477t7t7t477t7t477t4777474t7t47t4t7777477t477t4t477t4t4t477t4t4t477t4t4t477t4t477t477t77774t47t474t7t777t477t47477t4747477t47477774t4777t774747474t7t47t4t4t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<.+<#<#<.<+...+<#<..+<+.#<.<#<..+<+.#<.<+<#<...<+<+...+<#<+.#<.<++<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t4747774t47774t774t7t7t47774t477t7t774t774t47774t4747774t4747774t4747774t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77477t474777t774t774t7t7t47774t477t7t774t774t47774t4747774t4747774t4747774t47774t774t7t7t47777477t4t4t774t77477t7747777t7747777t7747777t77477t774t774t4t477t7777t47474t774t777t4t777t7t4t777tt4t477t74t477t7t7t7t477774777777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..#<..+.+<.<#<#<..+<#<.<.<#.+.+<#<#.+<+<.<..+<#<#..<#<#<..#.+<+<.<.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777474t47774t7t7t7t7t47774t47774t477t7t7t7t774t4777474t4777474t4777474t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t4t7tt4t7t7t7t7t7t47774t47774t477t7t7t7t774t4777474t4777474t4777474t47774t7t7t7t7t47774t47t77477t4t4t4t4t77477t7777477t7777477t7777477t774t4t4t4t477t7747t4t777t474747474t777t4t7t777t4t7477t77477774t477t47774t47t777iiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+.#<<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<.<+....<#<+.#<#<..#<#<.<+<+....<##.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t7t7t774t7t47474747774t7t774t7t774t474747477t774t7t7t774t7t7t774t7t7t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77774774747474747774t7t774t7t774t474747477t774t7t7t774t7t7t774t7t7t774t7t47474747774t7t7774t4t77477777777t4t774t4t4t774t4t4t774t4t4t774t477777777t774t4t777474t777t7t7t7t474t7747474t7747t774t4t74t7t774t774t7t7774t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#.++<.<#<.<+<..+<.<.<#.+<#..<#<.<#..<#<#<+.#.+<..+<+<..+<.<.<#<#<+.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4777t7t47774747474t477t7t477t7t47774747474t477t7t477t7t477t477t7t4t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47t477777474t477t7t477t7t47774747474t477t7t477t7t477t477t7t477t7t47774747474t477t7t47t4t477t77777777477t4t477t4t477t477t4t477t4t477t77777777477t4t47t47477t4t7t7t7t777t47477t47477t44t4777t7t7t477t7t7t4t47t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<..<+<+..<#<.<.<#<#<.<.<#<+.#.#<+.+<#<#<.<.<+..<+<+..<+.#.+<#<#<..<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t74t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t774t4777777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt4t47t7t774t47774t47774t7t7t7t7t774t47774t47774t774t47774t47774t7t7t7t7t774t47777477t774t4t4t4t4t77477t77477t774t77477t77477t774t4t4t4t4t77477t7777t4t77474747474t777t4t777t4t7777t74t4747774t474777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<.#<#..<#<+.+<#.+.+.+<#.+..<.<+<.<#<....+<+<.<#<#..<#<#.+<#<....+<.+.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t77477774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t7t774t4t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477tt477t7t774t47774t7t7t477t477t7t774t47774t7t7t7t774t47774t7t7t477t477t7t774t47t774t4t477t477t4t4t77477t774t4t4t4t77477t774t4t477t477t4t4t7747t4t7747477t477t47474t777t4t774747747777474t47774t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.#<.<<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<.<.<+<+.#..<#<#<..#<#<+..<.<+<+.##<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t4t74t7t4747774t774t47477t774t7t4747774t774t47477t774t7t474747477t777747iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t47477t774t7t4747774t774t47477t774t7t474747477t774t7t4747774t774t47477t7774t47777t774t7747777t4t774t477777777t4t774t47777t774t7747777t4t777477t7t4t774t777t7t474t77477t7tt4t74t7t7t774t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.+<#..+<+<..#<.<.<#<#<.<.<#<+<#.#.+<+<.<#.+<#<+...+<+<...<#<+<.<#.+<<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t4777t77474t7t477t77474t7t477t77474t7t477t77474t7t477t774747474t7t4t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4tt7t477t77474t7t477t77474t7t477t774747474t7t477t77474t7t477t77474t7t47t4t77774t477t4t77774t477t4t777777774t477t4t77774t477t4t77774t47t474t7t77477t474t7t77477t474t7t7477t4777t4t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.<+.<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.#..<+<+...+<#<#<..#<+<#<...<+<+..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t477t74t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t7t7t4777777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77747774t477t7t47774t477t7t47774t477t7t7t7t47774t477t7t47774t477t7t47777477t4t477t77477t4t477t77477t4t4t4t477t77477t4t477t77477t4t477t7777t47477t4t777t47477t4t777t4747t774t74t777ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.+<.#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<#<#..<#<#<..+.+<+<.<..+<#<#..<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t77477774t47774t47774t47774t47774t47774t47774t47774t47774t477t47774t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47774t47774t47774t47774t47774t477t47774t47774t47774t47774t47774t47t77477t77477t77477t77477t77477t477t77477t77477t77477t77477t7747t4t777t4t777t4t777t4t777t4t777t44t4t4t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+<<+....<#..<#<#<+..<#<#<+<#<+<+..<#<..#<#<.<+.+.#<.<.<+.#<#<..#+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t4t74t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t774t7t77774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t774t7t774t7t774t7t774t7t774t774t7t774t7t774t7t774t7t774t7t7774t4t774t4t774t4t774t4t774t4t774t774t4t774t4t774t4t774t4t774t4t777474t77474t77474t77474t77474t777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<<..#.<#<#<+.#<+.+..<#<+.+..<+..<.<#<..+<+<..+<.<#<.<#.+<#.+<..+<+<..+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47777t47777t47777t47777t47777t47777t47777t47777t77t7t477t7t477t7t7t47t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777777tt4747777t7t477t7t477t7t7t477t7t477t7t447777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777tt47474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#..<<..+.+<#.+<#<#<..+<#<#<.<#<.<..+<+.#<+.#<+..<+.#<+.#.#<+.#<.<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t4744t47774t47774t4747777477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t474777t4t4t47774t47774t4747774t47774t4777t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<+<#+<#<#<..#<....+<#<....+<..+<+<#<#.+<.<.<.<#<#.+<.<.<+<.<.<#.+.+<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t7774t7t774t4777474t47t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47t7777774t7t774t4777474t47774t7t774t4474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7tt4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<+..#<.<.<+<.<+<+.#<.<+<+.#<+.#.#<.<+..<.<+.#<#<+..<.<+<.<.<#<+.+.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t777t4t47774t777t4t47774t777t4t47774t777t4t477744t7t47477t774t7t7t7774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4474t4t7t47477t774t7t7t774t7t47477t77t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t477747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+<..<#.+<.<+<.<#.+<+<.<#.+<#.+<.<#..<#<+<#.+<...<#<+<#.#.+<+..<#<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4747774t4t7t477t474t4t777t47774t4t7t477t474t4t777t77t77474t477t477t477t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4774t4tt477t477t477t4777474t7t447774t4t7t477t474t4t777t47774t4t7t477t474t4t777t47774t4t7t477t474t4t777t47774t4t7t477t474t4t777t47774t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<.<+<<#<.<.<#..<+<+....<+<+..<+.#.#<+<#<...<+.#<+<#<..#<.<+.#<..+<+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t4777774t774t77777t474t7t4777774t774t77777t4744t477t7t774t774t774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477777774t774t774t774t7t7t4777t7t4777774t774t77777t474t7t4777774t774t77777t474t7t4777774t774t77777t474t7t4777774t774t77777t474t7t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.+<#.#+.+<#.+.#<#..<#<#<#..<#<.<.<+<.<..+<#<#.+<.<..+<.<#.#.+<+<#<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747474t7t47777777777t474t7t474t7t47777777777t474t7t7774t477t7t7t7t7t7t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt7t7t7t7t7t7t7t7t47774t4474t7t47777777777t474t7t474t7t47777777777t474t7t474t7t47777777777t474t7t474t7t47777777777t474t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#<+.#..+.#<+.+<#<..#<#<#<..#<#<.<+<.<.<+.#<#<.<.<.<+.#<#<+<+...#<.<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t7t77774t7t4t4t4t474t77774t77774t7t4t4t4t474t777744t7t774t474747474747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747474747474747774t7t77t77774t7t4t4t4t474t77774t77774t7t4t4t4t474t77774t77774t7t4t4t4t474t77774t77774t7t4t4t4t474t77774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<.<+#<.<.<#<..+<+<....+<+<..+<#.#.+<#.+<..+<#.+<#.+<+..<.<#<.<#.+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t447777t474t4t4t4t777t4777777t47774t4t4t4t7t47777t77t7t477747474744t4t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7477774t4tt477t7t447777t474t4t4t4t777t4777777t47774t4t4t4t7t47777t47777t474t4t4t4t777t4777777t4777t7t7t7t77tt47t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<..#<.<<.<+..<+<.<#<.<+<+.#<+.#<+..<+.#<+.#.#<+..<+<+..<#<.<..+<+.#<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74777t7t474t777777777t474t7t4t474t7t47777777774t7t4744t47774t7t7t7t7t77777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt4t47777774t4777t7t474t777777777t474t7t4t474t7t47777777774t7t474t7t474t777777777t474t7t4t474t7t44747474774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+<.<#+<.<#<#.#.+.+<.<#.+<.<.<.<#<#.+<.<.<+<.<#<#..<#<..+<+<#<#.+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t4474t77777t477t474t7t474t4t7t474t7t477t4777774t7t7774t7t7t477t4777t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t47t7t774t4474t77777t477t474t7t474t4t7t474t7t477t4777774t7t474t77777t477t474t7t474t4t7t474t77t477t47t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+<....<#<#<.<+.+..<#<+..<.<+.#<#<+..<.<+<.<.<#<..#<#<+.#.#<.<+..<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47t77t777t4t474t774t77774t7777774t77774t774t7t4t477744t7t4747774t774t74t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t747477t77t777t4t474t774t77774t7777774t77774t774t7t4t47774t777t4t474t774t77774t7777774t7774t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#...#<+#<+...+<.<#<#<+..<#<+<#.+<...<#<+<#.#.+<..+<+<..#.+<.<#..<#<.<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7t447774t4t777t47777t477t477t477t47777t47774t4t777t77t77474t7t477t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774tt7t447774t4t777t47777t477t477t477t47777t47774t4t777t47774t4t777t47777t477t477t477t477477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+<#..+<#<#<.<+...+<#<#<...<+.#<+<#<..#<.<+.#<+.#<.<+<+.#.#<+<#<.<#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4777t7t47777t474t7t474t774t774t774t7t474t7t47777t4744t477t7t47774t47t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474777t7t47777t474t7t474t774t774t774t7t474t7t47777t474t7t47777t474t7t474t774t774t774t77ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#.#..<+#<..+.+<.<#<#<....+<#<#.+<.<..+<.<#.#.+<#.+<+<.<.<.<+<.<..+++.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7774t4474t7t474t7t474t77777777777777774t7t474t7t474t7t7774t47774t477744t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4474t7t474t7t474t77777777777777774t7t474t7t474t7t474t7t474t7t474t7777777777777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#.#<.<<.<+.+.#.#<#<.<+<+.#<#<.<.<.<+.#<#<+<+..<+....<#<.<+<.<.<+.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7744t7t77t77774t77774t777t4t4t4t4t4t4t4t47774t77774t777744t7t774t7t774t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai77774t77774t777t4t4t4t4t4t4t4t47774t77774t77774t77774t77774t777t4t4t4t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<+<.<#+<.<#<.<+<..+<.<#.+<..+<#.+<#.+<+..<.<#<.<#<#<+.+<#.#.+<#.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t47777t47777t47777t47774t4t4t4t4t4t4t4t7t47777t47777t477t47777t77t7t4777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t447777t474t4t4t4t4t4t4t4t777t47777t47777t47777t47777t477774747474t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..#<#<....<+<+..<+.#<+.#<.<#<.<+..<+<+..#..<.<+<.<+<+<#...<+<+..<+.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t7t474t7t474t7t474t7t4777777777777777774t7t474t7t474t774t7t4744t47774t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t474t77777777777777777t474t7t474t7t474t7t474t7t474t7t47t7t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<+<..+<+#<#..<#<#.+<.<.<#.+.+<.<#<#..<#<<+<#<#..<#....<+#<#..<#<#.+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77774t7t474t77774t7t474t7t477t477t477t4777774t7t474t777777774t7t7774t7t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777777t477t477t477t474t7t474t77774t7t474t77774t7t474tt477t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<+..<+<<#<..#<#<+..<.<+<+.+..<#<#<..#<#.<+.+.#<+.#<#<.<<#<..#<#<+..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t47774t777t4t47774t77774t774t774t774t7t4t47774t777t4t4t4t477744t7t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t474t774t774t774t77774t777t4t47774t777t4t47774t777774t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<#<#....+<+<...<#<+<#..<#<#<+...+<+<...+<.<#.+<#.+<.<#..+<+<...<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t4t777t47774t4t7t477t47777t4777777t47774t4t777t47774t4t4t4t777t77t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7777t4777777t47777t477t474t4t777t47774t4t7t477t47t7t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.#<.<+.#<<+.#<.<+<#<...<+<+...+<#<+.#<.<+#<+.+.#<..#<#<..<+.#<.<+.++<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77777t474t7t4777774t774t7t474t7t4t474t7t47777t474t7t477777777t4744t477t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747t474t7t4t474t7t474t774t77777t474t7t4777774t774t747774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<.<#<#.+#.+<+<.<..+<#<#..<#<#<..#.+<+<.<<.<#<.<.<+<..+<+#.+<+<.<<<...#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t474t7t474t7t47777777774t7t474t4t7t474t7t474t7t474t7t477t474t7t7774t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t44t7t474t4t7t474t777777777t474t7t474t7t477777777774t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<....#<<+....<#<+.#<#<..#<#<.<+<+....<#.<.<#<.<+<+..<+<<+....<#+..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t474t77774t77774t7t4t4t4t47774t7777774t77774t77774t77774t774t777744t7t77iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777774t7777774t777t4t4t4t474t77774t77774t7t4t4t4t47t774t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#.#<+<+<..<#<#<+.#.+<..+<+<..+<.<.<#<#<+.<#.+.+<#..<#<#...<#<#<+.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t7t47777t47777t474t4t4t4t7t47777t47777t47777t4777777t4777777t4777777t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747t47777t47777t474t4t4t4t7t47777t47777t474t4t4t4tt477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.<..+.+<#.+<#<#<.<.<+..<+<+..<+.#.+<#<#<.+.#<..#<+.#<+.#<#..<.<+<.<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777774t7t474t7t474t77777777774t7t474t7t474t7t474t7t4t474t7t4t474t7t4t4744taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t74t7t474t7t474t77777777774t7t474t7t474t777777777774t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<#<#<..#<....+<+<.<#<#..<#<#.+<#<....+<<#.+<+<.<.<.<#.+<+<#<#...+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t4777774t7t474t77777t477t4777774t7t474t77774t7t474t4t7t474t4t7t474t4t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777774t7t474t77777t477t4777774t7t474t77777t477t47t7t74t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<++.#<.<.<+<.<+<+.#..<#<#<..#<#<+..<.<+<+.#..#<+<+.#<.<..#<.<+.+.#<#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t7t4t47774t777t4t474t774t7t4t47774t777t4t47774t7777774t7777774t7777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t47774t777t4t474t774t7t4t47774t777t4t474t774t7474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<.<#.+<.<+<.<#.+<#<+...+<+<...<#<+<.<#.+<<+<...<#.+<#<+<..+<.<#.+<..#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaati447774t4t777t47774t4t777t47774t4t777t47774t4t7t477t477t477t477t477t477tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4t777t47774t4t777t47774t4t777t47774t4t777t47774t4t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#<#<.<.<#..<+<+...+<#<#<..#<+<#<...<+<+...<+<#<+.#<...<+<#<+.+.#<<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t7t47777t474t7t47777t474t7t47777t474t7t4777774t774t774t774t774t774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t474t7t47777t474t7t47777t474t7t47777t474t7t47777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..+.+<#.+.#<#..<#<#<..+.+<+<.<..+<#<#..<#<<#..<.<#.+<+<#..<.<#<.<.++<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4474t7t474t7t474t7t474t7t474t7t474t7t474t7t4777777777777777777777777777iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.+.#<+.+<#<..#<#<.<+.+.#<.<.<+.#<#<..#<#+.#<.<.<.<+<+.#<.<.<#<.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77t77774t77774t77774t77774t77774t77774t77774t7t4t4t4t4t4t4t4t4t4t4t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t77774t77774t77774t77774t77774t77774t77774t77774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++<.<#<.<.<#<..+<+<..+<.<#<.<#.+<#.+<..+<+<..<#.+<#.+<#..<#.+<#.+.+<#.+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t47777t47777t47777t47777t47777t47777t47777t477777777777777777t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4t4747777t47777t47777t47777tt47477t47477t4747777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#<.<+..<+.#<+.#<.<#<.<.<#<.<+..<+<.<#<.<+..#<#<..#<.<+<.<<.<#<.<+..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t4t4t4t4t4t4t4t4474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747477t7t7t474t7t474t7t474t7t474777t4t777t4t777t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.+.+<.<#<#.+<.<.<#.+.+<#.+.+<.<#<#.#.+.+<.<<+<..+<+<.<#.#.+#.+.+<.<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t7t474t77774t7t474t77774t7t474t77774t7t474t7777477t477t477t477t77t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7747474t77774t7t474t77774t7tt4t77474t777t4t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.+..<#<#<.<.<.<#<+.+.#<+.+..<#<#<.<+.+..<#+<+..<+<+<..#.#<<+.+..<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait77774t777t4t47774t777t4t47774t777t4t47774t777t4t4t774t774t774t7744t774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t7t777t4t47774t777t4t4777477477t7t474t77477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<#<+...+<#.+<+..<#<.<.<#<#<+...+<.<#<#<+...<#<#...#<+<+<..<#<#<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77t477t474t4t777t47774t4t7t477t474t4t777t47774t4t4t477t4t4t477t4t7477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t4747774t4t7t477t474t4t777tt474t7t777t477t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+..+<#<#<.<.<#<..+<.<+.#<..+<#<#<.<+...+<##<.<+.#<+<#...#<<+...+<#.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74774t774t77777t474t7t4777774t774t77777t474t7t4777777t7747777t774777t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777t7t7t4777774t774t77777t474777t47474t774t77t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.#<..+.+<#.+.+<#<+<.<.<#.#<..+.+<.<#<#<..<.<#<#.+..<+<+<..<#<#<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt4777777777t474t7t474t7t47777777777t474t7t474t7t4777477t7777477t77t777t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477747474t7t47777777777t474t7tt4t777t474747474477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<++<.<+.+.#<+.+.#<...<#<#<+<.<+.+.#.#<#<.<++<....#<#<.<+<+..#<#<.<+++.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t4t4t4t474t77774t77774t7t4t4t4t474t77774t77774t7t4t774t4t4t774t4474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t7t77774t7t4t4t4t474t7777477474t777t7t7t7tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<+<.<#<.<.<#<.<#.#<+.+..<+<.<#<.<+<..+<.<.#<+<+<.<.<#..<#+<..+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4744t4t4t4t7t47777t47777t474t4t4t4t777t4777777t4777477t4t477t4t477t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74777777t47774t4t4t4t7t47777tt47477t4t7t7t7t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<#.#<.<#<.<.<#<.<+<..+.+<#..<+<+..<#<.<.<#.<+<+<#.+.#<..#<<+..<+.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777t7777777774t7t474t7t474t777777777t474t7t4t474t7t4t77477t77477t7744t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t4t474t7t47777777774t7t474777t4t774747474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<...<#.+.+<#.+.+<.<+<#<#<..#<#..<#<+.+<#.+.<#....<+<#.+<+<..<#<#.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t77t477t4777774t7t474t77777t477t474t7t474t4t7t474t4t4t77477t774t4t747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t4t7t474t7t477t4777774t7tt4t7747477t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+#<.<+<#<+.+.#<+.+..<#.#<.<.<+<#<..#<#.+.#<+.++.#<#<.<..#<+<+..#<#<+..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774774t774t7t4t47774t777t4t474t774t77774t7777774t7777777t4t774t477777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7777774t77774t774t7t4t4777477477t7t4t774t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<.<+..<#<.<.<#<#<+..<#.+<.<..+<+<..#<.<.<#<<#.+<.<#<+<...<#+<...<#<.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t4777t47774t4t777t47774t4t777t47777t477t477t477t4777774t477t4t777774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477t477t47777t47774t4t777tt474t7t77477t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<..+<+.#<+...+<#<#<.<.<#<+.#<.<+<.<+.#<...#<#<...<+<#<+..#<++<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t77t474t7t47777t474t7t47777t474t7t474t774t774t774t7t4t477t77477t4t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774t774t7t474t7t47777t474777t47477t4t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+.+<#<.<.<.<#<#<..+.+<#.+.#.+<+<.<+<.<.<#.<+<..+<+<#..<.<#+<.<..+<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747474744t7t474t7t474t7t474t7t474t7t474t7777777777777777477t77477t77477ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777777777774t7t474t7t474t7tt4t777t4t777t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.+.#<.<.<+.#<#<.<+.+.#<+.+<+....<#..<#<#<++<+..<+<+.#<.<.<<.<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t7774t77774t77774t77774t77774t777t4t4t4t4t4t4t4t4t774t4t774t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t4t4t47774t77774t7777477474t77474t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<.<#.+<#.+<..+<.<#<.<.<#<.<#<#<+.#<+.+..<..<#<#..<#.+<#.+#.+<#..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t4t4t777t47777t47777t47777t47777t47774t4t4t4t4t4t4t4t4t477t4t477t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777777777777t47777t47777t77t7t477t7t4477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#<+.#<..#<<.<#<.<+..<+<+..<..+.+<#.+<#<#<.#<.<+<.<#<..#<.<+.#<..#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4477777777t474t7t474t7t474t7t474t7t474t7t4777777777777777777t77477t774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t4t4t4t474t7t474t7t4744t47774t4777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<.<#.+<+<.#.+.+<.<#<#..<#<+<#<#<..#<....+<<.<#.#.+.+<+<.<#<#.+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t477t474t7t474t77774t7t474t77774t7t474t7t477t477t477t4777477t774t4t747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t477t4t7t474t77774t7t7774t7t774t447taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<.<..#<+<+.<+.+..<#<#<..#<#.#<.<.<+<.<+<+.#+<..#.#<.<+<+<....#<+<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7474t774t77774t777t4t47774t777t4t47774t77774t774t774t774t7t4t774t477777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t7747774t777t4t477744t7t47477t77t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<#<+<...<#.<#<#<+...+<+<...<#.+<.<+<.<#.+<.#<+<+<.<#...#<+<+<...<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t777t47777t477t474t4t777t47774t4t7t477t47777t4777777t4777477t477t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t477t4t7t477t474t4t777t77t77474t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.<+..<+<#<+.<+...+<#<+.#<.<+<#<.<.<#..<+<+..+<#...#<.<+<+<#..+<##<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t474t7t474t774t77777t474t7t4777774t774t7t474t7t4t474t7t4t774t774t4t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7747774t774t77777t4744t477t7t774t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+.+<.<#..<.<#.<#<#<..#.+<+<.<+.+<#.+.#<#..<#<..<+<+<.<#.#..<+#<..<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t4t7t474t777777777t474t7t474t7t47777777774t7t474t4t7t474t4t4t4t4t477iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477t77777777777t474t7t7774t477t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<+<+.#<.<.<.#<#<.<+<+....<#.+.#<+.+<#<..#<##<.<+<+.+.#.#<.<<.<+.+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7777774t777t4t4t4t474t77774t77774t7t4t4t4t47774t7777774t77777777777t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t4t4t4t4t474t777744t7t774t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..#<#.+<#.++<..+<.<.<#<#<+.#<.<.<#<..+<+<..<.<#..<#<.<+<.<#+<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47747747777t474t4t4t4t7t47777t47777t474t4t4t4t7t47777t47777t474t4t4t4t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t477t4t4t4t4t7t47777t77t7t4777474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<+<.<+.#<+.<+..<+.#.+<#<#<.<.<+..<+<.<#<.<++<.<.<+<..#<#<....<+<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4tt7t474t77777777774t7t474t7t474t77777777774t7t474t7t474t777777777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7747777777774t7t4744t47774t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<#...+<.<.<#.<#<#.+<#<....+<+<.<#<#.#.+.+<.<.#.+<#.#<+<..+<+#<#..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t777474t77777t477t4777774t7t474t77777t477t4777774t7t474t77777t477t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744t4t7t477t4777774t7t7774t7t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.+.#<#<+<.<.<.#<#<+..<.<+<+.#..<#<#<.<+.+..<##.#<+.#.+<+..<+<<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4474tt777t4t474t774t7t4t47774t777t4t474t774t7t4t47774t777t4t474t774t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777774t774t7t4t477744t7t47477774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#.+<..#<#.++<...<#<+<.<#.+<#<+...+<.<#<#<+.<+<.<.<+..<#<#....+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7747747774t4t777t47774t4t777t47774t4t777t47774t4t777t47774t4t777t77t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t777t47774t4t777t77t77474t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<#..<+<.<.#<+<#<...<+<+...+<#<#<.<+...+<#.<+.#<.<#<.<+.#<<+.#<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47477t4tt7t47777t474t7t47777t474t7t47777t474t7t47777t474t7t47777t4744t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777t474t7t47777t4744t477t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<.<+<#.#.++<.<..+<#<#..<#<#<..+.+<.<#<#<...+<.<.<#<.<#<#.+#.+<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t777474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t474t7t474t7t474t7t7774t47774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#<.<.<+.#.#<<.<.<+.#<#<..#<#<.<+.+.#.#<#<.<+#<+<+<..+<....#<<+....<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t77474tt77774t77774t77774t77774t77774t77774t77774t77774t77774t777744taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77774t77774t777744t7t774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.+<#.+<.<+<.#.+<#.+<..+<+<..+<.<#<.<+<..+<.<<..#.#<+.#<+<+<..<#<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47477t47477t47477t47477t47477t47477t47477t47477t47477t47477t474777t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t47477t47477t47477t47477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..<+.#<+.#<.<#<.<.<#<.<+..<+.#<+.#<.<#<.<.<#.<+<+<#.+<#.#..<<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4t7477iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t777t4t777t4t777t4t777t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<<+#.+<.<.<#.+.+<#.+.+<.<#<#.+<.<.<#.+.+<#.+.<#....<+..<+<+<#..++.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t777t4t77474t777t4t77474t777t4t77474t777t4t77474t777t4t77474t7777t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t77474t777t4t77474t77774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<#<.<.<.<#<+.+.#<+.+..<#<#<.<.<.<#<+.+.#<+.++.#<#<.<#<.<.<+.<+.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t474t77477t7t474t77477t7t474t77477t7t474t77477t7t474t77477t7t474t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t77477t7t474t77477t7t474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..+<#.+<+..<#<.<.<#<#<+...+<#.+<+..<#<.<.<#<<#.+<.<#<.<#.+<.#.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t777t477t4t7t77477t474t7t777t477t4t7t77477t474t7t777t477t4t7t77477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t474t7t777t477t4t7t774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#<#<.<.<#<..+<.<+.#<..+<#<#<.<.<#<..+<.<+.#<...#<#<..+<.<.<+<<+.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747474t774t7747477t4t777t47474t774t7747477t4t777t47474t774t7747477t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777t47474t774t7747477t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+.+<#.+.+<#<+<.<.<#.#<..+.+<#.+.+<#<+<.<.<#.<+<..+<+.#.+<#.#.<.<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai777t47474747477t4t777t4t777t47474747477t4t777t4t777t47474747477t4t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t4t777t47474747477t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.+.#<+.+.#<...<#<#<+<.<+.+.#<+.+.#<...<#<#<++<+..<+<#.#<+.#.<.<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t777t7t7t7t4t77474t77474t777t7t7t7t4t77474t77474t777t7t7t7t4t77474ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777474t777t7t7t7t4t77474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#<.<.<#<.<#.#<+.+..<+<.<#<.<.<#<.<#.#<+.+..<..<#<#..<+<.<.<++<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t474t7t7t7t777t47477t47477t4t7t7t7t77477t4747477t4747777777777t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47477t47474747474777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<.<.<#<+.#.#<+<..+.+<#.#<.<#<.<.<#<.<+<..+.+<##<.<+<.<#<..#<.<.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t777t474747474t777t4t777t4t77474747477t4t777t7t4t777tt4t4t4t44t777ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t777t7t7t7t7t4t747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<#.+..<.<+<.<+<#<#<...<#.+.+<#.+.+<.<+<#<#<..<.<#.#.+.+<+<.<#.<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t4t777t477t47474t777t4t7747477t477t4t777t4t7t777t4t7477t477t7474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4747474t477t477t7777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<+<+.+<.<+<.<..#<.<.<+<#<+.+.#<+.+..<#.#<.<.<++<..#.#<.<+<+<..<#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t77474t774t777t7t474t77477t7t4t774t77474t7747474t7747t774t7747t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7t7t774t774t474t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<..<#<+<#.#.+<.<#.+<.<+..<#<.<.<#<#<+..<#.+<.<.#<+<+<.<#...#<++..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t477t47477t474t7t77477t474t7t77477t47477t477t477t477t44t477t4t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77474t7t477t777t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++<+.#<..#<.<+.#<#<.<.<#<..+<+.#<+...+<#<#<.<.<#+<#...#<.<+<+<#.#..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744t774t777t4t777t47477t4t777t47477t4t777t4t774t774t774t7777t77477t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t7t47774t474t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<.<#..<#.#.+<+.+<#.+.+<#<.<.<.<#<#<..+.+<#.+...<+<+<.<#.#..<+<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t74747474t777t4t777t4t777t4t777t4t777t4t7747474747474747477477t7747tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47774t4777474747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#<#<+<#<+<+...+.#<+.+.#<.<.<+.#<#<.<+.+.#<+.+#<.<+<+.+.#.#<.<.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t7t7t7t474t77474t77474t77474t77474t77477t7t7t7t7t7t7t7tt4t774t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774t7t774t7t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<++.+..<+..<.<#<#<.<.<#<.<#.+<#.+<..+<.<#<.<.<#<<.<#..<#<.<+<.<#.+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777777777777t47477t47477t477t47477t47477t474747474747474744t4747777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t77t7t47774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<+<#.+<#.#..<<.<+..<+<.<#<.<+.#<.<#<..#<+.#<.+<.<.<+<.<+.#<+..<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t4t4t4t44t777t4t777t4t774t777t4t777t4t777t7t7t7t7t7t7t7t77t7t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4744t47774t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#....<+..<+<+<#+<.<#<#.#.+.+<.<.<#.+.+<+<.<.<#..#.+<#.#.+<.<.<#<#.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t477t477t7474t777t4t774747474t777t4t77474t477t477t477t4777747477ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t7774t7t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<#<.<#<.<.<+...<#<#<.<+.+..<#<#<+.+.#<.<.<#<+#.#<+.#.#<+<.<.<+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t774t7747t7t474t77477t7t7t7t474t77477t7t774t774t774t774tt4t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777744t7t4747774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++.+<.<#<.<#.+<.#<+...+<.<#<#<+.+..<#<.<#.+<+..<<+<.<.<+<..#<#.+<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4t4t477t4tt7t77477t474t7t7t7t77477t474t7t7t7t477t7t7t477t7477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747777t77474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.#<#<..+<.<.<+<.+<#<#<.<+...+<#<..+<+.#<.<#<..+.<+.#<.<#..<+<.<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74747777t7747747477t4t777t474747477t4t777t474747774t4747774t47t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4t477t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<..+<+.#.+<#.##<..+.+<.<#<#<..+<#<.<.<#.+.+<#<.+<.<.<#<+<#.#.++<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t7t7777477t7777t4t777t4t777t477t4t777t4t777t474t4777474t477744t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777774t4774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<.<+<#.#<+.#.<.<+.+.#.#<#<.<+.#<.<.<+<+.+.#<.#<+<+<...<+.#.#<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777474t4t4t774t44t77474t77474t774t77474t77474t777t774t7t7t774t7t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t7t774t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<#..<+<.<.<++<.<#<.<+<..+<.<.<#.+<#..<#<.<#.<..#.#<+.+<.<+<..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t47777t7t4t477t7477t4747477t4747477t4747477t474t477t7t477t7t4777474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4747777t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<..#<#<..#<.<..<+<+..<#<.<.<#<#<.<.<#<+.#.#<++<#.#..<#<.<+<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t7t4747477t7747t4t777t7t4t777t7t4t777t7t4t777t774t47774t47774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4t4t4774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<+<..+<+<.<##<#..<#<+.+<#.+.+.+<#.+..<.<+<.<..<+<+<#<.<#.#.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777774t7t7t774t4tt777t4t7t777t4t7t777t4t7t777t4t7t7t774t47774t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t777777474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#<+<+..<+<+<..<#<..#<#.+.#<+.+.+.#<+.+<.<+<.<.#<.<.<+.+<..#.#<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74tt4t4777474t47777474t7747474t7747474t7747474t774747477t774t7t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t4t7ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..#..<#<#...#<+..+<+<..#<.<.<#<#<.<.<#<+<#.#.+<<.<#.+<..#<+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t4t777t7t4t777777t477t477t477t477t477t477t477t47474t7t477t774744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#<+..<+<+<#.<+.#<.<+<.<+.#<.<.<+.#<..#<.<+.#+<.<.<+<+<#...#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7477777t4747477t4t44t774t774t774t774t774t774t774t777t7t47774t477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4t4t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..<.<#<#.#..<+#.+<+<.<+<.<.<#.+<.<.<#..<#.#.+<.#.+<#.#..<+<+<.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4474t7t474t7t7t77477t74747474747474747474747474747474t47774t47774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#<.<.<+.#.#<.<<+....<#..<#<#<+..<#<#<+<#<+<+..#.#<+.#.#<.<+<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77774t7777474t4t7747t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t774t7t774t7t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.+<#.+<.<+<.<#.<#<#<+.#<+.+..<#<+.+..<+..<.<#<<+<.<.<+<.<#..<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4t477t4t477t4t477t77777777777777777777777777777777t7t477t7t4477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.#<+.#.<+<.<+..+<#<#<.<#<.<..+<#<.<..+<..+.+<#.<+.#<+..<+<.<+.#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7477t77477t77477t774t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t447774t4777t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<.<<#.#.+<.#<....+<..+<+<#<..+<+<#<+<#<#<...+<.<.<#<#.#.+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t774t4t77477t774t4t477t477t477t477t477t477t477t477t74t47774t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..<.<++.#.#<+<<.<+<+.#<+.#.#<.<+.#.#<..#<.<.<+#<+<.<.<+.#.#<+<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t74t47777t4t774t47777t774t774t774t774t774t774t774t7747t774t7t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<++<#.<.<+<..#+<.<#.+<#.+<.<#.#.+<.<#..<#.+<.<<..#<#.+<.<+<..#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t477t77774t477t4t77774t477t4t4t477t4t4t477t4t4t477t4tt477t4774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<...<++.#<#..<..<+<+..<+.#.#<+<+.#.#<+<#<.<.<##..<+<.<+.#<#..<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t774t774t4t477t77477t4t477t7747777t7747777t7747777t77477774t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#<#.<.<.<+<##<#..<#<.<.<+<.<.<.<+<.<+.+<#.+.<+<#.#.+<.<.<+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat44t4t4t4t477t77477t77477t77477t7777477t7777477t7777477t77t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<#<.#<.<.<+.<#<..#<#<.<+<.<.<.<+<.<..+.#<+.+.<+.#.#<#<.<.<+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777777777t774t4t774t4t774t4t774t4t4t774t4t4t774t4t4t774t447474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<..+<.+<#.+<...+<+<..+<#.#.+<+<#.#.+<#<.<.<#<.+<.<+<..+<#.+<.+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777777774t477t4t4t477t4t477t4t477t4t477t477t4t477t4t477t74744ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<+<.<.<+<<+.#<+.#<+..<+.#.#<.<#<..#<+.#<.#<+.+.#<+<.<.<+<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77t4t4t4t477t7747777t77477t77477t77477t774t77477t77477t7747t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<..#.+<#.##.+<.<.<.<#<#.+<.<#.+.+<+<.<.<#.<.<#<.<..#.+<#.#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7474477t477t77477t7777477t774t4t77477t774t4t4t4t77477t774t4tt4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#<.<#.#<+.#.<+..<.<+.#<#<+..<#<+.+.#<.<.<#<+.<.<#<.<#.#<+.#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7tt774t774t4t774t4t4t774t47777t4t774t477777777t4t774t47777774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.+<#<+<.<.<+.<#<+<#.+<...<#<+..<#<.<#.+<+..<<#.+.+<#<+<.<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777774t477t4t477t477t477t477t77774t477t4t777777774t477t4t7777t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+.<+..<+.#<.<<#<...<+.#<+<#<.<..+<+.#<.<#<..++.#<.<+..<+.#<.<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4t4t477t77477t774t774t774t774t4t477t77477t4t4t4t477t77477t4t4477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.+<..+<.<.<#..+<#<#.+<.<..+<+<#<.<.<#.+.+<#<<#.+.+<..+<.<.<#+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t77477t774t4t4t4t4t4t4t4t477t77477t77477t477t77477t77477tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<+<#<+<+<..<+.#<#<.<.<.<+.#.#<.<.<+<+.+.#<...#<#<+<#<+<+<..<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t774t4t774t47777777777777777t774t4t774t4t774t774t4t774t4t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<..#<..#.#<+#.+<..+<#.+<#.+<.<#.+<#..<#<.<#.<+<.<..#<..#.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t477t4t477t4t77777777777777774t477t4t477t4t4747777t47777tt47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<..+<..+.+<#<+.#.#<+.#<.<#<.<+..<+.#<+.#.#<++<#.#..<#..<.<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7477t77477t77477t4t4t4t4t4t4t4t477t77477t77477t7t7t474t7t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<+<#<+<#<#<...<.<+<.<.<#.+.+<.<#<#.+<.<.<+<.<..<+<+<#<+<#<#...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t774t4t77477t77477t477t477t477t77477t774t4t7747474t77774t7tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#.#<..#<.<.<+<.<+<.<.<#<+.+.#.#<#<+..<.<+<.<.#<.<.<+..<+.+.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t47777t4t774t4t774t774t774t774t4t774t47777t4t7t777t4t4777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.<#..<#.+<.<+<#.#.+<+..<#<.<+<...<#<+<#.#.+<<.<#.+<..+<.<#.+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477t4t7777477t477t4t477t4t4t477t4t477t477t77774t4747774t4t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..#<+<#<.<.<#.#<.<+.#<..+<+.#.#<+<#<..#<.<+.#+<.<.<+<#<+.+.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t77477t4t4t774t77477t7747777t77477t774t774t4t477t7t7t477777474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<+.+<#.+..<#.#.+<+<#<.<.<+<.<..+<.<#.#.+<.#.+<#.#<.<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t77477t4t4t4t4t77477t7777477t774t4t4t4t477t7747474t7t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<..+.#<+.+<#<+<+...#<.<.<+<.<.<+.#<#<+<+..#.#<+.#..<.<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t4t774t4t77477777777t4t774t4t4t774t477777777t774t4t7t77774t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<#.+<#<.<.<#<+..<.<#<.<#.+<#.#.+<#.+<+..<.<#<<+<.<.<+<#.+.+<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t7t4t477t77777777477t4t477t4t477t77777777477t4t47t47477477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<..#<+.#<.<#<.<..+<+.#<+.#.#<+.#<.<#<.<..+.<+.#<+..<+<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4747477t774t4t4t4t4t77477t77477t774t4t4t4t4t77477t7777t4tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.+<+<.<.<#...+<+<#<#.+<.<.<+<.<.<#...+<+<#<.+<.<.<#<#.#.+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t7t7t774t4t477t477t4t4t77477t774t4t477t477t4t4t7747t4t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+.#<.<.<#<+<+.#.#<.<+..<.<+<.<.<#<+<+.#.#<.#<+<.<.<+.#.#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4777474t47777t774t7747777t4t774t47777t774t7747777t4t777477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<#.+<+..<#.+<.<#..<#<+<#.#.+<+..<#.+<.<#.<..#<#.+<.<+<..#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t4t777t7t4t77774t477t4t77774t477t4t77774t477t4t77774t47t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#<.<#<..+<+.#.#<+<#<...<+<.<#<..+<+.#.#<+#..<+<.<+.#<#..+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7777t4747477t4t477t77477t4t477t77477t4t477t77477t4t477t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++.<.<#.+.+<#<.<.<+<.<..+<#<#.#.+.+<#<.<.<+<.<<+<#.#.+<.<.<+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7t474t7t7t77477t77477t77477t77477t77477t77477t77477t7747t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<+<+.+.#<.<.<+<.<.<+.#<#<.<+.+.#<.<.<+<.<..<+.#.#<#<.<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77774t7777474t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<#..<#<.<#.+<#.#.+<#.+<..+<.<#<.<#.+<#.#.+<.+<.<+<..+<#.+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<.<+.#<+.<.<#<.<+..<+<+..<+.#<+.#<+..<+.##<+.+.#<+.#<..#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#.#.+<.<.<##.+.+<.<#<#..<#<#.+<.<.<.<#<#.+<<.<#<.<.<#.+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t7777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#.#<+<.<.<<+.+..<#<#<..#<#<+..<.<+.#<#<+...<.<#<.<..#<+<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<+<..#<#.+.<#<#<+...+<+<...<#<+<#.+<...<#<<#.+.+<#<+<...<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t474t4t777t47774t4t7t477t474t4t777t47774t4t7t477t477474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<.<#..<+<.<<+...+<#<+.#<.<+<#<...<+.#<+<#<.+.#<.<+..<+<#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t77777t474t7t4777774t774t77777t474t7t4777774t774t77t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<#<+<#.#.+.<#<#<..#.+<+<.<..+<#<#.+<.<..+<<#.+.+<.<#..<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777777777t474t7t474t7t47777777777t474t7t474t7t4777777777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<...<+.#.#<.#<#<.<+<+....<#<+.#<#<.<.<.<+.#..#<#<+<+.#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t4t4t4t474t77774t77774t7t4t4t4t474t77774t77774t7t4t4t4t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<+.+<.<+<.+<..+<.<.<#<#<+.#.+<..+<#.+<#.+<<+<.<..#<#.+<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4t4t4t7t47777t47777t474t4t4t4t777t4777777t47774t4t4t77tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#..<#<.<+<.<<+..<+.#.+<#<#<.<+.#.#<+..<+<+..#..<.<+<.<+.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt47777777774t7t474t7t474t777777777t474t7t4t474t7t4777777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t7t4t77it4t774t774t77t4774t774t777it77t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#<.<#.#.+.<#<#.+<#<....+<.<.<+<.<#<#..<#<<+<#<#...+<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77747t477t4777774t7t474t77777t477t474t7t474t4t7t474t7t477tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77474t7777t77t7t7t7t7774777747474747474t477747474t4477tt4t474t777474t74747t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.+<..#.#<.#<#<+..<.<+<+.#<.<+<.<.<#<..#<#.<+.+.#<#<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa44t7t74t774t7t4t47774t777t4t474t774t77774t7777774t77774t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t74t7777i47t7t474t74t447474747t4t74t7t7t7t7t7t7t774t7t7t7t77t774777t7t474tt777t477744t774t744i4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<..#<+<+<.+<...<#<+<.<#.+<+<#.#.+<..+<+<...+<.<#.+<..#<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477777t47774t4t777t47774t4t777t47777t477t477t477t47777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t4t4t4t777tt474t7t7t7t774777t4t777777774t4777t774747474t7t477t77474t7t4t474t7t7747747774t4t777t77t7777t477t77t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<+<#...#<.#<+<#<...<+<+...#<.<+.#<+.#<.<+#<+.+.#<#..<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74774tt474t7t47777t474t7t47777t474t7t474t774t774t774t7t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t7t74777777777t474777t474747477t4t7477t4t4t4t477t74t477t7t7t7t47774t477t7t4777777t47477t4tt7t47777t4744t47t774t7744t77t774t477777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#.#..<+<+<.+<.<..+<#<#..<#<.<#.#.+<#.+<+<.<<.<#<.<.<+<#.#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt7t74t7t474t7t474t7t474t7t474t7t474t7777777777777777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t7t7747474t7t477t474t7tt4t777t477t4t7777t77477t477t77477774t477t47774t47774t47774t4t4t777t4t777474t7t474t7t77744t4t4t4t74744t4t74t4t4t7774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#.#<.<+<+.<.<.<+.#<#<..#<#<#<+<+..<+....<#.<.<#<.<.<+.#.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t747477774t77774t77774t77774t77774t777t4t4t4t4t4t4t4t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t7774t77474t4t7t77774t774t7777477474t774t77474t74t4t774t774t4t74t7t774t774t7t774t7t774t7t7777474t77474tt77774t777744t7t777777777t7t77777t7777474tt7t4t7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<#..<##.+<#.+<..+<+<..+..<.<#<.<#<#<+.<#.+.+<#.+<.<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t4t4t777t47777t47777t47777t47777t4777747474747777t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t7t47777t47777t47777t47777t4777777t47777t47777t7t4t477t4t477t4t4t477t4t477t4t4777t7t477t7t477t7t477t7t477t7t477t477t7t477t7t4777474747474747474t7t477t7t477t7t4t47477t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#<+.#<..#<<+..<+.#<+.#.#<+.+<#<#<.<#<.<..++.#<..#<+.#<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477777777t474t7t474t7t474t7t474t7t474t7t47t7t7t7tt4t44747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7747t7774t7t474t7t474t7t474t7t474t7t4t474t7t474t7t4747477t77477t7747777t77477t77477t74t47774t47774t47774t47774t47774t774t47774t47774t7t7t7t7t7t7t7t7t47774t47774t4777777t4t7747774tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#.+<+<..<#<#.+<.<.<+<.<#<....+<..+<+<#<<#.+<+<.<.<.<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t477t474t7t474t77774t7t474t77774t7t474tt477t477477t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t77477t774t7t474t77774t7t474t77774t7t474t4t7t474t77774t7t7t774t4t77477t7777477t774t4t77477774t7t774t47774t7t774t47774t7t7t7t774t47774t7t7t477t477t477t47774t47774t7t774t4t4t7747474t47774t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<..#<+<+..#<#<+..<.<+<.<.<.<+<+.#<+.#.#<...#<+<+.#<.<..#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t774t77774t777t4t47774t777t4t47774t777774t774tt774itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77t77t4t774t47774t777t4t47774t777t4t47774t7777774t777t4t4777474t47777t4t774t4t4t774t47777t4t74t7t47477t774t7t47477t774t7t474747477t774t7t4747774t774t774t774t7t774t7t47477t7777477t7t7t774t7t4t74t74t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<..<+<...<#+<...<#<+<#.#.+<+<.<#.+<#.+<.<#.<+<...<#.+<#<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t777t47777t477t474t4t777t47774t4t7t477t47t7t477t74t47iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat447t447774t4t477t477t7t477t474t4t777t47774t4t7t477t477t477t474t4t777t7t4t7777477t477t477t477t77774t4777t77474t477t4777474t7t477t774747474t7t477t77474t7t477t7t7t477t7t477t4777474t7t4t474t7t7t477t477747777t7747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<+.<+<#<+..#<+<#<..#<.<+.#..<+<+..<+.#.#<+.<+<#<+.#<...<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt777t474t7t474t774t77777t474t7t4777774t774t747774t4777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474t7777t7t47777t774t77474t774t77777t474t7t4777774t774t774t774t77777t4747477t4t4t774t774t774t774t4t477t74t477t7t774t774t7t7t47774t477t7t7t7t47774t477t7t47774t4747774t47774t774t7t7t4777777t4747774t774t7t4t4t477t774t7tttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<<#..<.<#+<.<..+<.<#.#.+<#<#..<#<.<.<+<.<<#..<.<#.+<+<#..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4474t4t7t474t777777777t474t7t474t7t477777777774t47774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47474777774t4474t7t474t4t4t4t777777777t474t7t474t7t4777777777777777777t474t7t7t77477t4t4t4t4t4t4t4t4t477t77477774t477t7t7t7t7t47774t47774t477t47774t47774t47774t4777474t47774t7t7t7t7t47774t4t4t777t4t7t7t7t7t777777474t47774477775aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+.#<.<.<<.<.<+.#<#<+<+..<#<..#<#<.<+<.<.+.#<.<.<.<+<+.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7777774t777t4t4t4t474t77774t77774t7t4t4t4t47t774t7t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7tt74t7t77t77774t777777777t4t4t4t474t77774t77774t7t4t4t4t4t4t4t4t474t7777474t4t7747777777777777777t774t4t74t7t774t47474747774t7t774t7t774t774t7t774t7t774t7t774t7t7t774t7t47474747774t7t7777474t7747474747474t4t7t7t774t7tt74t74t7iiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<#.+<#.+#.+<#.+<+..<.<#<..+<+<..+<#.#.+<<#.+<#.+<#..<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai47777t47777t474t4t4t4t7t47777t47777t474t4t4t4tt477t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47477777777477t4t4747777t474t4t4t4t4t4t4t4t7t47777t47777t474t4t4t4t4t4t4t4t7t47777t7t4t477t7777777777777777477t4t4777t7t47774747474t7t477t7t7t477t7t7t477t7t7t477t7t477t7t477t7t47774747474t477t7t4t47477t4t7t7t7t777t4747777t7t4774t477t4t4t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..<+.#<+..#<+.#<.<#<.<..+<+.#<+.#<+..<+.#..#<#<..#<+.+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t474t7t474t77777777774t7t474t7t474t777777777774t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t777tt4t4t4t4t77477t7t7t474t7777777777777777774t7t474t7t474t7777777777777777774t7t4747477t774t4t4t4t4t4t4t4t4t77477t74t47774t7t7t7t7t47774t4747774t4747774t4747774t47774t47774t47774t7t7t7t7t774t4777777t4t77474747474t777t4t4t47774t77t7747777t774777ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.++.+<.<.<#+<.<.<#...+<+<#<#.+<.<.<.<#<#.+<<+<..+<+<.<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t7t474t77777t477t4777774t7t474t77777t477t47t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t77t777t4t7477t477t4t4t7747474t77777t477t477t477t4777774t7t474t77777t477t477t477t4777774t7t7t774t4t477t477t477t477t4t4t77477774t7t7t477t47774t4777474t4777474t4777474t47774t7t774t47774t7t7t477t477t7t774t4t4t7747477t477t47474t7777774t7t777477t7777477t77774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<+<.<.<<.<.<#<+<+.#.#<.<+..<.<+.#<#<+..+<+..<+<.<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4t47774t777t4t474t774t7t4t47774t777t4t474t774t747474aaaaaaaaaaaaaaaaaaaaaaaaaa7t77474t4474t7747t774t7747777t4t7t777t4t474t774t774t774t7t4t47774t777t4t474t774t774t774t7t4t4777474t47777t774t774t774t7747777t4t74t7t4747774t774t7t774t7t7t774t7t7t774t7t7t774t7t47477t774t7t4747774t774t47477t7777477t7t4t774t777t7t474t4t7t4747t4t774t4t4t774t4t4t7t774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<..#<#.+#.+<+..<#.+<.<#..<#<+<#.+<...<#<..<#<#..<#.+.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat44t4t777t47774t4t777t47774t4t777t47774t4t777t47777777aaaaaaaaaaaaaaaaaaaaaaaa7t47477t477t77t477t44t477t4t77774t4747774t4t777t4777777t47774t4t777t47774t4t777t4777777t47774t4t777t7t4t77774t477t4t4t477t4t77774t4777t77474t7t477t7t477t477t477t477t477t477t477t4777474t7t477t77474t7t477t77474t7t4t474t7t77477t474t7t7747777t77474477t477t477t477t477t477t7t447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<+<.<<.<#<..+<+.#.#<+<#<...<+.#<+<#<.#<.<+.#<+.#<.<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777777t474t7t47777t474t7t47777t474t7t47777t474t7t4t4iaaaaaaaaaaaaaaaaaaaaaatt774t7t774t7744t774t7777t77477t4t477t7t7t47777t474t7t4t474t7t47777t474t7t47777t474t7t4t474t7t47777t4747477t4t477t7747777t77477t4t477t74t477t7t47774t47774t774t774t774t774t774t774t774t7t7t47774t477t7t47774t477t7t4777777t47477t4t777t47477t4t4t477t7tt774t774t774t774t774t77474t7t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#.#.+#.+.+<#<.<.<+<.<..+<#<#.+<.<..+<<.<#<#.+<#.+.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74747t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t4taaaaaaaaaaaaaaaaaaai4t777777774t4t4t4t7474747477477t77477t7747474t7t474t7t474t4t7t474t7t474t7t474t7t474t7t474t4t7t474t7t474t7t7t77477t77477t7777477t77477t77477774t47774t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47774t47774t47774t47774t47774t4t4t777t4t777t4t777t4t7777774t4774t4t4t4t4t4t4t4t4t4t4t4t77774t4t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+.#.#<<+.+.#<.<.<+<.<.<+.#<#<.<.<.<+.#+<....#<..#<#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t7t74t77774t77774t77774t77774t77774t77774t77774t7777aaaaaaaaaaaaaaaaa7t7t77t4t4t4t4777777777t7t7t7tt4t774t4t774t4t7t77774t77774t7777774t77774t77774t77774t77774t7777774t77774t7777474t4t774t4t774t4t4t774t4t774t4t74t7t774t7t774t7t47474747474747474747474747474747774t7t774t7t774t7t774t7t774t7t7777474t77474t77474t77474t4t7t774t777777777777777777777777t4t4777777t74t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.+<.<+<..<#<.<#.+<#.#.+<#.+<..+<#.+<#.+<.#<+<+<.<+<.<..#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t4t7t47777t47777t47777t47777t47777t7t4t477t4t47477taaaaaaaaaaaaaaa777777777777777777777777777777777477t4t477t4t477t4t477t4t477t4t4747777t47777t47777t47777t47777t477t47777t47777t47777t47777t47777t77t7t477t7t477t7t477t7t477t7t47774747474747474747474747474747474t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477747474747474747474747474747474747t47777t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<+.#.#<+..<+<+..<+.#<+.#<.<#<.<+..<+<+..+<#.#..<#..<.++<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77777774t7t474t7t474t7t474t7t474t7t4747477t77477t7t7aaaaaaaaaaaaaa77t7t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t77477t77477t77477t77477t77477t7t7t474t7t474t7t474t7t474t7t474t774t7t474t7t474t7t474t7t474t7t4744t47774t47774t47774t47774t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t74t7t474t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<.<+<.<#<#..<#<#.+<.<.<#.+.+<.<#<#..<#<..<+<+<#<+<#<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t4777774t7t474t77774t7t474t77774t7t7t774t4t7747taaaaaaaaaaaa44t7777477t477t477t477t477t477t477t477t4t4t77477t774t4t77477t774t4t7747474t77774t7t474t77774t7t474t777777774t7t474t77774t7t474t77774t7t7774t7t774t47774t7t774t47774t7t7t477t477t477t477t477t477t477t477t7t774t47774t7t774t47774t7t774t47774t7t774t47774t7t774t47774t7t7t477t477t477t477t477t477t477t47777774t7t474t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.<.<#<..#<#<+..<.<+<+.+..<#<#<..#<##<.<.<+..<+.+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt774t7t4t47774t777t4t47774t777t4t4777474t47777t4t7aaaaaaaaat47t777t4t4t774t774t774t774t774t774t774t7747777t4t774t47777t4t774t47777t4t7t777t4t47774t777t4t47774t777t4t4t4t47774t777t4t47774t777t4t477744t7t47477t774t7t47477t774t7t4747774t774t774t774t774t774t774t774t47477t774t7t47477t774t7t47477t774t7t47477t774t7t47477t774t7t4747774t774t774t774t774t774t774t774tt4t47774t777t4t44774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<#.#.+<..+<+<...<#<+<#..<#<#<+...+<+<..<.<#.+<..+<.<#+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t447774t4t777t47774t4t7t477t474t4t777t7t4t777747iaaaaaaaa7747747774t4t4t477t4t4t477t4t4t477t4t4t477t4t77774t477t4t7777477t477t77774t4747774t4t7t477t474t4t777t47774t4t4t4t777t47774t4t7t477t474t4t777t77t77474t477t4777474t7t477t77474t7t477t7t7t477t7t7t477t7t7t477t77474t7t477t77474t477t4777474t7t477t77474t477t4777474t7t477t77474t7t477t7t7t477t7t7t477t7t7t477t74t4t777t47774t4t77t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<.<+.#<+.#<.<+<#<...<+<+...+<#<+.#<.<++<.<.<+<#<+..<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774777t7t47777t474t7t4777774t774t77777t4747477t4t77aaaaaaa74t77t4tt7t4777777t7747777t7747777t7747777t77477t4t477t77477t4t4t774t774t4t477t7t7t4777774t774t77777t474t7t477777777t474t7t4777774t774t77777t4744t477t7t774t774t7t7t47774t477t7t47774t4747774t4747774t4747774t477t7t47774t477t7t774t774t7t7t47774t477t7t774t774t7t7t47774t477t7t47774t4747774t4747774t4747774t477777t474t7t477774t77774tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#.#.+<#.+<+<.<..+<#<#..<#<#<..#.+<+<.<.#.+<#.#<.<#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7474t4474t7t474t7t474t7t47777777777t474t7t7t774744aaaaa4477tt4t777474t7t4777477t7777477t7777477t7777477t77477t77477t77477t4t4t4t4t477t7747474t7t47777777777t474t7t474t7t477t474t7t474t7t47777777777t474t7t7774t477t7t7t7t7t47774t47774t47774t4777474t4777474t4777474t47774t47774t47774t477t7t7t7t7t47774t47774t477t7t7t7t7t47774t47774t47774t4777474t4777474t4777474t477747t474t7t474t7t477474t7t7474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#<+<+..<+....<#<+.#<#<..#<#<.<+<+....<##.#<+.#..<.<.<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t7t77t77774t77774t77774t7t4t4t4t474t7777474t4t7taaaat77777477474tt77774t7t4t774t4t4t774t4t4t774t4t4t774t4t774t4t774t4t77477777777t774t4t7t77774t7t4t4t4t474t77774t77774t774t77774t77774t7t4t4t4t474t777744t7t774t47474747774t7t774t7t774t7t774t7t7t774t7t7t774t7t7t774t7t774t7t774t7t774t47474747774t7t774t7t774t47474747774t7t774t7t774t7t774t7t7t774t7t7t774t7t7t774t7t74t77774t77774t77t7t474777t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+..<.<#<.<#<#<+.#.+<..+<+<..+<.<.<#<#<+.<+<.<.<+<#.+<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t447777t47777t4777777t47774t4t4t4t7t47777tt4747iaa44777777777t4777777t4777477t4t477t4t477t477t4t477t4t477t4t477t4t4t477t4t77777777477t4t4747777t474t4t4t4t777t4777777t4777777t4777777t47774t4t4t4t7t47777t77t7t47774747474t7t477t7t7t477t7t477t7t477t7t477t477t7t477t7t477t7t477t7t7t477t774747474t477t7t477t7t47774747474t7t477t7t7t477t7t477t7t477t7t477t477t7t477t7t477777t4777777t477774747474t477t7t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#.#..<.+<#<#<.<.<+..<+<+..<+.#.+<#<#<..<+.#<+.+.#<+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744777t7t474t7t474t7t4t474t7t47777777774t7t474777tit7474t4t4t4t474t7t4t474t7t4t77477t77477t774t77477t77477t77477t7747777t77477t4t4t4t4t77477t7t7t474t777777777t474t7t4t474t7t4t474t7t4t474t7t47777777774t7t4744t47774t7t7t7t7t47774t4747774t47774t47774t47774t774t47774t47774t47774t4747774t477t7t7t7t774t47774t47774t7t7t7t7t47774t4747774t47774t47774t47774t774t47774t47774tt474t7t4t474t7t47t7t7t7t774t4777777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<+<+<##<....+<+<.<#<#..<#<#.+<#<....+<.+<.<.<#<.<.<#++aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4t74t4474t77774t7t474t4t7t474t7t477t4777774t7tt4t74t4t777t477t4t7t474t4t7t474t4t4t77477t774t4t4t4t77477t774t4t77477t7777477t77477t477t4t4t7747474t77777t477t474t7t474t4t7t474t4t7t474t4t7t474t7t477t4777774t7t7774t7t7t477t47774t4777474t47774t7t774t47774t7t7t7t774t47774t7t774t4777474t47774t477t477t7t774t47774t7t7t477t47774t4777474t47774t7t774t47774t7t7t7t774t47774t7t74t7t474t4t7t474tt477t477t7t774t4t4t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<+.<.<+<+.#..<#<#<..#<#<+..<.<+<+.##<+<.<.<#<.<..#+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777t77t777t4t47774t7777774t77774t774t7t4t47774774777774t74t7747774t7777774t7777777t4t774t477777777t4t774t47777t4t774t4t4t774t4t774t7747777t4t7t777t4t474t774t77774t7777774t7777774t7777774t77774t774t7t4t477744t7t4747774t774t7t774t7t7t774t7t47477t774t7t474747477t774t7t47477t774t7t7t774t7t774t774t47477t774t7t4747774t774t7t774t7t7t774t7t47477t774t7t474747477t774t7t47477774t7777774t777774t774t47477t777747477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.+<.+<.<#.+<#<+...+<+<...<#<+<.<#.+<<..#<#.+.+<#<+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t7t447774t4t7t477t477t477t47777t47774t4t777tt474t7t774777t4t7t477t477t477t4777774t477t4t777777774t477t4t7777477t477t477t477t4t477t4t77774t4747774t4t777t47777t477t477t477t477t477t477t477t47777t47774t4t777t77t77474t7t477t7t477t477t477t4777474t7t477t774747474t7t477t77474t477t477t477t477t7t477t77474t7t477t77474t7t477t7t477t477t477t4777474t7t477t774747474t7t477t774747t477t477t477t47t7t477t77474t7t4t474t7t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##<..<+<..<+<+...+<#<#<..#<+<#<...<+<+..#..<+<.<#<...+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t4777t7t4777774t774t774t774t7t474t7t47777t474777t47477t4t747774t774t774t774t7t4t477t77477t4t4t4t477t77477t4t4t774t774t774t77477t77477t4t477t7t7t47777t474t7t474t774t774t774t774t774t774t774t7t474t7t47777t4744t477t7t47774t47774t774t774t774t7t7t47774t477t7t7t7t47774t477t7t774t774t774t774t47774t477t7t47774t477t7t47774t47774t774t774t774t7t7t47774t477t7t7t7t47774t477t7t74t774t774t774t747774t477t7t4777777t47477t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.+<<#.##<#..<#<#<..+.+<+<.<..+<#<#..<#<<+<#.#.+.+<+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47774t4474t7t4777777777777777774t7t474t7t474t7tt4t777t4t7777t777777777777777777477t77477t77477t477t77477t77477t4t4t4t4t4t4t4t4t77477t77477t7747474t7t474t7t474t777777777777777777777777777777774t7t474t7t474t7t7774t47774t47774t7t7t7t7t7t7t7t7t47774t47774t477t47774t47774t477t7t7t7t7t7t7t7t774t47774t47774t47774t47774t47774t7t7t7t7t7t7t7t7t47774t47774t477t47774t47774t477777777777777777774t47774t47774t4t4t777t4t7777774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.#+.#.<#<..#<#<.<+.+.#<.<.<+.#<#<..#<#.<+.#.#<.<+<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t774t7t77t77774t7t4t4t4t4t4t4t4t47774t77774t7777477474t77474t74t4t4t4t4t4t4t4t4t4t774t4t774t4t774t774t4t774t4t7747777777777777777t4t774t4t774t4t7t77774t77774t777t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t47774t77774t777744t7t774t7t774t7t4747474747474747774t7t774t7t774t774t7t774t7t774t47474747474747477t774t7t774t7t774t7t774t7t774t7t4747474747474747774t7t774t7t774t774t7t774t7t774tt4t4t4t4t4t4t4t47t774t7t774t7t7777474t77474t4t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<.<+..+<+<..+<.<#<.<#.+<#.+<..+<+<...+<.<+<.<#..<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t47777t47777t47774t4t4t4t4t4t4t4t777t47777t47777t7t4t477t4t477t4t77777777777777774t477t4t477t4t477t4t477t4t477t4t77777777777777774t477t4t477t4t4747777t47777t47774t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4t777t47777t47777t77t7t477t7t477t77474747474747474t7t477t7t477t7t477t7t477t7t477t77474747474747474t7t477t7t477t7t477t7t477t7t477t77474747474747474t7t477t7t477t7t477t7t477t7t477t77474747474747474t7t477t7t477t7t4t47477t47477t474t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<.<<+.#<+.#<+..<+.#<.<+..<+<.<#<.<+#<+.+.#<+.#<..#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t474t7t474t7t474t7t47777777777777777t474t7t474t7t4747477t77477t77477t4t4t4t4t4t4t4t477t77477t77477t77477t77477t77477t4t4t4t4t4t4t4t477t77477t77477t7t7t474t7t474t7t477777777777777777777777777777777t474t7t474t7t4744t47774t47774t477t7t7t7t7t7t7t7t47774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t47774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t47774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t47774t47774t4777777t4t777t4t777t4747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<##.+<.<.<.<#<#.+<+<.<#<#.#.+.+<.<<.<#<.<.<#.+<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744t7t474t77774t7t474t7t477t477t477t474t7t474t77774t7t7t774t4t77477t77477t477t477t477t77477t774t4t77477t774t4t77477t77477t477t477t477t77477t774t4t7747474t77774t7t474t7t477t477t477t477t477t477t477t474t7t474t77774t7t7774t7t774t47774t477t477t477t47774t47774t7t774t47774t7t774t47774t477t477t477t47774t47774t7t774t47774t7t774t47774t477t477t477t47774t47774t7t774t47774t7t774t47774t477t477t477t47774t47774t7t774t4t4t77474t777t4t777t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<++..<+..<.<+.#<#<+....<#<#<.<+.+..<#.<.<#<.<..#<+<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t7774t777t4t47774t77774t774t774t774t77774t777t4t4777474t47777t4t774t4t774t774t774t774t4t774t47777t4t774t47777t4t774t4t774t774t774t774t4t774t47777t4t7t777t4t47774t77774t774t774t774t774t774t774t774t77774t777t4t477744t7t47477t774t7t774t774t774t774t7t774t7t47477t774t7t47477t774t7t774t774t774t774t7t774t7t47477t774t7t47477t774t7t774t774t774t774t7t774t7t47477t774t7t47477t774t7t774t774t774t774t7t774t7t47477t7777477t7t474t77474t774t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..<<+.<#<+<#.+<...<#<#<+...+<.<#<#<+.<#.+.+<#<+<...<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t777t47774t4t7t477t47777t4777777t47777t477t474t4t777t7t4t7777477t477t4t477t4t4t477t4t477t477t77774t477t4t7777477t477t4t477t4t4t477t4t477t477t77774t4747774t4t7t477t47777t4777777t4777777t4777777t47777t477t474t4t777t77t77474t477t477t7t477t7t7t477t7t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t477t4777474t7t477t77474t477t477t7t477t7t7t477t7t477t4777474t7t4t474t7t777t477t47477t474747774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<<#<...<+.#<+<#<..+<#<#<.<+...+<#+.#<.<+..<+<#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt777t474t7t4777774t774t7t474t7t4t474t7t474t774t77777t4747477t4t4t774t77477t7747777t77477t774t774t4t477t77477t4t4t774t77477t7747777t77477t774t774t4t477t7t7t4777774t774t7t474t7t4t474t7t4t474t7t4t474t7t474t774t77777t4744t477t7t774t774t47774t4747774t47774t774t7t7t47774t477t7t774t774t47774t4747774t47774t774t7t7t47774t477t7t774t774t47774t4747774t47774t774t7t7t47774t477t7t774t774t47774t4747774t47774t774t7t7t4777777t47474t774t777t4t777t7t4t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#....+<#<#.+<.<..+<#<..+.+<.<#<#<..<#.+.+<.<#..<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747474t7t474t7t47777777774t7t474t4t7t474t777777777t474t7t7t77477t4t4t4t4t77477t7777477t774t4t4t4t477t77477t77477t4t4t4t4t77477t7777477t774t4t4t4t477t7747474t7t47777777774t7t474t4t7t474t4t7t474t4t7t474t777777777t474t7t7774t477t7t7t7t774t4777474t47774t7t7t7t7t47774t47774t477t7t7t7t774t4777474t47774t7t7t7t7t47774t47774t477t7t7t7t774t4777474t47774t7t7t7t7t47774t47774t477t7t7t7t774t4777474t47774t7t7t7t7t47774t4t4t777t474747474t777t4t7t7777774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+.#<<+.#<#<.<.<.<+.#<.<+.+.#.#<#<.<+..#<#<+<+.#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747t7t77774t77774t7t4t4t4t47774t7777774t777t4t4t4t474t7777474t4t77477777777t4t774t4t4t774t477777777t774t4t774t4t77477777777t4t774t4t4t774t477777777t774t4t7t77774t7t4t4t4t47774t7777774t7777774t7777774t777t4t4t4t474t777744t7t774t474747477t774t7t7t774t7t47474747774t7t774t7t774t474747477t774t7t7t774t7t47474747774t7t774t7t774t474747477t774t7t7t774t7t47474747774t7t774t7t774t474747477t774t7t7t774t7t47474747774t7t7777474t777t7t7t7t474t7747474t4t7tt74itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#.+#.+<..+<#.+<#.+<+<.<#<.<+<..+<.<<+<.<..#<#.+<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t4t4747777t474t4t4t4t7t47777t47777t474t4t4t4t7t47777t7t4t477t77777777477t4t477t4t477t77777777477t4t477t4t477t77777777477t4t477t4t477t77777777477t4t4747777t474t4t4t4t7t47777t47777t477t47777t47777t474t4t4t4t7t47777t77t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t477t7t47774747474t477t7t4t47477t4t7t7t7t777t4747777t7t4774t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.#<<+.#.#<+..<+<+....<+<+..<#<.<.<##..<.<+<.<+.#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t77477t7t7t474t77777777774t7t474t7t474t77777777774t7t4747477t774t4t4t4t4t77477t77477t774t4t4t4t4t77477t77477t774t4t4t4t4t77477t77477t774t4t4t4t4t77477t7t7t474t77777777774t7t474t7t474t774t7t474t7t474t77777777774t7t4744t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t47774t47774t7t7t7t7t774t4777777t4t77474747474t777t4t4t47774t77t774t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<..<.<+<.<#<#..<#<#<#..<#<+.+<#.+.<+<#<#...+<.<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47t4t4t7747474t77777t477t4777774t7t474t77777t477t4777774t7t7t774t4t477t477t4t4t77477t774t4t477t477t4t4t77477t774t4t477t477t4t4t77477t774t4t477t477t4t4t7747474t77777t477t4777774t7t474t777777774t7t474t77777t477t4777774t7t7774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t47774t7t7t477t477t7t774t4t4t7747477t477t47474t7777774t7t777477t77744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<<.<+<.<.<#<..#<#<#<..#<#.+.#<+.+.<+.+.#<#<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77747777t4t7t777t4t474t774t7t4t47774t777t4t474t774t7t4t4777474t47777t774t7747777t4t774t47777t774t7747777t4t774t47777t774t7747777t4t774t47777t774t7747777t4t7t777t4t474t774t7t4t47774t777t4t4t4t47774t777t4t474t774t7t4t477744t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t774t7t4747774t774t47477t7777477t7t4t774t777t7t474t4t7t4747t4t774t47t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<#+<#.#.+<..+<+<....+<+<..#<.<.<#<.+<.<#.+<..#<#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777t4t77774t4747774t4t777t47774t4t777t47774t4t777t47774t4t777t7t4t77774t477t4t77774t477t4t77774t477t4t77774t477t4t77774t477t4t77774t477t4t77774t477t4t77774t4747774t4t777t47774t4t777t47774t4t4t4t777t47774t4t777t47774t4t777t77t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t477t77474t7t4t474t7t77477t474t7t7747777t77474477t477tt477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+..#<.<+.#<+.#<.<+<+.#<.<+<.<+.#<.#<+.+.#<#..<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t7477t4t477t7t7t47777t474t7t47777t474t7t47777t474t7t47777t4747477t4t477t77477t4t477t77477t4t477t77477t4t477t77477t4t477t77477t4t477t77477t4t477t77477t4t477t7t7t47777t474t7t47777t474t7t477777777t474t7t47777t474t7t47777t4744t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t47774t477t7t4777777t47477t4t777t47477t4t4t477t7tt774t774774t774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<..<#.#.+<#.+<+<.<#.+<+<.<+<.<.<#.<.<#<.<.<+<#.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7777t77477t7747474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t7t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t77477t7747474t7t474t7t474t7t474t7t474t7t477t474t7t474t7t474t7t474t7t474t7t7774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t4t4t777t4t777t4t777t4t7777774t4774t4t4t4tt7t7t7t74t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<<#<+<+..<+....<#<+....<#..<#<#<+.<.<#<.<.<+.#.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474t74t4t774t4t7t77774t77774t77774t77774t77774t77774t77774t7777474t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t774t4t7t77774t77774t77774t77774t77774t774t77774t77774t77774t77774t777744t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t774t7t7777474t77474t77474t77474t4t7t774t777777774747474777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..#+..<.<#<.<#<#<+..<#<#<+.#<+.+..<<#.+.+<#.+<.<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47747777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t47777t77t7t477t7t477t7t477t7t4t47477t47477t47477t4747777t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t47t4t477t4t477t4t477t4t477t4t477t4t477t4t477t4t47t47477t47477t47477t4747747777t47777t47777t47777t7t4t477t4t477t4t477t4t47t47477t47477t47477t47477t47477t47477t47477t4747747777t47777t47777t47777t47777t47777t47777t47777t77t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t7t7t7t7t7t7t7t7t7t7t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<..<+<+<#.+<#.#..<+<#.#..<#..<.<+<+<.<.<+<.<+.#<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4tt7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t4744t47774t47774t47774t4777777t4t777t4t777t4t777t4t4t47774t47774t47774t47774t47774t47774t47774t47777477t77477t77477t77477t77477t77477t77477t77477t7777t4t777t4t777t4t777t4tt7t474t7t474t7t474t7t4747477t77477t77477t77477t7777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4tt7t474t7t474t7t474t7t474t7t474t7t474t7t474t7t4744t47774t47774t47774t47774t47774t47774t47774t47774t47774t47774t474747474747474747474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..++<#....<+..<+<+<#..<+<+<#<+<#<#...#.+<#.#.+<.<.<##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t474t77774t7t7774t7t774t47774t7t774t4t4t77474t777t4t77474t7777774t7t774t47774t7t774t47774t7t774t47774t7t774t47t774t4t77477t774t4t77477t774t4t77477t774t4t7747t4t77474t777t4t77474t777474t77774t7t474t77774t7t7t774t4t77477t774t4t7747t4t77474t777t4t77474t777t4t77474t777t4t77474t777474t77774t7t474t77774t7t474t77774t7t474t77774t7t7774t7t774t47774t7t774t47774t7t774t47774t7t774t47774t7t774t4777477t477t477t477t477t477477ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<+.#<#<.<#<.<.<+.#<.<.<+..<+.+.#<#.#<+.#.#<+<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4474tt777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t47774t777t4t477744t7t47477t774t7t47477t7777477t7t474t77477t7t474t4t7t47477t774t7t47477t774t7t47477t774t7t47477t7774t47777t4t774t47777t4t774t47777t4t774t47777t4t777477t7t474t77477t7t474tt777t4t47774t777t4t4777474t47777t4t774t47777t4t777477t7t474t77477t7t474t77477t7t474t77477t7t474tt777t4t47774t777t4t47774t777t4t47774t777t4t477744t7t47477t774t7t47477t774t7t47477t774t7t47477t774t7t47477t774t7t4t774t774t774t774t774tt77477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<#.+<.<#<.<#.+<.<.<#.+<..+<.<#.+<+<.<.<+<..#<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait7747747774t4t7t477t474t4t777t47774t4t7t477t474t4t777t47774t4t7t477t474t4t777t77t77474t477t4777474t7t4t474t7t777t477t4t7t7747777t77474t477t4777474t7t477t77474t477t4777474t7t47t4t7777477t477t77774t477t4t7777477t477t77774t47t474t7t777t477t4t7t7747747774t4t7t477t474t4t777t7t4t7777477t477t77774t47t474t7t777t477t4t7t77477t474t7t777t477t4t7t7747747774t4t7t477t474t4t777t47774t4t7t477t474t4t777t77t77474t477t4777474t7t477t77474t477t4777474t7t477t77474t477t4777477t4747477t47474774777777t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..#<#<..+<.<.<+<+<.<.<+<#<+.+.#<.<+.#<.<#..<+<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477t4tt7t4777774t774t77777t474t7t4777774t774t77777t474t7t4777774t774t77777t4744t477t7t774t774t7t7t4777777t47474t774t7747477t4t4t477t7t774t774t7t7t47774t477t7t774t774t7t7t47777477t4t4t774t774t4t477t77477t4t4t774t774t4t477t7777t47474t774t7747477t4tt7t4777774t774t77777t4747477t4t4t774t774t4t477t7777t47474t774t7747477t4t777t47474t774t7747477t4tt7t4777774t774t77777t474t7t4777774t774t77777t4744t477t7t774t774t7t7t47774t477t7t774t774t7t7t47774t477t7t774t774t7t4t777t7t4t777t7t4tt7t4t4744ti47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<..+<+.#.+<#.#.#.+<#.#<.<#<.<..+<.<.<#<+<#.#.+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt4t777474t7t47777777777t474t7t474t7t47777777777t474t7t474t7t47777777777t474t7t7774t477t7t7t7t7t47774t4t4t777t47474747477t4t7777774t477t7t7t7t7t47774t47774t477t7t7t7t7t47774t47t77477t4t4t4t4t477t77477t77477t4t4t4t4t477t7747t4t777t47474747477t4t777474t7t47777777777t474t7t7t77477t4t4t4t4t477t7747t4t777t47474747477t4t777t4t777t47474747477t4t777474t7t47777777777t474t7t474t7t47777777777t474t7t7774t477t7t7t7t7t47774t47774t477t7t7t7t7t47774t47774t477t7t7t7t7t777t4t7t777t4t7t777474t4t7t7774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+<+..<+<#.#<+.#.#.#<+.#..<.<#<.<#<+<+<...<+.#.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47477474tt77774t7t4t4t4t474t77774t77774t7t4t4t4t474t77774t77774t7t4t4t4t474t777744t7t774t47474747774t7t7777474t777t7t7t7t4t77474t4t7t774t47474747774t7t774t7t774t47474747774t7t7774t4t77477777777t774t4t774t4t77477777777t774t4t777474t777t7t7t7t4t77474tt77774t7t4t4t4t474t7777474t4t77477777777t774t4t777474t777t7t7t7t4t77474t77474t777t7t7t7t4t77474tt77774t7t4t4t4t474t77774t77774t7t4t4t4t474t777744t7t774t47474747774t7t774t7t774t47474747774t7t774t7t774t47474747474t7747474t7747474tt77777744t7t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++..<#<#..<+<.<.<+<+<.<.<+<#.+.+<#<..#.#<+.+<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7t47777t47777t474t4t4t4t777t4777777t47774t4t4t4t7t47777t47777t474t4t4t4t777t4777777t77t774747474t477t7t4t47477t44t4t7777747777t7t7t477t74t4t4t77t477t7t4t7t7t4777777477aaaaaaaaaaaaaai5tt7tt77774ii4y4777t477t7tt7t7t7t7477t47747477t474747477777777t7t447777t4774747474777t7t4t4t477t4t77777777477t4t47t47477t4t7t7t7t77477t4747477t474t7t7t7t777t4747747777t474t4t4t4t777t4777777t47774t4t4t4t7t47777t77t7t47774747474t7t477t7t7t477t774747474t477t7t477t7t4777474747477t47477t47477t477t4747777t7t47777t47iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<+<.<#<..#<.<.<+.#<+..<+<.<+.+<#.#..<#<.<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t7t474t7t474t777777777t474t7t4t474t7t47777777774t7t474t7t474t777777777t474t7t4t4744t477t7t7t7t774t4777777t4t777777t4t47t4t4t4747774t4777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7tt7t4t777t7t7it4t44t4t4777t7t474t77t7t7t7tt474747777t77477t4t4t4t4t77477t7777t4t77474747477t4t777t7t4t777t474747474t777t4tt7t474t777777777t474t7t4t474t7t47777777774t7t4744t47774t7t7t7t7t47774t4747774t477t7t7t7t774t47774t47774t7t7t7t7t4t777t4t777t4t774t777t4t4t47774t4t777t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<#.#.+.+<+<.<#.+<.<.<#<#.#.+<...<+<+<#<.<#.#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t44777774t7t474t77777t477t474t7t474t4t7t474t7t477t4777774t7t474t77777t477t474t7t474t4t7t7774t477t477t7t774t4t4t774747t7t477t4t77t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t477t77t777t4474t7777t477t4774t7t7t7777477t77477t477t4t4t7747t4t7747477t477t4t777t4t7t777t4t777t477t47474t777474t77777t477t474t7t474t4t7t474t7t477t4777774t7t7774t7t7t477t47774t4777474t47774t477t477t7t774t47774t7t7t477t4777474t777t4t774747474t7777774t7t774747447taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<..#.#<.<+<+<..#<+<.<.<+.#.#<+<#<.<.<+.+<..#.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77t7t4t47774t777t4t474t774t77774t7777774t77774t774t7t4t47774t777t4t474t774t77774t77777744t7t774t774t47477t7777477t7tt774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa744tt777t4t4774t774t777474t4t4t774t4t774t7747777t4t777477t7t4t774t77474t7747474t77474t774t777t7t474tt777t4t474t774t77774t7777774t77774t774t7t4t477744t7t4747774t774t7t774t7t7t774t7t774t774t47477t774t7t4747774t774t7t7t474t77477t7t7t7t474t4t7t47477t7t7t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#<+<+<.<#...#<+<..#<#.+<.<+<..#<.<#.+<..#<+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47747774t4t777t47774t4t777t47777t477t477t477t47777t47774t4t777t47774t4t777t47777t477t477tt47777t7t477t77477t7t47t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t477t77t7t477t47477t7t4t477t4t77774t47t474t7t77477t47477t477t477t477t47477t474t7t7747747774t4t777t47777t477t477t477t47777t47774t4t777t77t77474t7t477t7t477t477t477t477t7t477t77474t7t477t77474t7t477t7t7t77477t474t7t7t7t7747777t774747474t7t4t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#...#<.<+<+<#.#..<+<.<+.#<#..<+<.<.<+<+<#...#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4tt7t47777t474t7t47777t474t7t474t774t774t774t7t474t7t47777t474t7t47777t474t7t474t774t774774t4t47774t477itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474477t7t7t7t7747477t77477t4t477t7777t47477t4t777t4t774t774t774t777t4t777t47477t4tt7t47777t474t7t474t774t774t774t7t474t7t47777t4744t477t7t47774t47774t774t774t774t47774t477t7t47774t477t7t47774t4747477t4t777t474747477t4t4t477t7t7t7t4777777t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+<.<#.#..<+<+<#.#.+<.<.<+<#.#.+<#.#..<+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t777474t7t474t7t474t7t474t7t474t77777777777777774t7t474t7t474t7t474t7t474t7t474t77777777777477t7ittaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t477t4t77477t77477t7747t4t777t4t777t4t77474747474747474t777t4t777t4t777474t7t474t7t474t77777777777777774t7t474t7t474t7t7774t47774t47774t7t7t7t7t7t7t7t774t47774t47774t47774t47774t4777477t4t777t4t777t477t4t7777774t477t47774t4t4t77747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<.<+<+.+.#.#<.<.<+.#.#<#<.<.<+.#.#<+.#.#<.<+<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t474tt77774t77774t77774t77774t777t4t4t4t4t4t4t4t47774t77774t77774t77774t77774t777t4t4t4t4t47iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t774t4t774t4t777474t77474t77477t7t7t7t7t7t7t7t474t77474t77474tt77774t77774t777t4t4t4t4t4t4t4t47774t77774t777744t7t774t7t774t7t47474747474747477t774t7t774t7t774t7t774t7t774t7t4t77474t77474t774t77474t4t7t774t774t7t7777474tt777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<#<.<+<.<#.+<.<+<..+<#.+<.<+<.<.<+<.<#..<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t77477t47477t4747747777t47777t47774t4t4t4t4t4t4t4t7t47777t7t4t477t477t4t477t4t4747t7t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7477t477t4t4747777tt474t7t7t7t77777777777t4747747777t477t47777t47777t474t4t4t4t4t4t4t4t777t47777t47777t77t7t477t7t477t77474747474747474t477t7t477t7t477t477t7t477t7t4777477t47477t4747777t7t477t7t477t7t7t477t7t477t7t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<+.#<+.#<..#<#<..#<.<+<.<.<+<.<+.#<+..<+<.<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747477t4t777t4t777t4tt7t474t7t474t7t4777777777777777774t7t4747477t774t77477t7747777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77t77477t7t7t474777t47474747t4t4t4t44t777t4tt7t474t774t7t474t7t474t77777777777777777t474t7t474t7t4744t47774t47774t477t7t7t7t7t7t7t7t774t47774t47774t774t47774t47774t7t4t777t4t777t4t4t47774t47774t4747774t47774t47774t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<.<.<.<#.+<+<..+<+<.<#.#.+<#.#.+<.<.<#<#.#.+<..+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai477t4t777t4t77474t777474t77774t7t474t7t477t477t477t4777774t7t7t7t4t4t4t4tt7477iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt747774t7tt4t777t477t4477t477t7474t777474t777777774t7t474t77777t477t477t477t474t7t474t77774t7t7774t7t774t47774t477t477t477t477t7t774t47774t7t7t7t774t47774t7t7t777t4t77474t7777774t7t774t4777474t47774t7t774t477747t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<+.#<.<..#<+<+..<+<+<..#.#<+.#.#<+<.<.<+.#.#<+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774t77474t77477t7t474tt777t4t47774t77774t774t774t774t7t4t4777474t777777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t77477474t774t77t774t7747t7t474tt777t4t4t4t47774t777t4t474t774t774t774t77774t777t4t477744t7t47477t774t7t774t774t774t774t47477t774t7t474747477t774t7t4747474t77477t7t474t4t7t47477t774t7t7t774t7t47477t774t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<#<+<...<#<#...#<+<+<.<.<+<..#<#.+<.<+<..#+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t47477t477t4t7t7747747774t4t7t477t47777t4777777t47777777777t7t47t7iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47t7tt4744t477t4tt7t7747747774t4t4t4t777t47774t4t777t4777777t47777t477t474t4t777t77t77474t477t477t7t477t7t7t477t77474t7t477t774747474t7t477t7747477t477t4t7t7747777t77474t477t477t477t4777474t7t477t77474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+..<+<#<+..<+<+<#..<+.#<.<#..<+<.<+.#<#..<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t777t4t774t7747477t4tt7t4777774t774t7t474t7t4t474t7t4t4t4t474t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747t7t77t7747747477t4tt7t477777777t474t7t47777t474t7t4t474t7t474t774t77777t4744t477t7t774t774t47774t4747774t477t7t47774t477t7t7t7t47774t477t7t4t774t7747477t4t4t477t7t774t774t774t774t7t7t47774t477t7t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..+<.<#..<.<#<#.#..<+.+<.<.<#<+<#.#.+<.<.<+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t777t4t77474747477t4t777474t7t47777777774t7t474t4t7t474t477tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7477t7t77t4t777474t7t477t474t7t474t7t474t7t474t4t7t474t777777777t474t7t7774t477t7t7t7t774t4777474t47774t47774t47774t477t47774t47774t4777474747477t4t7777774t477t7t7t7t7t7t7t7t7t47774t47774t47774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<<+<+.#<.<.<+.#.#<.<#<+<+<...<+.#.#<#<.<.<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4i7474t77477t7t7t7t4t77474tt77774t7t4t4t4t47774t7777774t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t74t77474tt77774t774t77774t77774t77774t7777774t777t4t4t4t474t777744t7t774t474747477t774t7t7t774t7t774t7t774t7t774t774t7t774t7t774t7t7t7t7t4t77474t4t7t774t4747474747474747774t7t774t7t774t7t7t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+..#<#.+<#.+<.<+<.<#<..#.#<+.+<.<+<..+<#.+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t47477t4t7t7t7t777t4747747777t47t7t7t7t77t77t7t44747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t47777777t4777777t77t7t7t447777t47777t47777t474t4t4t4t7t47777t77t7t47774747474t477t7t477t7t477t7t477t7t7t477t7t7t477t7t7t477t7t7t7t7t777t4747777t7t4777474747474747474t477t7t477t7t47774747474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<.<+.#<+..<+<.<+.+<#.#..<#<+.+.#<+<.<.<+<<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t777t4t77474747474t777t4tt7t474t747474747744t474qtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t474t7t4t4744t474777t7t474t7t474t7t474t77777777774t7t4744t47774t7t7t7t7t774t47774t47774t47774t4747774t4747774t4747774t47474747474t777t4t4t47774t7t7t7t7t7t7t7t7t774t47774t47774t7t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#...+<.<.<#<#.#.+<...<+<+<#<.<#<.<..#.+<#.#+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47tt777t4t7747477t477t47474t777474t777777t4777777i77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t474t4t7t777474t4474t77774t7t474t77777t477t4777774t7t7774t7t7t477t477t7t774t47774t7t774t4777474t4777474t4777474t4777477t477t47474t7777774t7t7t477t477t477t477t7t774t47774t7t7t477t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#+.#<#<+<.<.<+.#.#<+<#<.<.<+..<.<#<.<#.#<+.#..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777474t77477t7t4t774t777t7t474tt777t4t44t774t44iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77777744t7t7t77t777t4t47774t777t4t474t774t7t4t477744t7t4747774t774t47477t774t7t47477t774t7t7t774t7t7t774t7t7t774t7t4t774t777t7t474t4t7t4747774t774t774t774t47477t774t7t4747774t774t774itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<..#<#.+<.<+<..#<.<#.+<.<#.+.+<#<+<.<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t77477t474t7t77477t474t7t774774777777777444aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4777t477t4474t4t777t47774t4t777t47774t4t777t77t77474t7t477t77474t7t477t77474t477t477t477t477t477t477t477t4777477t474t7t7747777t77474t7t477t7t7t477t77474t7t477t77474t7t477t7t7t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#<#..<+<.<+.#<#..<+<.<.<+<+.#<.<+..<+.#<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaat747477t4t777t47477t4t777t47477t4tt7t4t7444aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t774t77t77777t474t7t47777t474t7t47777t4744t477t7t47774t477t7t47774t477t7t774t774t774t774t774t774t774t774t7t4t777t47477t4t4t477t7t47774t4747774t477t7t47774t477t7t47774t474777747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<#.#.+<.<.<+<#.#.+<#.#<#.+.+<..+<.<.<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477t4t777t4t777t4t777t4t777t4t77747774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7777t474t7t474t7t474t7t474t7t474t7t7774t47774t47774t47774t47774t477t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t777t4t777t4t7777774t47774t4777474t47774t47774t47774t47774t4777474t47t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.<+.#.#<#<.<.<+.#.#<+.#...#<#<+<#<+<+<..++.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4t77474t77474t77474t77474t77474tiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4i474t77774t77774t77774t77774t777744t7t774t7t774t7t774t7t774t7t774t47474747474747474747474747474747474t77474t77474t4t7t774t7t774t7t7t774t7t774t7t774t7t774t7t774t7t7t7774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<#.+<.<+<..+<#.+<.<+<.<.<+<+<.<..#<..#.#<+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaat4t4t77t474777t4t477t4t4777t7t4477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7477t47477t4747777t7t477t7t4t47477t47477t47477t4747777t7t4777474747474747474747474747474747477t47477t47477t47477t47477t4747777t7t477t7t477t7t477t7t477t7t477t477t7t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+..#<#<..#<.<+<.<#<..#<.<.+<#<#<.<#<.<..+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaat7777774t777t4t7477t77477t7744777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaati4t777t4t777t4t4t47774t4777777t4t777t4t777t4t777t4t4t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t4t777t4t777t4t777t4t777t4t777t4t4t47774t47774t47774t47774t47774t774t47774t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<<+<..+<+<.<#.#.+.+<+<.<##<....+<..+<+<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaa7t477t477474t7777t774t4t7747t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777474t7777774t7t774t4t4t77474t777t4t77474t7777774t7t7t477t477t477t477t477t477t477t4777474t777t4t77474t777t4t77474t7777774t7t774t47774t7t774t47774t7t7t7t774t477744t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.+<+..<+<+<..#.#<.<+<+<..<.<+<+.#<+.#.#<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaa774t774t77t7t474t74t47777t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t474t4t7t47477t7777477t7t474t77477t7t474t4t7t4747774t774t774t774t774t774t774t774t7t7t474t77477t7t474t77477t7t474t4t7t47477t774t7t47477t774t7t474747477t774t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<#<#...#<+<+<.<#...#<++<.<#.+<#.+<.<#.+<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaat7777t4777777774777t4t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7777t4777474t7t4t474t7t777t477t4t7t7747777t77474t7t477t7t7t477t7t7t477t7t7t477t7t7t77477t474t7t777t477t4t7t7747777t77474t477t4777474t7t477t774747474t7t477t77474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<+.#<+<#...#<.<+<+<#...<+<+..<+.#.#<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaa747t474t7t4t4t47t4t74777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t774t7t7t4777777t47474t774t7747477t4t4t477t7t47774t4747774t4747774t4747774t4747477t4t777t47474t774t7747477t4t4t477t7t774t774t7t7t47774t477t7t7t7t47774t477t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<#.+..<+<+<.<#.#..<+#<#..<#<.<.<+<.<#<<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaa474t4t7t474t477t77777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaati7t47774t4t4t777t47474747477t4t7777774t47774t4777474t4777474t4777474t4777477t4t777t4t777t47474747477t4t7777774t477t7t7t7t7t47774t47774t477t47774t47774t477t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<....#<#<.<+<+.+.#.#<.<<#<..#<#<.<+<.<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaitt7777774t777t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t7777474t777t7t7t7t4t77474t4t7t774t7t774t7t7t774t7t7t774t7t7t774t7t4t77474t77474t777t7t7t7t4t77474t4t7t774t47474747774t7t774t7t774t774t7t774t7t774t4747t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.#<+<+<.<.<#..<#<.<+<.<#..+<+<..+<#.#.+<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaa477t7t4t474774744777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t77t7t4t474747474747777t7t7t477t7t477t7t477t7t477t477t7t477t7t4777477t4747477t474t7t7t7t777t4747777t7t47774747474t7t477t7t7t477t7t7t477t7t7t477t77474747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<#<#<.+<.<.<+<..#<#<..<+.#<+.#<+..<+.#<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaa774t4777777t4tt77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4777777t7t7t7t7t4t4t4747774t47774t47774t47774t774t47774t47774t7t4t777t7t4t777t474747474t777t4t4t47774t7t7t7t7t47774t4747774t4747774t4747774t477t7t7t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##<....+<.#.+<#.#<+<..+<+#.+<.<.<.<#<#.+<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaa4t7t774t4t4t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt474t477t477t777777474t47774t7t774t47774t7t7t7t774t47774t7t7t777t4t7t777t4t777t477t47474t7777774t7t7t477t47774t4777474t4777474t4777474t47774t477t47tt7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+<+.##.#<+.#.+<+..<+<<+..<.<+.#<#<+..<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaat7t47477t77774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t774t774t474t4t7t7t774t7t47477t774t7t474747477t774t7t4747474t7747474t77474t774t777t7t474t4t7t4747774t774t7t774t7t7t774t7t7t774t7t7t774t7t774t7774477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<#.+<<+<.<.<+..<#<#...<#<+<#.+<...<#<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaa7777t7t7t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4777t77777t477t477t4777474t7t477t774747474t7t477t7747477t477t477t477t47477t474t7t7747777t77474t7t477t7t477t477t477t477t477t477t477t477t7t47t4t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<+...<+.#<.<#<.<+.#<<#<...<+.#<+<#<.<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaa7t4t4474t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t474t4t774t774t774t7t7t47774t477t7t7t7t47774t477t7t4t774t774t774t777t4t777t47477t4t4t477t7t47774t47774t774t774t774t774t774t774t774t47777477t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#..<#<.+<.<.<#<.<#<#.+..+<#<#.+<.<..+<++<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaa77477t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t7t7t7t7t7t7t7t47774t47774t477t47774t47774t4777474747474747474t777t4t777t4t7777774t47774t47774t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t774t47t77477t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#<##<+<+<..+<....#<<+.#<#<.<.<.<+.#.#.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaa74t4t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47474747474747774t7t774t7t774t774t7t774t7t774t7t7t7t7t7t7t7t7t474t77474t77474t4t7t774t7t774t7t474747474747474747474747474747477t7774t4t774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#+<+<..<..#.#<+.#<+<+<.#.+<..+<#.+<#.+<.<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaa7t477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77474747474t7t447777t47777t77t7t477t7t477t7t7t7t7t7t7t7t7t77477t47477t4747777t7t477t7t477t774747474747474747474747474747474t7t477t7t477t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+#..<.<+<.<+<+<#.<+.#.#<+.#<.<#<..#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaa47774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t7t4777t7t474t7t4744t47774t47774t4747474747474747477t4t777t4t777t4t4t47774t47774t477t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47774t47774t47774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<<+<#<#..<#....<+.<.<+<.<.<#.+.+<+<.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaatit7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47774t4474t77774t7t7774t7t774t4777477t477t477t477t4t777t4t77474t7777774t7t774t47774t477t477t477t477t477t477t477t47774t47774t7t774t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<.<..<+.+.#<+.#<#<.<<.<+<.<.<#<+.+.#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaa7774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t7t77t777t4t477744t7t47477t774t7t4t774t774t774t77474t77477t7t474t4t7t47477t774t7t774t774t774t774t774t774t774t774t7t774t7t47477t774t7t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+#.+<.+<.<#.+<#.+<.<#+<#.#.+<+..<#<.<#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aat47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7i4t477474t4t777t77t77474t477t4777477t4747477t47477t477t4t7t7747777t77474t477t477t7t477t7t7t477t7t7t477t7t7t477t7t477t4777474t7t477t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.##<+.+.#<..#<#<...#<.<+.#<..+<+.#<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"a7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774tt77777t4744t477t7t774t774t7t4t777t7t4t777t4t774t7747477t4t4t477t7t774t774t47774t4747774t4747774t4747774t47774t774t7t7t47774t477t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.+<<.<#<.<.<+<..+<+.<#.#.+<+<#<.<.<#.+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77tt7t474t7t7774t477t7t7t7t7t777t4t7t777t4t77474747477t4t7777774t477t7t7t7t774t4777474t4777474t4777474t47774t7t7t7t7t47774t47774t47ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<...<.<#<.<+<+..<+<<#<+<+...#<.<.<+<+.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t777744t7t774t47474747474t7747474t77477t7t7t7t4t77474t4t7t774t474747477t774t7t7t774t7t7t774t7t7t774t7t47474747774t7t774t7t7774477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<#.+.+<#..<#<#..+..<.<#<.<#.+<#..+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477i4777t7t4774t4t4t4t77t47477t47477t4t7t7t7t777t4747777t7t47774747474t477t7t477t7t477t477t7t477t7t47774747474t477t7t47t4t477t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..++.#<..#<+.#<+.#<<#<.<..+<+.#<+.#.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt74t47774t777777774t777t4t777t4t77474747474t777t4t4t47774t7t7t7t7t774t47774t47774t774t47774t47774t7t7t7t7t774t47777477t774t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<<<#.+<+<.<.<.<#.+..+<+<#<#.+<.<.<<#.#.+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774tt7t77t477t477474t777t4t7747477t477t47474t7777774t7t7t477t477t7t774t47774t7t7t7t774t47774t7t7t477t477t7t774t47t774t4t477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+...#<+<+.#<.<..#<<+.#.#<.<+..<.<++.#.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474774t774t77t7t474t77477t7t4t774t777t7t474t4t7t4747774t774t47477t774t7t474747477t774t7t4747774t774t47477t7774t47777t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<...<#.+<#<+<.#.+<.<#..<#<+<#.<.<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat74t777t4777t7t77477t474t7t77477t474t7t7747777t77474t7t477t77474t7t477t774747474t7t477t77474t7t477t77474t7t47t4t77774t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<#<+.#<...<+<<+.#.#<+<#<...<++.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t474t7t447477t4t777t47477t4t777t47477t4t4t477t7t47774t477t7t47774t477t7t7t7t47774t477t7t47774t477t7t47777477t4t477t7t7t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#..<.<#.+<+<#...<.<+<.<..+<#<#.<.<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t474t77t4t777t4t777t4t777t4t777t4t7777774t47774t47774t47774t47774t477t47774t47774t47774t47774t47774t47t77477t7747474t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<+.#<.<.<.<+<+.#<<.<+<.<.<+.#<#<.#<.<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7774t77474t77474t77474t77474t77474t4t7t774t7t774t7t774t7t774t7t774t774t7t774t7t774t7t774t7t774t7t7774t4t774t4t7t77774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<#.+<#..<#.++<#.#.+<#.+<..+<.+<#.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t777t47777t47777t77t7t477t7t477t7t477t7t477t7t477t7t477t7t477t7t4t47477t47477t47477t47477t47477t47477t47477t4747747777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<+.#<+.+.#<.#<.<#<..#<+.#<.<#<.+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t7t474t7t4744t47774t47774t47774t47774t47774t47774t47774t4777777t4t777t4t777t4t777t4t777t4t777t4t777t4t777t4tt7t4itaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.#.+<.<.<#<.<..<#.+.+<+<.<.<#.+.+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t477477774t7t7774t7t774t47774t7t774t47774t7t774t47774t7t774t4t4t77474t777t4t77474t777t4t77474t777t4t77474t777474t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+..<#<+<.<.<#<.<<#<+.+.#<.<.<#<+.+.#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait7tt4t477744t7t47477t774t7t47477t774t7t47477t774t7t47477t7777477t7t474t77477t7t474t77477t7t474t77477t7t474tt7777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<.<..#<#.+.+<#+..<#<.<#.+<+..<#<.<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77777t77t77474t477t4777474t7t477t77474t477t4777474t7t4t474t7t777t477t4t7t77477t474t7t777t477t4t7t7747747774t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<#+.#<.<+.<..+<+.#<.<#<..+<.<+.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4744t477t7t774t774t7t7t47774t477t7t774t774t7t7t4777777t47474t774t7747477t4t777t47474t774t7747477t4tt7t477774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<..<#.+.+<.+<#<.<.<#.+.+<#<+<.<.<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7774t477t7t7t7t7t47774t47774t477t7t7t7t7t47774t4t4t777t47474747477t4t777t4t777t47474747477t4t777474t7t477474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<#<.<+..#<#<+<.#<.<.<+<+.+.#<...<#<#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7744t7t774t47474747774t7t774t7t774t47474747774t7t7777474t777t7t7t7t4t77474t77474t777t7t7t7t4t77474tt77774t77t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<.<<+<.<..#.<#.+<#..<#<.<#.#<+.+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t77t7774747474t7t477t7t7t477t774747474t477t7t4t47477t4t7t7t7t77477t4747477t474t7t7t7t777t4747747777t474t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.#+<#.#..<<#<.<.<#<+.#.#<+<#<.<..+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47744t7t7t7t7t47774t4747774t477t7t7t7t774t4777777t4t77474747477t4t777t7t4t777t474747474t777t4tt7t474t77777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<..<+<+<#+.+<#.+..<.<+<.<..+<+<#<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47t477t47774t4777474t47774t477t477t7t774t4t4t7747477t477t4t777t4t7t777t4t777t477t47474t777474t77777t477tt4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<++..#<.<.<+..+.#<+.+<.<+<.<.<+.#.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77774t774t7t774t7t7t774t7t774t774t47477t7777477t7t4t774t77474t7747474t77474t774t777t7t474tt777t4t474t774777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<<+<.<#.+<.#<.<.<#<+<#.#.+<#.+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t477t7t477t477t477t477t7t477t77474t7t4t474t7t77477t47477t477t477t477t47477t474t7t7747747774t4t777tt47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<+<.<.<+<<.<+.#<..#<.<+.#<+.#.<++<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t47774t774t774t774t47774t477t7t4777777t47477t4t777t4t774t774t774t777t4t777t47477t4tt7t47777t474777tt474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+<#.#.+<#.#+<.<.<#..<#.#.+<.<.<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7t7t7t7t7t7t774t47774t47774t4t4t777t4t777t4t77474747474747474t777t4t777t4t777474t7t474t7tt4t74t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.#.#<+.#...<#<#<+<#<+<+..<.<++.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4747474747474747477t774t7t774t7t7777474t77474t77477t7t7t7t7t7t7t7t474t77474t77474tt77774t7777477477774t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<+<.<.<+#<+.+..<+..<.<#<+<#.<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t4t4t4t4t4tt7t477t7t477t7t4t47477t47477t474t7t7t7t7t7t7t7t777t47477t47477t477t47477t47477t47t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#<..#<.<.<+<+<#.+<#.#..<..<+<+..<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477777777777747774t47774t4777777t4t777t4t777t47474747474747474t777t4t777t4t774t777t4t777t4t7774t7t474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+<+<.<#<#....<+..<+<+<##<#..<#<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t477t4774t47774t7t774t4t4t77474t777t4t777t477t477t477t47474t777t4t774747474t777t4t774747777t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<+<..+.#<#<.<#<.<.<+.<#<..#<#+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t774t77t774t7t47477t7777477t7t474t77474t774t774t774t777t7t474t77477t7t7t7t474t77477t7tt4t4474t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<#...#<+<#.+<.<#<.<#.+<...+<+<...#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t44777t477t4777474t7t4t474t7t777t477t47477t4747477t474t7t77477t474t7t7t7t77477t474t7t7t7t77477477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<#...#<#<..+<.<.<+<<+.#<.<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t7t4774t774t7t7t4777777t47474t774t777t4t777t7t4t777t47477t4t777t474747477t4t777t474747477t4tt7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.#..<+<+<..+<+.#.+<#.##.+<+<.<<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t7t7t7t7t47774t4t4t777t474747474t777t4t7t777t4t777t4t777t4t777t477t4t777t4t777t477t4t777474ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+.#.#<.<+<+..<+<#.#<+.#.<+....<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt47474747774t7t7777474t777t7t7t7t474t7747474t77474t77474t77474t774t77474t77474t774t77474tt77774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<#..<#<#..<+<.<.<+.<#<#<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77474t477t7t4t47477t4t7t7t7t777t47477t47477t47477t4747477t4747477t4747477t4747477t4747477t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.#<..#<.<+<.<#<..#<.<.<+<+<#..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t774t4777777t4t77474747474t777t4t777t4t777t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7t4t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<+<.<#.#.+.+<+<.<#<#....<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4t7t7t774t4t4t7747477t477t47474t777t4t77474t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+<..#.#<.<+<+<..+.#<#<.<+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747477t7777477t7t4t774t777t7t474t77477t7t474t7747474t7747474t7747474t7747474t7747474t774747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<#...#<+<+<.<#...#<+<#.+<.<#.#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t74t7t4t474t7t77477t474t7t77477t474t7t777t477t477t477t477t477t477t477t477t477t477t477t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.#;<++<#...#<.<+<+<#...#<#<...+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777777t47477t4t777t47477t4t777t47474t774t774t774t774t774t774t774t774t774t774t774t774t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<..<+<+<.<#.#..<+<+<..+<+<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t4t777t4t777t4t777t4t777t4t777t47474747474747474747474747474747474747474747474747474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<.#<.<+<+.+.#.#<.<+<+..<+<+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47777474t77474t77474t77474t77474t777t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<<.<#..<#<.<+<.<#..<#<#..<#.<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t4747777t7t4t477t4t47t47477t4t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<.<+<.<.<+<.<+.#<+.+.#<+.#<..#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t7t7t4747477t77477t7777t4t7747474747474747474747474747474747474747474747474747474t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<..#.+<#.#.+<.<.<#<.<.<#.+<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t7t7t774t4t7747t4t7747477t477t477t477t477t477t477t477t477t477t477t477t477t477777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<#.#<+.#.#<+<.<.<#<.<..#<+<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4777474t47777t4t777477t7t4t774t774t774t774t774t774t774t774t774t774t774t774t774t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<.<.<+<..#<#.+.+<#<+<...<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t7t477t77774t47t474t7t77477t4747477t4747477t4747477t4747477t4747477t474747777t74taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.<+.#<.<#..<+<.<#<...<+<#<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t774t4t477t7777t47477t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7t4t777t7t4t4t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#;.+<.<.<#<+<#.#.+.+<+<#..<.<#+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4t477t7747t4t777t4t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7t777t4t7t777777474t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.#<+<+<...<+.#.#<.<+<+.#<+<....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7777t774t4t777474t77474t7747474t7747474t7747474t7747474t7747474t7747474t4t7t7t77taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<..#.#<+.+<.<+<.<#..<#.+.#<+#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t474777777tt47477t47477t47477t477t47477t47477t477t47477t47477t477t474777t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#..<#<.<+<.<#<..#<.<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7t7t4t474777t4t777t4t777t4t774t777t4t777t4t774t777t4t777t4t774t777t4t7477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+<+<#<.<#.#.+.+<+<.<#<#..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747474t4t7tt4t77474t777t4t774747474t777t4t774747474t777t4t774747474t7777t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+.+<..#.#<.<+<+<..+.<+.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t777777477477t7t474t77477t7t7t7t474t77477t7t7t7t474t77477t7t7t7t474t74t477777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<..#<+<+<.<#...#<+<#.+<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4477tt477t4t7t77477t474t7t7t7t77477t474t7t7t7t77477t474t7t7t7t774777t4t777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+<#...#<.<+<+<#...#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774774t7747477t4t777t474747477t4t777t474747477t4t777t474747477t4t7477t4t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<#.#..<+<+<.<#.#..<+<+<.<#.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474747477t4t777t4t777t477t4t777t4t777t477t4t777t4t777t477t4t7777t77477tt7ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.#.#<.<+<+.+.#.#<.<+<+.+.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7t4t77474t77474t774t77474t77474t774t77474t77474t774t77474t74t4t7744747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<.<#..<#<.<+<.<#..<#<.<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait77777477t47477t47477t47477t47477t4747477t47477t474777t4t477t4t477t4t77777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..<+<.<+.#<.<+<.<#<..#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t47t4t777t4t777t4t777t4t777t4t777t7t4t777t4t777t4t7477t77477t77477t4t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<<#.#.+<.<.<#.#.+.+<+<.<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7tt777t4t77474t777t4t77474t777t4t7t777t4t77474t7777t774t4t77477t77477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#.#<+<+<..#.#<.<+<+<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t77477t7t474t77477t7t474t7747474t77477t7t474t74t47777t4t774t4t774t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<.<+<..#.#<+<+<.<#...#<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477tt4t7t77477t474t7t777t477t477t477t4t7t774777t4t7777477t477t4t477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+.#<#..<+<#...#<.<+<+<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7747747477t4t777t47474t774t774t774t7747477t4t7477t4t4t774t77477t774777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<.<+<#..<+<+<.<#.#..<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747477t4t777t4t777t4747474747474747477t4t7777t77477t4t4t4t4t77477t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<.<+.#<.<+<+.+.#.#<.<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai7t4t77474t77474t777t7t7t7t7t7t7t7t4t77474t74t4t77477777777t4t774t4t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..+<#.+<.<.<#..<#<.<+<.<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4t47t47477t4t7t7t7t7t7t7t7t777t474777t4t477t77777777477t4t477t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+<+<.<.<+<..#<#<..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7477t7777t4t7747474747474747474t777t4t7477t774t4t4t4t4t77477t774774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<#.#.#.+<#.#<+<..+<++.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7747t4t7747477t477t477t477t47474t7777t774t4t477t477t4t4t77477t777iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<+.#.#.#<+.#.+<+..<+<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t777477t7t4t774t774t774t777t7t474t74t47777t774t7747777t4t774t47taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.+<.<+<+<.<.<+..<#<#..<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t474t7t77477t4747477t474t7t774777t4t77774t477t4t77774t477t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.<.<+.#<.<#<.<+.#<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t7t47477t4t777t7t4t777t47477t4t7477t4t477t77477t4t477t77477t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<#.+<.<.<#<.<#<#.+<.#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t777t4t777t4t7t777t4t777t4t7777t77477t77477t77477t77477t7747t4iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<++..#<+<+<..+<....#<++..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474t77474t7747474t77474t77474t74t4t774t4t774t4t774t4t774t4t7774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+<..#.#<+.#<+<+<..<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t47477t474777t4t477t4t477t4t477t4t477t4t477t4t477t4t477t4t47t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<<.<#<.<..+<..+.+<#<..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t777t4t7477t77477t77477t77477t77477t77477t77477t77477t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<..+<+<#<+<#<#<..++<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7474t7777t774t4t77477t774t4t77477t774t4t77477t774t4t7747t444aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+.#.#<..#<.<.<+.<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t474t74t47777t4t774t47777t4t774t47777t4t774t47777t4t7777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#.+<.<#..<#.+<.<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77474777t4t7777477t477t77774t477t4t7777477t477t77774t4777t7t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<+.#.#<+<#<.<.<#<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t4t7477t4t4t774t774t4t477t77477t4t4t774t774t4t477t74t47774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+<.<+.+<#.+.+.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t77477t4t4t4t4t477t77477t77477t4t4t4t4t477t77477774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<+<.<..+.#<+.+.+.#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t74t4t77477777777t774t4t774t4t77477777777t774t4t74t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#.+<#<.<.<#<#<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4t477tt7t7t7t74t477t4t4t477t4t77777777477t4t47t47477t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<.<+.#<+.#<.<.<+..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477t7744747474777t7747777t77477t4t4t4t4t77477t7777t4t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<.<#.+<.<.<#.+<.<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait74t4t77t477t477477t7777477t77477t477t4t4t7747t4t7747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<#<.<.<.<#<+..<#.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t774t77t4t774t4t4t774t4t774t7747777t4t777477t7t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....+<#.+<+..<#<+.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t4t7477t474477t477t477t477t4t477t4t77774t47t474t7t77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#<.<.<#<..+.+<#.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4t777tt774t774t774t77477t77477t4t477t7777t47477t4ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.+<#.+.+<#<#<..<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t777t4t74t4t4t4t4t4t4t4t77477t77477t7747t4t777t4t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.#<+.+.#<.<.<+.+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t77477777777777777777t4t774t4t774t4t777474t77474t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<.<#.+<.<#<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t4747474747474747474477t4t477t4t477t477t4t477t4t47qaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.<<+..#<+..<+<+..<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat777t7t7t7t7t7t7t7t7tt77477t77477t774t77477t77477t74iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+.+<+<.<#<#..<#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat474t477t477t477t4774t4t77477t774t4t4t4t77477t774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..+.#<.<.<#<..#<#.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t774t774t774t774t7777t4t774t477777777t4t774t477777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#<.<#.+<..+<+<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t477t7t7t477t777774t477t4t777777774t477t4t7777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<+.#<+.#<.<+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47774t4747774t47t4t477t77477t4t4t4t477t77477t4t447aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#.+<#.+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777474t47774477t77477t77477t477t77477t77477tt77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<+<+..<+....<#<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t7t774t7tt774t4t774t4t774t774t4t774t4t774474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.<#<.<#<#<+..<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt4777t7t4774t477t4t4t477t4t4t477t4t4t477t4t77t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<+<#.#..<<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t47774t77t7747777t7747777t7747777t774774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<#....<+<+<##.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477774t7t777477t7777477t7777477t7777477t77747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+.<+#<.<.<+.<+.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7t4747t4t774t4t4t774t4t4t774t4t4t774t47t7tt4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<#.<<.<#.+<..<#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77474477t477t477t477t477t477t477t477t74744t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<.<+<+<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477t7tt774t774t774t774t774t774t774t7747t7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#.+<#.#..+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4774t4t4t4t4t4t4t4t4t4t4t4t4t4t4t4tt47774t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+<#.#<+.#.#<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77777777777777777777777777777777774t7t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+<.<.<+<..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7747474744t4t4t4tt7t7t7t7t7t7t7t7t7t477t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+..#<.<+<.<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t7t77777777474747474747474747774t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<+<.<#.#.+<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat477t4777t477t4777t477t477t477t474t47774t7ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<..#.#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t774t74t774t74t774t774t774t777t774t7t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.#<+<+<.<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t7777t47777477t4747477t474t477t4777474iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.#..+.<+.#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7747t474t7t47t4t777t7t4t777t774t774t7t7t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<+<<.+<.<.#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t7t474tt777t4t7t777t4t7t7t7t7t7t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.<+.#<+<+<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa477774t777474t7747474t774747474747774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.<..#.#<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77777t4777t47477t47477t477777777t477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<.+<#<#<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t474t74t777t4t777t4t77t4t4t4t4774t47t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.#<....+<#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t77777474t777t4t77474477t477tt7t777477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<+<+.#<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t47t7t474t77477t7tt774t7744747t4t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<.<#.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaait7tt7t77477t474t7t74t477t4t77774t477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<..<+<+..<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t747477t4t777t474777t77477t4t477t7744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<#..<#<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4t777t4t777t477477t77477t77477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<..#<#<+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t77474t77474t77t4t774t4t774t4t774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<+<...<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t4747777tt474477t4t4747777t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.#<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t7t474777tt77477t7t7t474t774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+<.<.<..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747774t7tt4t74t4t7747474t777777774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<+..<<.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4777477477777t4t7t777t4t4t4t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<.+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7tt477t477774t4747774t4tt7t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.<..#<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7774774t77t4t477t7t7t477774747t44iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<.<+<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774747474477t7747474t7t4777t4t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t7tt774t4t7t77774t74t77474t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<#.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4tt7t74t474777777t47777477t4747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<<.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474777t7t7t4t474t7t47t4t777t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..<+.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t47747474t4t7t474tt777t4t7777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<...<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77t4t7t7777774t777474t7747t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<<.<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7447477t477t477t4777t477t4477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..<+.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7t774t774t774t74t774t77t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4777777777777777747474744t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.+.<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t4t4t4t4t4t47t7t7t7t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.+<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t7t77474747474747474747477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa747477t7t7t7t7t7t7t7t7t7t774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t4t477t477t477t477t477t44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777774t774t774t774t774t77t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4t7t477t7t7t477t7t7t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47774t4747774t4747774t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4777474t4777474t47774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774t7t7t774t7t7t774t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777t477t7t477t7t47777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t774t47774t47774t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t7t7t774t47774t7t77474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74747477t774t7t47477t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7474t7t477t774744t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t47774t477t7t7777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7774t47774t4777t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t7t774t7t774t74t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat4777t4t4777t7777t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4t7477t74t47t474t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4t774777744t7t474taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777t4t74t7t7774t777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774777t4777t477t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t74t774t74t774t7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t7t7t77777777747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474747t4t4t4t4t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t7474t7t7t7t747taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t7t47474747t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47777t477t44t4taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t774t777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa777477t474t7t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t4t777t47477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4t777t4t777t444aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa474t77474t777taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai4t477t4t477t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77t77477t7747aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa74t4t77477t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7777t4t774t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatt7477t477t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt774t774taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t4t4t4t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai77777777t7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47t74t4t4t4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7477777777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47t47747iaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t77t77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t77t477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7t4774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa774t7t74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t474777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t744aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa47477taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t4777aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774ttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7t7t47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7tt7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7474aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai477aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat774aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-};
diff --git a/packaging/org.eclipse.sirius.server.product/pom.xml b/packaging/org.eclipse.sirius.server.product/pom.xml
deleted file mode 100644
index 0cb6bfe..0000000
--- a/packaging/org.eclipse.sirius.server.product/pom.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-Copyright (c) 2018 Obeo.
-This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v2.0
-which accompanies this distribution, and is available at
-https://www.eclipse.org/legal/epl-2.0/
-
-Contributors:
-    Obeo - initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.product</artifactId>
-  <packaging>eclipse-repository</packaging>
-
-  <properties>
-    <product-id>org.eclipse.sirius.server.product</product-id>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-p2-director-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <executions>
-          <execution>
-            <!-- install the product for all configured os/ws/arch environments 
-              using p2 director -->
-            <id>materialize-products</id>
-            <goals>
-              <goal>materialize-products</goal>
-            </goals>
-          </execution>
-          <execution>
-            <!-- (optional) create product zips (one per os/ws/arch) -->
-            <id>archive-products</id>
-            <goals>
-              <goal>archive-products</goal>
-            </goals>
-          </execution>
-        </executions>
-        <!-- (optional) customize the root folder name of the product zip -->
-        <configuration>
-          <products>
-            <product>
-              <id>${product-id}</id>
-              <rootFolder>sirius-server</rootFolder>
-              <rootFolders>
-              	<macosx>sirius-server.app</macosx>
-              </rootFolders>
-              <archiveFileName>sirius-server</archiveFileName>
-            </product>
-          </products>
-        </configuration>
-      </plugin>
-      <!-- workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=349421 -->
-      <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>2.5</version>
-        <executions>
-          <execution>
-            <id>copy-resources</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/products/${product-id}/icons/</outputDirectory>
-              <nonFilteredFileExtensions>
-                <nonFilteredFileExtension>ico</nonFilteredFileExtension>
-                <nonFilteredFileExtension>xpm</nonFilteredFileExtension>
-                <nonFilteredFileExtension>icns</nonFilteredFileExtension>
-                <nonFilteredFileExtension>png</nonFilteredFileExtension>
-                <nonFilteredFileExtension>gif</nonFilteredFileExtension>
-                <nonFilteredFileExtension>bmp</nonFilteredFileExtension>
-              </nonFilteredFileExtensions>
-              <resources>
-                <resource>
-                  <directory>./icons</directory>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-</project>
diff --git a/packaging/org.eclipse.sirius.server.product/sirius-server.product b/packaging/org.eclipse.sirius.server.product/sirius-server.product
deleted file mode 100644
index f0bb376..0000000
--- a/packaging/org.eclipse.sirius.server.product/sirius-server.product
+++ /dev/null
@@ -1,356 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="sirius-server" uid="org.eclipse.sirius.server.product" application="org.eclipse.sirius.server.application.SiriusServerApplication" version="7.0.0" useFeatures="true" includeLaunchers="true">
-
-   <configIni use="default">
-   </configIni>
-
-   <launcherArgs>
-      <programArgs>-console -consoleLog
-      </programArgs>
-      <vmArgs>-Dorg.eclipse.sirius.server.http.port=8080
-#-Dorg.eclipse.sirius.server.https.host=0.0.0.0
-#-Dorg.eclipse.sirius.server.http.host=0.0.0.0
-#-Dorg.eclipse.sirius.server.https.enabled=false
-#-Dorg.eclipse.sirius.server.https.port=8443
-#-Dorg.eclipse.sirius.server.ssl.keystore.path=configuration/keystore
-#-Dorg.eclipse.sirius.server.ssl.keystore.passphrase=password
-#-Dorg.eclipse.sirius.server.cors.enabled=false
-#-Dorg.eclipse.sirius.server.cors.allowed.origins=*
-#-Dorg.eclipse.sirius.server.cors.allowed.headers=*
-#-Dorg.eclipse.sirius.server.cors.allowed.methods=*
-#-Dorg.eclipse.sirius.services.graphql.cost=100
-      </vmArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
-      </vmArgsMac>
-   </launcherArgs>
-
-   <windowImages/>
-
-   <launcher name="sirius-server">
-      <linux icon="/icons/sirius-server.xpm"/>
-      <macosx icon="/icons/sirius-server.icns"/>
-      <win useIco="false">
-         <ico path="/org.eclipse.sirius.server.product/icons/sirius-server.ico"/>
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-      <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
-      <macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</macos>
-      <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
-   </vm>
-
-   <license>
-        <url>https://www.eclipse.org/legal/epl-2.0/</url>
-        <text>
-   Eclipse Public License - v 2.0
-
-    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-    PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR DISTRIBUTION
-    OF THE PROGRAM CONSTITUTES RECIPIENT&apos;S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-&quot;Contribution&quot; means:
-
-  a) in the case of the initial Contributor, the initial content
-     Distributed under this Agreement, and
-
-  b) in the case of each subsequent Contributor:
-     i) changes to the Program, and
-     ii) additions to the Program;
-  where such changes and/or additions to the Program originate from
-  and are Distributed by that particular Contributor. A Contribution
-  &quot;originates&quot; from a Contributor if it was added to the Program by
-  such Contributor itself or anyone acting on such Contributor&apos;s behalf.
-  Contributions do not include changes or additions to the Program that
-  are not Modified Works.
-
-&quot;Contributor&quot; means any person or entity that Distributes the Program.
-
-&quot;Licensed Patents&quot; mean patent claims licensable by a Contributor which
-are necessarily infringed by the use or sale of its Contribution alone
-or when combined with the Program.
-
-&quot;Program&quot; means the Contributions Distributed in accordance with this
-Agreement.
-
-&quot;Recipient&quot; means anyone who receives the Program under this Agreement
-or any Secondary License (as applicable), including Contributors.
-
-&quot;Derivative Works&quot; shall mean any work, whether in Source Code or other
-form, that is based on (or derived from) the Program and for which the
-editorial revisions, annotations, elaborations, or other modifications
-represent, as a whole, an original work of authorship.
-
-&quot;Modified Works&quot; shall mean any work in Source Code or other form that
-results from an addition to, deletion from, or modification of the
-contents of the Program, including, for purposes of clarity any new file
-in Source Code form that contains any contents of the Program. Modified
-Works shall not include works that contain only declarations,
-interfaces, types, classes, structures, or files of the Program solely
-in each case in order to link to, bind by name, or subclass the Program
-or Modified Works thereof.
-
-&quot;Distribute&quot; means the acts of a) distributing or b) making available
-in any manner that enables the transfer of a copy.
-
-&quot;Source Code&quot; means the form of a Program preferred for making
-modifications, including but not limited to software source code,
-documentation source, and configuration files.
-
-&quot;Secondary License&quot; means either the GNU General Public License,
-Version 2.0, or any later versions of that license, including any
-exceptions or additional permissions as identified by the initial
-Contributor.
-
-2. GRANT OF RIGHTS
-
-  a) Subject to the terms of this Agreement, each Contributor hereby
-  grants Recipient a non-exclusive, worldwide, royalty-free copyright
-  license to reproduce, prepare Derivative Works of, publicly display,
-  publicly perform, Distribute and sublicense the Contribution of such
-  Contributor, if any, and such Derivative Works.
-
-  b) Subject to the terms of this Agreement, each Contributor hereby
-  grants Recipient a non-exclusive, worldwide, royalty-free patent
-  license under Licensed Patents to make, use, sell, offer to sell,
-  import and otherwise transfer the Contribution of such Contributor,
-  if any, in Source Code or other form. This patent license shall
-  apply to the combination of the Contribution and the Program if, at
-  the time the Contribution is added by the Contributor, such addition
-  of the Contribution causes such combination to be covered by the
-  Licensed Patents. The patent license shall not apply to any other
-  combinations which include the Contribution. No hardware per se is
-  licensed hereunder.
-
-  c) Recipient understands that although each Contributor grants the
-  licenses to its Contributions set forth herein, no assurances are
-  provided by any Contributor that the Program does not infringe the
-  patent or other intellectual property rights of any other entity.
-  Each Contributor disclaims any liability to Recipient for claims
-  brought by any other entity based on infringement of intellectual
-  property rights or otherwise. As a condition to exercising the
-  rights and licenses granted hereunder, each Recipient hereby
-  assumes sole responsibility to secure any other intellectual
-  property rights needed, if any. For example, if a third party
-  patent license is required to allow Recipient to Distribute the
-  Program, it is Recipient&apos;s responsibility to acquire that license
-  before distributing the Program.
-
-  d) Each Contributor represents that to its knowledge it has
-  sufficient copyright rights in its Contribution, if any, to grant
-  the copyright license set forth in this Agreement.
-
-  e) Notwithstanding the terms of any Secondary License, no
-  Contributor makes additional grants to any Recipient (other than
-  those set forth in this Agreement) as a result of such Recipient&apos;s
-  receipt of the Program under the terms of a Secondary License
-  (if permitted under the terms of Section 3).
-
-3. REQUIREMENTS
-
-3.1 If a Contributor Distributes the Program in any form, then:
-
-  a) the Program must also be made available as Source Code, in
-  accordance with section 3.2, and the Contributor must accompany
-  the Program with a statement that the Source Code for the Program
-  is available under this Agreement, and informs Recipients how to
-  obtain it in a reasonable manner on or through a medium customarily
-  used for software exchange; and
-
-  b) the Contributor may Distribute the Program under a license
-  different than this Agreement, provided that such license:
-     i) effectively disclaims on behalf of all other Contributors all
-     warranties and conditions, express and implied, including
-     warranties or conditions of title and non-infringement, and
-     implied warranties or conditions of merchantability and fitness
-     for a particular purpose;
-
-     ii) effectively excludes on behalf of all other Contributors all
-     liability for damages, including direct, indirect, special,
-     incidental and consequential damages, such as lost profits;
-
-     iii) does not attempt to limit or alter the recipients&apos; rights
-     in the Source Code under section 3.2; and
-
-     iv) requires any subsequent distribution of the Program by any
-     party to be under a license that satisfies the requirements
-     of this section 3.
-
-3.2 When the Program is Distributed as Source Code:
-
-  a) it must be made available under this Agreement, or if the
-  Program (i) is combined with other material in a separate file or
-  files made available under a Secondary License, and (ii) the initial
-  Contributor attached to the Source Code the notice described in
-  Exhibit A of this Agreement, then the Program may be made available
-  under the terms of such Secondary Licenses, and
-
-  b) a copy of this Agreement must be included with each copy of
-  the Program.
-
-3.3 Contributors may not remove or alter any copyright, patent,
-trademark, attribution notices, disclaimers of warranty, or limitations
-of liability (&quot;notices&quot;) contained within the Program from any copy of
-the Program which they Distribute, provided that Contributors may add
-their own appropriate notices.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities
-with respect to end users, business partners and the like. While this
-license is intended to facilitate the commercial use of the Program,
-the Contributor who includes the Program in a commercial product
-offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes
-the Program in a commercial product offering, such Contributor
-(&quot;Commercial Contributor&quot;) hereby agrees to defend and indemnify every
-other Contributor (&quot;Indemnified Contributor&quot;) against any losses,
-damages and costs (collectively &quot;Losses&quot;) arising from claims, lawsuits
-and other legal actions brought by a third party against the Indemnified
-Contributor to the extent caused by the acts or omissions of such
-Commercial Contributor in connection with its distribution of the Program
-in a commercial product offering. The obligations in this section do not
-apply to any claims or Losses relating to any actual or alleged
-intellectual property infringement. In order to qualify, an Indemnified
-Contributor must: a) promptly notify the Commercial Contributor in
-writing of such claim, and b) allow the Commercial Contributor to control,
-and cooperate with the Commercial Contributor in, the defense and any
-related settlement negotiations. The Indemnified Contributor may
-participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor&apos;s responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those performance
-claims and warranties, and if a court requires any other Contributor to
-pay any damages as a result, the Commercial Contributor must pay
-those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot;
-BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
-TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
-PURPOSE. Each Recipient is solely responsible for determining the
-appropriateness of using and distributing the Program and assumes all
-risks associated with its exercise of rights under this Agreement,
-including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs
-or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
-SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
-PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
-EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further
-action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other software
-or hardware) infringes such Recipient&apos;s patent(s), then such Recipient&apos;s
-rights granted under Section 2(b) shall terminate as of the date such
-litigation is filed.
-
-All Recipient&apos;s rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of
-time after becoming aware of such noncompliance. If all Recipient&apos;s
-rights under this Agreement terminate, Recipient agrees to cease use
-and distribution of the Program as soon as reasonably practicable.
-However, Recipient&apos;s obligations under this Agreement and any licenses
-granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement,
-but in order to avoid inconsistency the Agreement is copyrighted and
-may only be modified in the following manner. The Agreement Steward
-reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement
-Steward has the right to modify this Agreement. The Eclipse Foundation
-is the initial Agreement Steward. The Eclipse Foundation may assign the
-responsibility to serve as the Agreement Steward to a suitable separate
-entity. Each new version of the Agreement will be given a distinguishing
-version number. The Program (including Contributions) may always be
-Distributed subject to the version of the Agreement under which it was
-received. In addition, after a new version of the Agreement is published,
-Contributor may elect to Distribute the Program (including its
-Contributions) under the new version.
-
-Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-receives no rights or licenses to the intellectual property of any
-Contributor under this Agreement, whether expressly, by implication,
-estoppel or otherwise. All rights in the Program not expressly granted
-under this Agreement are reserved. Nothing in this Agreement is intended
-to be enforceable by any entity that is not a Contributor or Recipient.
-No third-party beneficiary rights are created under this Agreement.
-
-Exhibit A - Form of Secondary Licenses Notice
-
-&quot;This Source Code may also be made available under the following 
-Secondary Licenses when the conditions for such availability set forth 
-in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-version(s), and exceptions or additional permissions here}.&quot;
-
-  Simply including a copy of this Agreement, including this Exhibit A
-  is not sufficient to license the Source Code under Secondary Licenses.
-
-  If it is not possible or desirable to put the notice in a particular
-  file, then You may include the notice in a location (such as a LICENSE
-  file in a relevant directory) where a recipient would be likely to
-  look for such a notice.
-
-  You may add additional accurate notices of copyright ownership.
-         </text>
-   </license>
-
-   <plugins>
-   </plugins>
-
-   <features>
-      <feature id="org.eclipse.equinox.core.feature"/>
-      <feature id="org.eclipse.equinox.compendium.sdk"/>
-      <feature id="org.eclipse.equinox.executable"/>
-      <feature id="org.eclipse.equinox.p2.core.feature"/>
-      <feature id="org.eclipse.equinox.p2.extras.feature"/>
-      <feature id="org.eclipse.sirius.server.product.feature"/>
-   </features>
-
-   <configurations>
-      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
-      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
-   </configurations>
-
-   <preferencesInfo>
-      <targetfile overwrite="false"/>
-   </preferencesInfo>
-
-   <cssInfo>
-   </cssInfo>
-
-</product>
diff --git a/packaging/org.eclipse.sirius.server.ui.autostart.feature/.project b/packaging/org.eclipse.sirius.server.ui.autostart.feature/.project
deleted file mode 100644
index 796dbed..0000000
--- a/packaging/org.eclipse.sirius.server.ui.autostart.feature/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.ui.autostart.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/packaging/org.eclipse.sirius.server.ui.autostart.feature/build.properties b/packaging/org.eclipse.sirius.server.ui.autostart.feature/build.properties
deleted file mode 100644
index 8abe302..0000000
--- a/packaging/org.eclipse.sirius.server.ui.autostart.feature/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.properties b/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.properties
deleted file mode 100644
index 46d517d..0000000
--- a/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo and others
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-featureName = Sirius Server Auto Start (Experimental)
-providerName = Eclipse Modeling Project
-description = Auto starter for Sirius Server
-copyright=\
-Copyright (c) 2018 Obeo and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
-\n\
-Contributors:\n\
-    Obeo - initial API and implementation\n
diff --git a/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.xml b/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.xml
deleted file mode 100644
index 4982749..0000000
--- a/packaging/org.eclipse.sirius.server.ui.autostart.feature/feature.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.sirius.server.ui.autostart.feature"
-      label="%featureName"
-      version="7.0.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description url="http://www.eclipse.org/sirius">
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.sirius.server.feature" version="6.0.1.qualifier"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.sirius.server.ui.autostart"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/packaging/org.eclipse.sirius.server.ui.autostart.feature/pom.xml b/packaging/org.eclipse.sirius.server.ui.autostart.feature/pom.xml
deleted file mode 100644
index 8f611ed..0000000
--- a/packaging/org.eclipse.sirius.server.ui.autostart.feature/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <!-- Skip feature in Sonar analysis -->
-    <sonar.skip>true</sonar.skip>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.server.ui.autostart.feature</artifactId>
-  <packaging>eclipse-feature</packaging>
-
-    <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho.extras</groupId>
-        <artifactId>tycho-source-feature-plugin</artifactId>
-        <version>${tycho-extras-version}</version>
-        <executions>
-          <execution>
-            <id>source-feature</id>
-            <phase>package</phase>
-            <goals>
-              <goal>source-feature</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-p2-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <executions>
-          <execution>
-            <id>attached-p2-metadata</id>
-            <phase>package</phase>
-            <goals>
-              <goal>p2-metadata</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/packaging/org.eclipse.sirius.update/category.xml b/packaging/org.eclipse.sirius.update/category.xml
index c94eb63..be9c282 100644
--- a/packaging/org.eclipse.sirius.update/category.xml
+++ b/packaging/org.eclipse.sirius.update/category.xml
@@ -1,256 +1,224 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-  <description url="http://www.eclipse.org/sirius">
-    Eclipse Sirius - The easiest way to get your own Modeling Tool.
-  </description>
-  <category-def name="Sirius" label="Sirius">
-    <description>
-      The Sirius Modeling Platform
-    </description>
-  </category-def>
-
-  <feature id="org.eclipse.sirius.runtime" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.aql" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.aql" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.properties.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.workflow.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.ui" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui.aql" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.acceleo" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.samples" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.ui.acceleo" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier" version="0.0.0">
-    <!-- <category name="Sirius" /> -->
-  </feature>
-  <feature id="org.eclipse.sirius.interpreter.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.doc.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.eef" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.properties.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.samples.properties.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.ui.autostart.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui.acceleo" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.product.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.xtext" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.diagram.elk.feature" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ocl" version="0.0.0">
-    <category name="Sirius" />
-  </feature>
-
-  <category-def name="Sirius.SDK" label="Sirius SDK">
-    <description>
-      The Sirius Modeling Platform SDK: sources, test suites and tools for developing Sirius.
-    </description>
-  </category-def>
-
-  <feature id="org.eclipse.sirius.tests.rcptt.feature" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.tests" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.tests.support" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.diagram.elk.sdk.feature" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.aql.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.aql.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.properties.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.workflow.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.ui.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui.aql.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.acceleo.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.samples.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.ui.acceleo.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.interpreter.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.doc.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.eef.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.properties.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.samples.properties.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.ui.autostart.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.tests.rcptt.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.specifier.ide.ui.acceleo.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.server.product.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ide.xtext.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.tests.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.diagram.elk.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.tests.support.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.runtime.ocl.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-  <feature id="org.eclipse.sirius.diagram.elk.sdk.feature.source" version="0.0.0">
-    <category name="Sirius.SDK" />
-  </feature>
-
-  <category-def name="Sirius.Dependencies" label="Sirius Dependencies">
-    <description>
-      Parts of other projects that are needed by some Sirius features.
-    </description>
-  </category-def>
-
-  <feature id="org.eclipse.acceleo.query" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.acceleo.query.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.acceleo.ui.interpreter" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.acceleo.ui.interpreter.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.eef.sdk.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.eef.sdk.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.eef.ext.widgets.reference.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.eef.ext.widgets.reference.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.algorithms.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.graphviz.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.sdk.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.ui.feature" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.algorithms.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.graphviz.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.sdk.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <feature id="org.eclipse.elk.ui.feature.source" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </feature>
-  <bundle id="com.google.gson" version="0.0.0">
-    <category name="Sirius.Dependencies" />
-  </bundle>
-  
-  <repository-reference location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.10.v20180503/" enabled="true" />
+   <description url="http://www.eclipse.org/sirius">
+      Eclipse Sirius - The easiest way to get your own Modeling Tool.
+   </description>
+   <feature id="org.eclipse.sirius.runtime" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.aql" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.aql" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.properties.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.ui" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui.aql" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.acceleo" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.samples" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.ui.acceleo" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier" version="0.0.0"/>
+   <feature id="org.eclipse.sirius.interpreter.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.doc.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.eef" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.properties.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.samples.properties.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui.acceleo" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.xtext" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.diagram.elk.feature" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ocl" version="0.0.0">
+      <category name="Sirius"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests.rcptt.feature" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests.support" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.diagram.elk.sdk.feature" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.aql.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.aql.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.properties.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.ui.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui.aql.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.acceleo.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.samples.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.ui.acceleo.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.interpreter.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.doc.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.eef.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.properties.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.samples.properties.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests.rcptt.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.specifier.ide.ui.acceleo.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ide.xtext.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.diagram.elk.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.tests.support.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.runtime.ocl.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.sirius.diagram.elk.sdk.feature.source" version="0.0.0">
+      <category name="Sirius.SDK"/>
+   </feature>
+   <feature id="org.eclipse.acceleo.query" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.acceleo.query.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.acceleo.ui.interpreter" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.acceleo.ui.interpreter.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.eef.sdk.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.eef.sdk.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.eef.ext.widgets.reference.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.eef.ext.widgets.reference.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.algorithms.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.graphviz.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.sdk.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.ui.feature" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.algorithms.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.graphviz.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.sdk.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <feature id="org.eclipse.elk.ui.feature.source" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </feature>
+   <bundle id="com.google.gson" version="0.0.0">
+      <category name="Sirius.Dependencies"/>
+   </bundle>
+   <category-def name="Sirius" label="Sirius">
+      <description>
+         The Sirius Modeling Platform
+      </description>
+   </category-def>
+   <category-def name="Sirius.SDK" label="Sirius SDK">
+      <description>
+         The Sirius Modeling Platform SDK: sources, test suites and tools for developing Sirius.
+      </description>
+   </category-def>
+   <category-def name="Sirius.Dependencies" label="Sirius Dependencies">
+      <description>
+         Parts of other projects that are needed by some Sirius features.
+      </description>
+   </category-def>
+   <repository-reference location="http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.10.v20180503/" enabled="true" />
 </site>
diff --git a/packaging/org.eclipse.sirius.workflow-feature/.project b/packaging/org.eclipse.sirius.workflow-feature/.project
deleted file mode 100644
index 4b51ad2..0000000
--- a/packaging/org.eclipse.sirius.workflow-feature/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.workflow.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/packaging/org.eclipse.sirius.workflow-feature/build.properties b/packaging/org.eclipse.sirius.workflow-feature/build.properties
deleted file mode 100644
index e4ece8a..0000000
--- a/packaging/org.eclipse.sirius.workflow-feature/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-bin.includes = feature.xml,\
-               feature.properties
diff --git a/packaging/org.eclipse.sirius.workflow-feature/feature.properties b/packaging/org.eclipse.sirius.workflow-feature/feature.properties
deleted file mode 100644
index c457b54..0000000
--- a/packaging/org.eclipse.sirius.workflow-feature/feature.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-featureName = Sirius Support for Modeling Workflows (Experimental)
-providerName = Eclipse Modeling Project
-copyright=\
-Copyright (c) 2018 Obeo and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/\n\
-\n\
-SPDX-License-Identifier: EPL-2.0\n\
-\n\
-Contributors:\n\
-    Obeo - initial API and implementation\n
diff --git a/packaging/org.eclipse.sirius.workflow-feature/feature.xml b/packaging/org.eclipse.sirius.workflow-feature/feature.xml
deleted file mode 100644
index bf6cd76..0000000
--- a/packaging/org.eclipse.sirius.workflow-feature/feature.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2015 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<feature
-      id="org.eclipse.sirius.workflow.feature"
-      label="%featureName"
-      version="7.0.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description url="http://www.eclipse.org/sirius">
-      Sirius support for modeling workflows
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <plugin
-         id="org.eclipse.sirius.editor.workflow"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.sirius.workflow.edit"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.sirius.workflow.model"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.sirius.workflow.ui.page"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.backend"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.sirius.server.frontend.workflow"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/packaging/org.eclipse.sirius.workflow-feature/pom.xml b/packaging/org.eclipse.sirius.workflow-feature/pom.xml
deleted file mode 100644
index 57b2a72..0000000
--- a/packaging/org.eclipse.sirius.workflow-feature/pom.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2015 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <!-- Skip feature in Sonar analysis -->
-    <sonar.skip>true</sonar.skip>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.workflow.feature</artifactId>
-  <packaging>eclipse-feature</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho.extras</groupId>
-        <artifactId>tycho-source-feature-plugin</artifactId>
-        <version>${tycho-extras-version}</version>
-        <executions>
-          <execution>
-            <id>source-feature</id>
-            <phase>package</phase>
-            <goals>
-              <goal>source-feature</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-p2-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <executions>
-          <execution>
-            <id>attached-p2-metadata</id>
-            <phase>package</phase>
-            <goals>
-              <goal>p2-metadata</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
index 41aedf4..e8f0a1c 100644
--- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
+++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html
@@ -164,6 +164,18 @@
 			<a href="Release_Notes_Previous.html">the release notes from previous versions</a> for details about older releases.
 		</p>
 		<h2 id="sirius7.0.0">Changes in Sirius 7.0.0</h2>
+		<ul>
+			<li><span class="label label-danger">Removed</span> 
+				<b>The &#8220;Workflow&#8221; feature</b> has been removed . Workflow was experimental and to our knowledge not used in practice. This corresponds to the 
+				<code>org.eclipse.sirius.workflow.*</code> and 
+				<code>org.eclipse.sirius.editor.workflow</code> plug-ins.
+			</li>
+			<li><span class="label label-danger">Removed</span> 
+				<b>The server parts which supported the Workflow feature</b> has been removed too. It was our first experiment in moving Sirius to the web, but this is now replaced by the newly published 
+				<a href="https://www.eclipse.org/sirius/sirius-web.html">Sirius Web</a>. This corresponds to all the 
+				<code>org.eclipse.sirius.server.*</code> plug-ins.
+			</li>
+		</ul>
 		<h2 id="sirius6.6.0">Changes in Sirius 6.6.0</h2>
 		<h2 id="sirius6.5.0">Changes in Sirius 6.5.0</h2>
 		<h3 id="UserVisibleChanges">User-Visible Changes</h3>
diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
index 63c3f67..ccc657f 100644
--- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
+++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
@@ -6,6 +6,11 @@
 
 h2(#sirius7.0.0). Changes in Sirius 7.0.0
 
+
+* <span class="label label-danger">Removed</span> **The "Workflow" feature** has been removed . Workflow was experimental and to our knowledge not used in practice. This corresponds to the @org.eclipse.sirius.workflow.*@ and @org.eclipse.sirius.editor.workflow@ plug-ins.
+* <span class="label label-danger">Removed</span> **The server parts which supported the Workflow feature** has been removed too. It was our first experiment in moving Sirius to the web, but this is now replaced by the newly published "Sirius Web":https://www.eclipse.org/sirius/sirius-web.html. This corresponds to all the @org.eclipse.sirius.server.*@ plug-ins.
+
+
 h2(#sirius6.6.0). Changes in Sirius 6.6.0
 
 h2(#sirius6.5.0). Changes in Sirius 6.5.0
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.html b/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.html
index 6f79e0f..33138e4 100644
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.html
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.html
@@ -48,12 +48,6 @@
 							<strong>Properties View</strong>
 						</a> shows how to define custom properties views for your modelers.
 					</li>
-					<li>
-						<a href="workflows/Workflows.html">
-							<strong>Workflows</strong>
-						</a> (
-						<b>EXPERIMENTAL</b>) shows how to define in the aird editor a custom workflow improving usability of your modeling environment.
-					</li>
 				</ul>
 			</li>
 			<li>
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.textile b/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.textile
index 0be1b66..7befdbe 100644
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.textile
+++ b/plugins/org.eclipse.sirius.doc/doc/specifier/Sirius Specifier Manual.textile
@@ -10,7 +10,6 @@
 ** "*Tables*":tables/Tables.html covers how to specify both edition tables and matrix-like cross-tables.
 ** "*Trees*":trees/Trees.html shows how to create tree-like modelers for a hierarchical view of data.
 ** "*Properties View*":properties/Properties_View_Description.html shows how to define custom properties views for your modelers.
-** "*Workflows*":workflows/Workflows.html (**EXPERIMENTAL**) shows how to define in the aird editor a custom workflow improving usability of your modeling environment.
 * "*Model Operations*":general/Model_Operations.html describes the small language which can be used throughout "_Viewpoint Specification Models_":../Glossary.html#VSM to describe behavior (for example for tools).
 * "*Colors*":general/Colors.html explains how colors can be specified for all kinds of representations.
 * "*Queries and Interpreted Expressions*":general/Writing_Queries.html explains the general rules to follow to write the expressions used inside "_Viewpoint Specification Models_":../Glossary.html#VSM, and the various languages supported.
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.html b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.html
deleted file mode 100644
index 004ca28..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-		<title>Workflows</title>
-		<link type="text/css" rel="stylesheet" href="../../resources/bootstrap.css"/>
-		<link type="text/css" rel="stylesheet" href="../../resources/custom.css"/>
-	</head>
-	<body>
-		<h1 id="SpecifyingWorkflows">Specifying Workflows</h1>
-		<ol class="toc" style="list-style: disc;">
-			<li>
-				<a href="#SpecifyingWorkflows">Specifying Workflows</a>
-				<ol style="list-style: disc;">
-					<li>
-						<a href="#introduction">Introduction</a>
-					</li>
-					<li>
-						<a href="#specification">Customizing the workflow tile</a>
-						<ol style="list-style: disc;">
-							<li>
-								<a href="#workflow">Workflow</a>
-							</li>
-							<li>
-								<a href="#page">Page</a>
-							</li>
-							<li>
-								<a href="#section">Section</a>
-							</li>
-							<li>
-								<a href="#activity">Activity</a>
-							</li>
-							<li>
-								<a href="#context">Interpreted Expressions context</a>
-							</li>
-						</ol>
-					</li>
-					<li>
-						<a href="#usage">Usage</a>
-					</li>
-				</ol>
-			</li>
-		</ol>
-		<p>
-			<span style="color:red">WARNING:</span> This feature is 
-			<b>experimental</b> in Sirius 6.0.x. Adopters are encouraged to test it and give 
-			<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Sirius">feedback</a>, but this sould not be deployed in production. In particular, workflows defined using Sirius 6.0.x may not work at all in Sirius 6.1 and later.
-		</p>
-		<h2 id="introduction">Introduction</h2>
-		<p>The 
-			<em>Workflow</em> section is a new tab included in the aird editor (to open it, double click on the file with 
-			<em>aird</em> extension).
-		</p>
-		<p>
-			<img border="0" src="images/aird_editor.png"/>
-		</p>
-		<p>The new workflow tab displays both fixed information and information that can be defined in the VSM. The fixed information are the following:</p>
-		<ul>
-			<li>The name of the project and its description.</li>
-			<li>A list of all semantic resources known by the Sirius session</li>
-			<li>A list of all representations (diagrams, tables and trees) in the Sirius session</li>
-			<li>A workflow tile, empty by default, that can be customized by the specifier in the 
-				<a href="../../Glossary.html#VSM">
-					<em>VSM</em>
-				</a> to display actions that should be available more directly to users.
-			</li>
-		</ul>
-		<p>
-			<img border="0" src="images/workflow_page.png"/>
-		</p>
-		<h2 id="specification">Customizing the workflow tile</h2>
-		<p>The workflow tile customization can be done by describing its content directly in the VSM.</p>
-		<p>Workflows are defined around four main concepts: 
-			<em>Workflow</em>, 
-			<em>Page</em>, 
-			<em>Section</em> and 
-			<em>Activity</em>.
-			<br/>Once defined in the VSM, the result will be visible in the workflow tile of the aird editor.
-		</p>
-		<h3 id="workflow">Workflow</h3>
-		<p>The 
-			<em>Workflow Description</em> element can be created under the root element of the odesign from the specific menu item.
-		</p>
-		<p>
-			<img style="width:60%" border="0" src="images/new_workflow.png"/>
-		</p>
-		<p>This action creates a blank new 
-			<em>workflow</em> element. Like many elements inside a 
-			<a href="../../Glossary.html#VSM">
-				<em>VSM</em>
-			</a>, 
-			<em>Workflow Description</em> has a mandatory 
-			<em>Identifier</em> property (which should be unique), and an optional 
-			<em>Name</em> property that has the same value as the 
-			<em>Identifer</em> if the user doesn&#8217;t customize it.
-		</p>
-		<p>Inside a 
-			<em>Workflow Description</em> element, you can create 
-			<em>Page</em> elements.
-		</p>
-		<h3 id="page">Page</h3>
-		<p>For each 
-			<em>page</em> element, a tab will be created in the workflow tile of the aird editor. The following screenshot shows an example where three pages have been defined: 
-			<em>Capture</em>, 
-			<em>Review</em>, and 
-			<em>Help</em>.
-		</p>
-		<p>
-			<img border="0" src="images/pages.png"/>
-		</p>
-		<p>The 
-			<em>Page Description</em> element can be created under the 
-			<em>Workflow Description</em> element from the specific menu item.
-			<br/>This action creates a blank new 
-			<em>page</em> element. Like the 
-			<em>Workflow Description</em>, the 
-			<em>Page Description</em> element has an 
-			<em>Identifier</em> and a 
-			<em>Name</em> property. It also has a 
-			<em>Title Expression</em> element, which will be used to get the label that will be displayed to the user. This field is an 
-			<a href="../general/Specifying_Viewpoints.html#interpreted_expressions">
-				<em>Interpreted Expression</em>
-			</a>.
-		</p>
-		<p>
-			<span style="color:red">WARNING:</span> in the current Sirius version, the 
-			<em>Title Expression</em> is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-		</p>
-		<p>Inside a 
-			<em>Page Description</em> element, you can create 
-			<em>Section</em> elements.
-		</p>
-		<h3 id="section">Section</h3>
-		<p>A 
-			<em>section</em> element will create a new subpart in the 
-			<em>page</em>. The following screenshot shows two sections 
-			<em>Hierarchy</em> and 
-			<em>Diagram</em> in the 
-			<em>Capture</em> page.
-		</p>
-		<p>
-			<img border="0" src="images/sections.png"/>
-		</p>
-		<p>The 
-			<em>Section Description</em> element can be created under the 
-			<em>Page Description</em> element from the specific menu item.
-			<br/>The action creates a blank new 
-			<em>section</em> element. The 
-			<em>section</em> element is similar to the 
-			<em>page</em> element: it has an 
-			<em>Identifier</em>, a 
-			<em>Name</em> and a 
-			<em>Title Expression</em> properties, which all behave like the 
-			<em>page</em> ones. 
-		</p>
-		<p>
-			<span style="color:red">WARNING:</span> in the current Sirius version, the 
-			<em>Title Expression</em> is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-		</p>
-		<p>Inside a 
-			<em>Section Description</em> element, you can create 
-			<em>Activity</em> elements.
-		</p>
-		<h3 id="activity">Activity</h3>
-		<p>
-			<em>Activity</em> elements allow specifiers to describe actions. It contains the same properties as 
-			<em>section</em> and 
-			<em>page</em> elements (i.e. 
-			<em>Identifier</em>, 
-			<em>Name</em> and 
-			<em>Label Expression</em>).
-		</p>
-		<p>
-			<span style="color:red">WARNING:</span> in the current Sirius version, the 
-			<em>Title Expression</em> is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-		</p>
-		<p>An 
-			<em>activity</em> contains a 
-			<em>begin</em> element that allows user to specify a 
-			<a href="../general/Model_Operations.html#introduction">
-				<em>Model Operation</em>
-			</a>.
-		</p>
-		<p>Once created, the 
-			<em>activities</em> will appear in the workflow tile and the user will be able to click on these, and trigger the associated 
-			<em>Model Operation</em>.
-		</p>
-		<h3 id="context">Interpreted Expressions context</h3>
-		<p>When writing an 
-			<a href="../general/Specifying_Viewpoints.html#interpreted_expressions">
-				<em>Interpreted Expression</em>
-			</a>, the user must think of the context on which the expression will be applied. For workflows related element (for instance in the Title Expressions of Pages, Sections and Activities), only one context is available, 
-			<em>self</em>. In this case, 
-			<em>self</em> will be the 
-			<code>DAnalysis</code> of the Sirius session, which is a representation of the odesign file.
-		</p>
-		<h2 id="usage">Usage</h2>
-		<p>
-			<em>Workflow</em> elements are associated automatically with the 
-			<em>viewpoints</em> defined in the same odesign file. It means that to display the defined workflows in the correct section of the aird editor, the user will have to activate at least one of the viewpoints defined in the VSM.
-		</p>
-		<p>If several 
-			<em>workflows</em> are activated and shown in the workflow tile, they are all merged in the same workflow tile.
-		</p>
-	</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.textile b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.textile
deleted file mode 100644
index de98d64..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/Workflows.textile
+++ /dev/null
@@ -1,82 +0,0 @@
-h1. Specifying Workflows
-
-{toc:style=disc|minLevel=2|maxLevel=3}
-
-%{color:red}WARNING:% This feature is **experimental** in Sirius 6.0.x. Adopters are encouraged to test it and give "feedback":https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Sirius, but this sould not be deployed in production. In particular, workflows defined using Sirius 6.0.x may not work at all in Sirius 6.1 and later.
-
-h2(#introduction). Introduction
-
-The _Workflow_ section is a new tab included in the aird editor (to open it, double click on the file with _aird_ extension).
-
-!images/aird_editor.png!
-
-The new workflow tab displays both fixed information and information that can be defined in the VSM. The fixed information are the following:
-* The name of the project and its description.
-* A list of all semantic resources known by the Sirius session
-* A list of all representations (diagrams, tables and trees) in the Sirius session
-* A workflow tile, empty by default, that can be customized by the specifier in the "_VSM_":../../Glossary.html#VSM to display actions that should be available more directly to users.
-
-!images/workflow_page.png!
-
-h2(#specification). Customizing the workflow tile
-
-The workflow tile customization can be done by describing its content directly in the VSM.
-
-Workflows are defined around four main concepts: _Workflow_, _Page_, _Section_ and _Activity_.
-Once defined in the VSM, the result will be visible in the workflow tile of the aird editor.
-
-h3(#workflow). Workflow
-
-The _Workflow Description_ element can be created under the root element of the odesign from the specific menu item.
-
-!{width:60%}images/new_workflow.png!
-
-This action creates a blank new _workflow_ element. Like many elements inside a "_VSM_":../../Glossary.html#VSM, _Workflow Description_ has a mandatory _Identifier_ property (which should be unique), and an optional _Name_ property that has the same value as the _Identifer_ if the user doesn't customize it.
-
-Inside a _Workflow Description_ element, you can create _Page_ elements.
-
-h3(#page). Page
-
-For each _page_ element, a tab will be created in the workflow tile of the aird editor. The following screenshot shows an example where three pages have been defined: _Capture_, _Review_, and _Help_.
-
-!images/pages.png!
-
-The _Page Description_ element can be created under the _Workflow Description_ element from the specific menu item.
-This action creates a blank new _page_ element. Like the _Workflow Description_, the _Page Description_ element has an _Identifier_ and a _Name_ property. It also has a _Title Expression_ element, which will be used to get the label that will be displayed to the user. This field is an "_Interpreted Expression_":../general/Specifying_Viewpoints.html#interpreted_expressions.
-
-%{color:red}WARNING:% in the current Sirius version, the _Title Expression_ is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-
-Inside a _Page Description_ element, you can create _Section_ elements.
-
-h3(#section). Section
-
-A _section_ element will create a new subpart in the _page_. The following screenshot shows two sections _Hierarchy_ and _Diagram_ in the _Capture_ page.
-
-!images/sections.png!
-
-The _Section Description_ element can be created under the _Page Description_ element from the specific menu item.
-The action creates a blank new _section_ element. The _section_ element is similar to the _page_ element: it has an _Identifier_, a _Name_ and a _Title Expression_ properties, which all behave like the _page_ ones. 
-
-%{color:red}WARNING:% in the current Sirius version, the _Title Expression_ is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-
-Inside a _Section Description_ element, you can create _Activity_ elements.
-
-h3(#activity). Activity
-
-_Activity_ elements allow specifiers to describe actions. It contains the same properties as _section_ and _page_ elements (i.e. _Identifier_, _Name_ and _Label Expression_).
-
-%{color:red}WARNING:% in the current Sirius version, the _Title Expression_ is not interpreted correctly so you will only be able to use a string directly. This string will be used as the title.
-
-An _activity_ contains a _begin_ element that allows user to specify a "_Model Operation_":../general/Model_Operations.html#introduction.
-
-Once created, the _activities_ will appear in the workflow tile and the user will be able to click on these, and trigger the associated _Model Operation_.
-
-h3(#context). Interpreted Expressions context
-
-When writing an "_Interpreted Expression_":../general/Specifying_Viewpoints.html#interpreted_expressions, the user must think of the context on which the expression will be applied. For workflows related element (for instance in the Title Expressions of Pages, Sections and Activities), only one context is available, _self_. In this case, _self_ will be the @DAnalysis@ of the Sirius session, which is a representation of the odesign file.
-
-h2(#usage). Usage
-
-_Workflow_ elements are associated automatically with the _viewpoints_ defined in the same odesign file. It means that to display the defined workflows in the correct section of the aird editor, the user will have to activate at least one of the viewpoints defined in the VSM.
-
-If several _workflows_ are activated and shown in the workflow tile, they are all merged in the same workflow tile.
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/aird_editor.png b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/aird_editor.png
deleted file mode 100644
index 54ed6db..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/aird_editor.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/new_workflow.png b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/new_workflow.png
deleted file mode 100644
index f84eaf7..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/new_workflow.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/pages.png b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/pages.png
deleted file mode 100644
index 32b56d9..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/pages.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/sections.png b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/sections.png
deleted file mode 100644
index 015271c..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/sections.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/workflow_page.png b/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/workflow_page.png
deleted file mode 100644
index e99e1d2..0000000
--- a/plugins/org.eclipse.sirius.doc/doc/specifier/workflows/images/workflow_page.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.doc/doc/toc.xml b/plugins/org.eclipse.sirius.doc/doc/toc.xml
index 82f2c67..d6f252e 100644
--- a/plugins/org.eclipse.sirius.doc/doc/toc.xml
+++ b/plugins/org.eclipse.sirius.doc/doc/toc.xml
@@ -205,8 +205,6 @@
         <topic href="doc/specifier/properties/Properties_View_Description.html#tab_filtering" label="Tab Filtering"></topic>
       </topic>
     </topic>
-    <topic href="doc/specifier/workflows/Workflows.html" label="Workflows (experimental)">
-    </topic>
     <anchor id="moreSpecifierDialectRefs" />
     <topic href="doc/specifier/general/ToolsSpecification.html" label="Tools Specification" />
     <topic href="doc/specifier/general/Model_Operations.html" label="Model Operations" />
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.checkstyle b/plugins/org.eclipse.sirius.editor.workflow/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.classpath b/plugins/org.eclipse.sirius.editor.workflow/.classpath
deleted file mode 100644
index 50aae14..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.project b/plugins/org.eclipse.sirius.editor.workflow/.project
deleted file mode 100644
index 8b8a35e..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.editor.workflow</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/fr.obeo.baseliner.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/fr.obeo.baseliner.prefs
deleted file mode 100644
index edbf927..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/fr.obeo.baseliner.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-baselineSource=platform\:/resource/org.eclipse.sirius.targets/baseline.target
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 96b10a7..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue May 10 09:11:52 CEST 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index 0baebd9..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue May 10 09:11:52 CEST 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 311d038..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 740eeeb..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.editor.workflow/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.editor.workflow/META-INF/MANIFEST.MF
deleted file mode 100644
index 0929d35..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,33 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.editor.workflow;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Vendor: %providerName
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.emf.edit.ui;bundle-version="2.3.1",
- org.eclipse.sirius.common;bundle-version="2.0.0",
- org.eclipse.sirius.common.ui;bundle-version="2.0.0",
- org.eclipse.sirius.diagram;bundle-version="2.0.0",
- org.eclipse.sirius.diagram.ui;bundle-version="2.0.0",
- org.eclipse.sirius.editor;bundle-version="2.0.0",
- org.eclipse.ui.ide;bundle-version="3.5.200",
- org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.300",
- org.eclipse.ui.workbench.texteditor;bundle-version="3.8.0",
- org.eclipse.sirius.workflow.model;bundle-version="6.0.0",
- org.eclipse.sirius.ext.swt;bundle-version="6.0.0",
- org.eclipse.sirius.ext.base;bundle-version="6.0.0"
-Eclipse-LazyStart: true
-Bundle-Localization: plugin
-Automatic-Module-Name: org.eclipse.sirius.editor.workflow
-Export-Package: org.eclipse.sirius.editor.workflow.internal;version="6.0.0";x-internal:=true,
- org.eclipse.sirius.editor.workflow.internal.menu;version="6.0.0";x-internal:=true,
- org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.activitydescription;version="6.0.0",
- org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription;version="6.0.0",
- org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription;version="6.0.0",
- org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.activitydescription;version="6.0.0",
- org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription;version="6.0.0",
- org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription;version="6.0.0"
-Bundle-Activator: org.eclipse.sirius.editor.workflow.internal.SiriusEditorWorkflowPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.editor.workflow/about.html b/plugins/org.eclipse.sirius.editor.workflow/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.editor.workflow/build.properties b/plugins/org.eclipse.sirius.editor.workflow/build.properties
deleted file mode 100644
index 50962c8..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-source.. = src-gen/,\
-           src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               help/,\
-               about.html,\
-               model/
-javacDefaultEncoding.. = US-ASCII
-javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.editor.workflow/help/contexts.xml b/plugins/org.eclipse.sirius.editor.workflow/help/contexts.xml
deleted file mode 100644
index bcebaba..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/help/contexts.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<contexts>
-   <context id="WorkflowDescription">
-     <description>
-       
-       
-         
-   <!-- Start of user code WorkflowDescription description -->
-   
-   <!-- End of user code WorkflowDescription description -->
-   
-      </description>
-   </context>
-   <context id="PageDescription">
-     <description>
-       
-       
-         
-   <!-- Start of user code PageDescription description -->
-   
-   <!-- End of user code PageDescription description -->
-   
-      </description>
-   </context>
-   <context id="SectionDescription">
-     <description>
-       
-       
-         
-   <!-- Start of user code SectionDescription description -->
-   
-   <!-- End of user code SectionDescription description -->
-   
-      </description>
-   </context>
-   <context id="ActivityDescription">
-     <description>
-       
-       
-         
-   <!-- Start of user code ActivityDescription description -->
-   
-   <!-- End of user code ActivityDescription description -->
-   
-      </description>
-   </context>
-</contexts>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.editor.workflow/model/customize.properties b/plugins/org.eclipse.sirius.editor.workflow/model/customize.properties
deleted file mode 100644
index 305ae96..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/model/customize.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-generate_wizards = false
-generate_manifest = false
-generate_extra_editors  = false
-
-editor_name = SiriusEditor
-main_package_name = org.eclipse.sirius.editor
-ignore_packages = tree
-
-model_name=Viewpoint
-provider_name = Eclipse Modeling Project
-contributorId = org.eclipse.sirius.editor.editorPlugin.SiriusEditorContributor
diff --git a/plugins/org.eclipse.sirius.editor.workflow/model/generate-advance-editor-properties.chain b/plugins/org.eclipse.sirius.editor.workflow/model/generate-advance-editor-properties.chain
deleted file mode 100644
index 8b4512d..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/model/generate-advance-editor-properties.chain
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<chain:Chain xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:chain="http://www.obeo.fr/acceleo/chain">
-  <repository>
-    <members documentation="R&#xe9;f&#xe9;rentiel pour l'appel de sous-cha&#xee;ne">
-      <files xsi:type="chain:Model" path="/org.eclipse.sirius.workflow.model/model/workflow.genmodel"/>
-      <files xsi:type="chain:Log" path="/org.eclipse.sirius.editor.workflow/acceleo.log"/>
-    </members>
-  </repository>
-  <actions>
-    <actions xsi:type="chain:ChainCall" documentation="" chainPath="/fr.obeo.pim.ecore.gen.editor/generatePropertySections.chain" argumentsFiles="//@repository/@members.0/@files.0 //@repository/@members.0/@files.1">
-      <argumentsPatterns>org.eclipse.sirius.editor.workflow</argumentsPatterns>
-    </actions>
-  </actions>
-</chain:Chain>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/plugin.properties b/plugins/org.eclipse.sirius.editor.workflow/plugin.properties
deleted file mode 100644
index 37ed714..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-pluginName = Sirius Workflow Specification Editor
-providerName = Eclipse Modeling Project
-
-WorkflowMenuBuilder_label=New Workflow
-WorkflowMenuBuilder_NewWorkflow_label= New Workflow
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.editor.workflow/plugin.xml b/plugins/org.eclipse.sirius.editor.workflow/plugin.xml
deleted file mode 100644
index 95bc72f..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/plugin.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<!-- Start of user code plugin.xml start specifics  -->
-<!--
-    Copyright (c) 2018 Obeo.
-    This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v2.0
-    which accompanies this distribution, and is available at
-    https://www.eclipse.org/legal/epl-2.0/
-
-    Contributors:
-       Obeo - initial API and implementation
-
--->
-
-<plugin>
- <!-- End of user code plugin.xml start specifics  -->
-  
-  <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
-    <propertySections contributorId="org.eclipse.sirius.editor.editorPlugin.SiriusEditorContributor">
-      <!--
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.activitydescription.ActivityDescriptionImagePathPropertySection"
-               id="workflow.section.activityDescription.ImagePath"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.activitydescription.ActivityDescriptionImagePathFilter"
-               afterSection="description.section.documentedElement.Documentation"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.ActivityDescription"/>
-      </propertySection>
-      -->
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.activitydescription.ActivityDescriptionLabelExpressionPropertySection"
-               id="workflow.section.activityDescription.LabelExpression"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.activitydescription.ActivityDescriptionLabelExpressionFilter"
-               afterSection="description.section.identifiedElement.Name"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.ActivityDescription"/>
-      </propertySection>
-      <!--
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription.SectionDescriptionImagePathPropertySection"
-               id="workflow.section.sectionDescription.ImagePath"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription.SectionDescriptionImagePathFilter"
-               afterSection="description.section.documentedElement.Documentation"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.SectionDescription"/>
-      </propertySection>
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription.SectionDescriptionDescriptionExpressionPropertySection"
-               id="workflow.section.sectionDescription.DescriptionExpression"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription.SectionDescriptionDescriptionExpressionFilter"
-               afterSection="workflow.section.sectionDescription.TitleExpression"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.SectionDescription"/>
-      </propertySection>
-      -->
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription.SectionDescriptionTitleExpressionPropertySection"
-               id="workflow.section.sectionDescription.TitleExpression"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription.SectionDescriptionTitleExpressionFilter"
-               afterSection="description.section.identifiedElement.Name"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.SectionDescription"/>
-      </propertySection>
-      <!--
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription.PageDescriptionImagePathPropertySection"
-               id="workflow.section.pageDescription.ImagePath"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription.PageDescriptionImagePathFilter"
-               afterSection="description.section.documentedElement.Documentation"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.PageDescription"/>
-      </propertySection>
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription.PageDescriptionDescriptionExpressionPropertySection"
-               id="workflow.section.pageDescription.DescriptionExpression"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription.PageDescriptionDescriptionExpressionFilter"
-               afterSection="workflow.section.pageDescription.TitleExpression"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.PageDescription"/>
-      </propertySection>
-      -->
-  	  <propertySection
-               class="org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription.PageDescriptionTitleExpressionPropertySection"
-               id="workflow.section.pageDescription.TitleExpression"
-               filter="org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription.PageDescriptionTitleExpressionFilter"
-               afterSection="description.section.identifiedElement.Name"
-                tab="viewpoint.tab.general">
-        <input type="org.eclipse.sirius.workflow.PageDescription"/>
-      </propertySection>
-  	<!-- Start of user code propertySections of org.eclipse.sirius.editor.editorPlugin.SiriusEditorContributor  -->
-  	
-  	<!-- End of user code propertySections of org.eclipse.sirius.editor.editorPlugin.SiriusEditorContributor  -->
-    </propertySections>
-  </extension>
-
-<!-- Start of user code plugin.xml end specifics  -->
-
-  <extension point="org.eclipse.help.contexts">
-     <contexts file="help/contexts.xml" plugin="org.eclipse.sirius.workflow">
-     </contexts>
-  </extension>
-  <extension point="org.eclipse.sirius.editor.menuBuilder">
-     <builder class="org.eclipse.sirius.editor.workflow.internal.menu.WorkflowMenuBuilder" />
-  </extension>
-  
-</plugin>    
-<!-- End of user code plugin.xml end specifics  -->
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.editor.workflow/pom.xml b/plugins/org.eclipse.sirius.editor.workflow/pom.xml
deleted file mode 100644
index ab575b0..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.editor.workflow</artifactId>
-  <version>7.0.0-SNAPSHOT</version>
-  <packaging>eclipse-plugin</packaging>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionImagePathFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionImagePathFilter.java
deleted file mode 100644
index a8f9bb4..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionImagePathFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.activitydescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the imagePath property section.
- */
-public class ActivityDescriptionImagePathFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getActivityDescription_ImagePath();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.ActivityDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionLabelExpressionFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionLabelExpressionFilter.java
deleted file mode 100644
index b7a06ce..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/activitydescription/ActivityDescriptionLabelExpressionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.activitydescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the labelExpression property section.
- */
-public class ActivityDescriptionLabelExpressionFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getActivityDescription_LabelExpression();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.ActivityDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionDescriptionExpressionFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionDescriptionExpressionFilter.java
deleted file mode 100644
index 3655df8..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionDescriptionExpressionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the descriptionExpression property section.
- */
-public class PageDescriptionDescriptionExpressionFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_DescriptionExpression();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.PageDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionImagePathFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionImagePathFilter.java
deleted file mode 100644
index 248066b..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionImagePathFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the imagePath property section.
- */
-public class PageDescriptionImagePathFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_ImagePath();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.PageDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionTitleExpressionFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionTitleExpressionFilter.java
deleted file mode 100644
index a5a0c20..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/pagedescription/PageDescriptionTitleExpressionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.pagedescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the titleExpression property section.
- */
-public class PageDescriptionTitleExpressionFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_TitleExpression();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.PageDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionDescriptionExpressionFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionDescriptionExpressionFilter.java
deleted file mode 100644
index 9feaf4a..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionDescriptionExpressionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the descriptionExpression property section.
- */
-public class SectionDescriptionDescriptionExpressionFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_DescriptionExpression();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.SectionDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionImagePathFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionImagePathFilter.java
deleted file mode 100644
index c2cfb51..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionImagePathFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the imagePath property section.
- */
-public class SectionDescriptionImagePathFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_ImagePath();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.SectionDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionTitleExpressionFilter.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionTitleExpressionFilter.java
deleted file mode 100644
index 29443fd..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/filters/workflow/sectiondescription/SectionDescriptionTitleExpressionFilter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.filters.workflow.sectiondescription;
-
-// Start of user code specific imports
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.editor.properties.filters.common.ViewpointPropertyFilter;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-// End of user code specific imports
-
-/**
- * A filter for the titleExpression property section.
- */
-public class SectionDescriptionTitleExpressionFilter extends ViewpointPropertyFilter {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected EStructuralFeature getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_TitleExpression();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected boolean isRightInputType(Object arg0) {
-        return arg0 instanceof org.eclipse.sirius.workflow.SectionDescription;
-    }
-
-    // Start of user code user methods
-
-    // End of user code user methods
-
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionImagePathPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionImagePathPropertySection.java
deleted file mode 100644
index 4635818..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionImagePathPropertySection.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.activitydescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.internal.presentation.WorkspaceAndPluginsResourceDialog;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the imagePath property of a ActivityDescription object.
- */
-public class ActivityDescriptionImagePathPropertySection extends AbstractTextWithButtonPropertySection {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "ImagePath"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + ":"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getActivityDescription_ImagePath();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                String imagePath = WorkspaceAndPluginsResourceDialog.openDialogForImages(composite.getShell());
-                if (imagePath != null) {
-                    text.setText(imagePath);
-                    handleTextModified();
-                }
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionLabelExpressionPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionLabelExpressionPropertySection.java
deleted file mode 100644
index cc53b2a..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/activitydescription/ActivityDescriptionLabelExpressionPropertySection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.activitydescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.editorPlugin.SiriusEditor;
-import org.eclipse.sirius.editor.internal.navigation.NavigationByKeyListener;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider;
-import org.eclipse.sirius.editor.tools.internal.presentation.TextWithContentProposalDialog;
-import org.eclipse.sirius.ui.tools.api.assist.ContentProposalClient;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the labelExpression property of a ActivityDescription object.
- */
-public class ActivityDescriptionLabelExpressionPropertySection extends AbstractTextWithButtonPropertySection implements ContentProposalClient {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "LabelExpression"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + "*:"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getActivityDescription_LabelExpression();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        /*
-         * We set the color as it's a InterpretedExpression
-         */
-        text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));
-
-        nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));
-
-        TypeContentProposalProvider.bindPluginsCompletionProcessors(this, text);
-
-        text.addKeyListener(new NavigationByKeyListener(this, text, eObject));
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TextWithContentProposalDialog dialog = new TextWithContentProposalDialog(composite.getShell(), ActivityDescriptionLabelExpressionPropertySection.this, text.getText());
-                dialog.open();
-                text.setText(dialog.getResult());
-                handleTextModified();
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionDescriptionExpressionPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionDescriptionExpressionPropertySection.java
deleted file mode 100644
index f546050..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionDescriptionExpressionPropertySection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.editorPlugin.SiriusEditor;
-import org.eclipse.sirius.editor.internal.navigation.NavigationByKeyListener;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider;
-import org.eclipse.sirius.editor.tools.internal.presentation.TextWithContentProposalDialog;
-import org.eclipse.sirius.ui.tools.api.assist.ContentProposalClient;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the descriptionExpression property of a PageDescription object.
- */
-public class PageDescriptionDescriptionExpressionPropertySection extends AbstractTextWithButtonPropertySection implements ContentProposalClient {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "DescriptionExpression"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + "*:"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_DescriptionExpression();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        /*
-         * We set the color as it's a InterpretedExpression
-         */
-        text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));
-
-        nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));
-
-        TypeContentProposalProvider.bindPluginsCompletionProcessors(this, text);
-
-        text.addKeyListener(new NavigationByKeyListener(this, text, eObject));
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TextWithContentProposalDialog dialog = new TextWithContentProposalDialog(composite.getShell(), PageDescriptionDescriptionExpressionPropertySection.this, text.getText());
-                dialog.open();
-                text.setText(dialog.getResult());
-                handleTextModified();
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionImagePathPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionImagePathPropertySection.java
deleted file mode 100644
index 0120f40..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionImagePathPropertySection.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.internal.presentation.WorkspaceAndPluginsResourceDialog;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the imagePath property of a PageDescription object.
- */
-public class PageDescriptionImagePathPropertySection extends AbstractTextWithButtonPropertySection {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "ImagePath"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + ":"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_ImagePath();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                String imagePath = WorkspaceAndPluginsResourceDialog.openDialogForImages(composite.getShell());
-                if (imagePath != null) {
-                    text.setText(imagePath);
-                    handleTextModified();
-                }
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionTitleExpressionPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionTitleExpressionPropertySection.java
deleted file mode 100644
index aec2d2b..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/pagedescription/PageDescriptionTitleExpressionPropertySection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.pagedescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.editorPlugin.SiriusEditor;
-import org.eclipse.sirius.editor.internal.navigation.NavigationByKeyListener;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider;
-import org.eclipse.sirius.editor.tools.internal.presentation.TextWithContentProposalDialog;
-import org.eclipse.sirius.ui.tools.api.assist.ContentProposalClient;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the titleExpression property of a PageDescription object.
- */
-public class PageDescriptionTitleExpressionPropertySection extends AbstractTextWithButtonPropertySection implements ContentProposalClient {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "TitleExpression"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + "*:"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getPageDescription_TitleExpression();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        /*
-         * We set the color as it's a InterpretedExpression
-         */
-        text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));
-
-        nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));
-
-        TypeContentProposalProvider.bindPluginsCompletionProcessors(this, text);
-
-        text.addKeyListener(new NavigationByKeyListener(this, text, eObject));
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TextWithContentProposalDialog dialog = new TextWithContentProposalDialog(composite.getShell(), PageDescriptionTitleExpressionPropertySection.this, text.getText());
-                dialog.open();
-                text.setText(dialog.getResult());
-                handleTextModified();
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionDescriptionExpressionPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionDescriptionExpressionPropertySection.java
deleted file mode 100644
index 462d050..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionDescriptionExpressionPropertySection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.editorPlugin.SiriusEditor;
-import org.eclipse.sirius.editor.internal.navigation.NavigationByKeyListener;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider;
-import org.eclipse.sirius.editor.tools.internal.presentation.TextWithContentProposalDialog;
-import org.eclipse.sirius.ui.tools.api.assist.ContentProposalClient;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the descriptionExpression property of a SectionDescription object.
- */
-public class SectionDescriptionDescriptionExpressionPropertySection extends AbstractTextWithButtonPropertySection implements ContentProposalClient {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "DescriptionExpression"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + "*:"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_DescriptionExpression();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        /*
-         * We set the color as it's a InterpretedExpression
-         */
-        text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));
-
-        nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));
-
-        TypeContentProposalProvider.bindPluginsCompletionProcessors(this, text);
-
-        text.addKeyListener(new NavigationByKeyListener(this, text, eObject));
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TextWithContentProposalDialog dialog = new TextWithContentProposalDialog(composite.getShell(), SectionDescriptionDescriptionExpressionPropertySection.this, text.getText());
-                dialog.open();
-                text.setText(dialog.getResult());
-                handleTextModified();
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionImagePathPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionImagePathPropertySection.java
deleted file mode 100644
index 81ba886..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionImagePathPropertySection.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.internal.presentation.WorkspaceAndPluginsResourceDialog;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the imagePath property of a SectionDescription object.
- */
-public class SectionDescriptionImagePathPropertySection extends AbstractTextWithButtonPropertySection {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "ImagePath"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + ":"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_ImagePath();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                String imagePath = WorkspaceAndPluginsResourceDialog.openDialogForImages(composite.getShell());
-                if (imagePath != null) {
-                    text.setText(imagePath);
-                    handleTextModified();
-                }
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionTitleExpressionPropertySection.java b/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionTitleExpressionPropertySection.java
deleted file mode 100644
index 87524bb..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src-gen/org/eclipse/sirius/workflow/model/editor/properties/sections/workflow/sectiondescription/SectionDescriptionTitleExpressionPropertySection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *  Contributors:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.model.editor.properties.sections.workflow.sectiondescription;
-
-// Start of user code imports
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.sirius.editor.editorPlugin.SiriusEditor;
-import org.eclipse.sirius.editor.internal.navigation.NavigationByKeyListener;
-import org.eclipse.sirius.editor.properties.sections.common.AbstractTextWithButtonPropertySection;
-import org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider;
-import org.eclipse.sirius.editor.tools.internal.presentation.TextWithContentProposalDialog;
-import org.eclipse.sirius.ui.tools.api.assist.ContentProposalClient;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-// End of user code imports
-
-/**
- * A section for the titleExpression property of a SectionDescription object.
- */
-public class SectionDescriptionTitleExpressionPropertySection extends AbstractTextWithButtonPropertySection implements ContentProposalClient {
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getDefaultLabelText()
-     */
-    @Override
-    protected String getDefaultLabelText() {
-        return "TitleExpression"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getLabelText()
-     */
-    @Override
-    protected String getLabelText() {
-        String labelText;
-        labelText = super.getLabelText() + "*:"; //$NON-NLS-1$
-        // Start of user code get label text
-
-        // End of user code get label text
-        return labelText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeature()
-     */
-    @Override
-    public EAttribute getFeature() {
-        return WorkflowPackage.eINSTANCE.getSectionDescription_TitleExpression();
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#getFeatureValue(String)
-     */
-    @Override
-    protected Object getFeatureValue(String newText) {
-        return newText;
-    }
-
-    /**
-     * @see org.eclipse.sirius.workflow.model.editor.properties.sections.AbstractTextWithButtonPropertySection#isEqual(String)
-     */
-    @Override
-    protected boolean isEqual(String newText) {
-        return getFeatureAsText().equals(newText);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        /*
-         * We set the color as it's a InterpretedExpression
-         */
-        text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));
-
-        nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));
-
-        TypeContentProposalProvider.bindPluginsCompletionProcessors(this, text);
-
-        text.addKeyListener(new NavigationByKeyListener(this, text, eObject));
-
-        // Start of user code create controls
-
-        // End of user code create controls
-
-    }
-
-    @Override
-    protected SelectionListener createButtonListener() {
-        return new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TextWithContentProposalDialog dialog = new TextWithContentProposalDialog(composite.getShell(), SectionDescriptionTitleExpressionPropertySection.this, text.getText());
-                dialog.open();
-                text.setText(dialog.getResult());
-                handleTextModified();
-            }
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected String getPropertyDescription() {
-        return "";
-    }
-
-    // Start of user code user operations
-
-    // End of user code user operations
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/Messages.java b/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/Messages.java
deleted file mode 100644
index 1d2e038..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.editor.workflow.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Helper class to obtains translated strings.
- * 
- * @author sbegaudeau
- */
-public final class Messages {
-
-    static {
-        I18N.initializeMessages(Messages.class, SiriusEditorWorkflowPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-    @TranslatableMessage
-    public static String WorkflowMenuBuilder_label;
-
-    @TranslatableMessage
-    public static String WorkflowMenuBuilder_NewWorkflow_label;
-
-    // CHECKSTYLE:ON
-
-    private Messages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/SiriusEditorWorkflowPlugin.java b/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/SiriusEditorWorkflowPlugin.java
deleted file mode 100644
index 711916e..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/SiriusEditorWorkflowPlugin.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.editor.workflow.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.ui.EclipseUIPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * This is the central singleton for the SiriusEditorWorkflow edit plugin.
- * 
- * @author sbegaudeau
- */
-public final class SiriusEditorWorkflowPlugin extends EMFPlugin {
-    /**
-     * The plug-in ID.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.editor.workflow"; //$NON-NLS-1$
-
-    /**
-     * Singleton instance.
-     */
-    public static final SiriusEditorWorkflowPlugin INSTANCE = new SiriusEditorWorkflowPlugin();
-
-    private static Implementation plugin;
-
-    /**
-     * Create the instance.
-     */
-    public SiriusEditorWorkflowPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     * 
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The actual implementation of the Eclipse <b>Plugin</b>.
-     */
-    public static class Implementation extends EclipseUIPlugin {
-
-        /**
-         * Creates an instance.
-         */
-        public Implementation() {
-            plugin = this;
-        }
-
-    }
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowCreateChildAction.java b/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowCreateChildAction.java
deleted file mode 100644
index 7f9e100..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowCreateChildAction.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.editor.workflow.internal.menu;
-
-import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * A {@link CreateChildAction} with a specific label and priority.
- * 
- * @author sbegaudeau
- */
-public class WorkflowCreateChildAction extends CreateChildAction {
-
-    /**
-     * The label.
-     */
-    private String label;
-
-    /**
-     * The priority.
-     */
-    private int priority;
-
-    /**
-     * The constructor.
-     * 
-     * @param editorPart
-     *            The editor part
-     * @param selection
-     *            The selection
-     * @param commandParameter
-     *            The command parameter
-     * @param label
-     *            The label
-     * @param priority
-     *            The priority
-     */
-    public WorkflowCreateChildAction(IEditorPart editorPart, ISelection selection, CommandParameter commandParameter, String label, int priority) {
-        super(editorPart, selection, commandParameter);
-        this.label = label;
-        this.priority = priority;
-    }
-
-    /**
-     * Returns the priority.
-     * 
-     * @return The priority
-     */
-    public int getPriority() {
-        return this.priority;
-    }
-
-    @Override
-    public String getText() {
-        return this.label;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowMenuBuilder.java b/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowMenuBuilder.java
deleted file mode 100644
index f7524a5..0000000
--- a/plugins/org.eclipse.sirius.editor.workflow/src/org/eclipse/sirius/editor/workflow/internal/menu/WorkflowMenuBuilder.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.editor.workflow.internal.menu;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Optional;
-
-import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.sirius.editor.tools.api.menu.AbstractMenuBuilder;
-import org.eclipse.sirius.editor.tools.api.menu.AbstractTypeRestrictingMenuBuilder;
-import org.eclipse.sirius.editor.workflow.internal.Messages;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.Group;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * Menu builder used to create a new workflow.
- * 
- * @author sbegaudeau
- */
-public class WorkflowMenuBuilder extends AbstractTypeRestrictingMenuBuilder {
-    /**
-     * The constructor.
-     */
-    public WorkflowMenuBuilder() {
-        this.addValidType(WorkflowPackage.Literals.WORKFLOW_DESCRIPTION);
-    }
-
-    @Override
-    public String getLabel() {
-        return Messages.WorkflowMenuBuilder_label;
-    }
-
-    @Override
-    public int getPriority() {
-        return AbstractMenuBuilder.EXTENSION;
-    }
-
-    @Override
-    public void update(Collection<?> newChildDescriptors, ISelection selection, IEditorPart editor) {
-        this.depopulate();
-        this.advancedChildActions = new ArrayList<>();
-
-        Optional<CommandParameter> optionalNewWorkflowCommandParameter = newChildDescriptors.stream().filter(CommandParameter.class::isInstance).map(CommandParameter.class::cast)
-                .filter(parameter -> DescriptionPackage.Literals.GROUP__EXTENSIONS.equals(parameter.getEStructuralFeature()) && parameter.getEValue() instanceof WorkflowDescription).findFirst();
-
-        if (selection instanceof IStructuredSelection && optionalNewWorkflowCommandParameter.isPresent()) {
-            IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
-            // Add the parameter to our descriptor to prevent its use somewhere
-            // else which would create another "New" menu with this entry
-            CommandParameter newWorkflowCommandParameter = optionalNewWorkflowCommandParameter.get();
-            descriptors.add(newWorkflowCommandParameter);
-
-            Optional<Group> optionalGroup = Arrays.stream(structuredSelection.toArray()).filter(Group.class::isInstance).map(Group.class::cast).findFirst();
-            optionalGroup.ifPresent(group -> {
-                newWorkflowCommandParameter.setOwner(group);
-
-                Collection<CreateChildAction> actions = new ArrayList<>();
-                actions.add(new WorkflowCreateChildAction(editor, structuredSelection, newWorkflowCommandParameter, Messages.WorkflowMenuBuilder_NewWorkflow_label, 1000));
-
-                this.advancedChildActions = actions;
-            });
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.editor/model/generate-all.chain b/plugins/org.eclipse.sirius.editor/model/generate-all.chain
index d977c31..8bcef84 100644
--- a/plugins/org.eclipse.sirius.editor/model/generate-all.chain
+++ b/plugins/org.eclipse.sirius.editor/model/generate-all.chain
@@ -8,6 +8,5 @@
     <actions xsi:type="chain:ChainCall" documentation="org.eclipse.sirius.editor.sequence" chainPath="/org.eclipse.sirius.editor.sequence/model/generate-advance-editor-properties.chain"/>
     <actions xsi:type="chain:ChainCall" documentation="org.eclipse.sirius.editor.table" chainPath="/org.eclipse.sirius.editor.table/model/generate-properties.chain"/>
     <actions xsi:type="chain:ChainCall" documentation="org.eclipse.sirius.editor.tree" chainPath="/org.eclipse.sirius.editor.tree/model/generate-advance-editor-properties.chain"/>
-    <actions xsi:type="chain:ChainCall" documentation="org.eclipse.sirius.editor.workflow" chainPath="/org.eclipse.sirius.editor.workflow/model/generate-advance-editor-properties.chain"/>
   </actions>
 </chain:Chain>
diff --git a/plugins/org.eclipse.sirius.server.application/.checkstyle b/plugins/org.eclipse.sirius.server.application/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.application/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.application/.classpath b/plugins/org.eclipse.sirius.server.application/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.application/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.application/.project b/plugins/org.eclipse.sirius.server.application/.project
deleted file mode 100644
index b34e8ea..0000000
--- a/plugins/org.eclipse.sirius.server.application/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.application</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.application/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.application/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.application/META-INF/MANIFEST.MF
deleted file mode 100644
index 8648ed7..0000000
--- a/plugins/org.eclipse.sirius.server.application/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.application;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.equinox.app;bundle-version="1.3.0",
- org.eclipse.osgi;bundle-version="3.8.0",
- org.eclipse.equinox.registry;bundle-version="3.0.0",
- org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.sirius.server;bundle-version="6.0.0"
-Export-Package: org.eclipse.sirius.server.application.internal;x-internal:=true
-Automatic-Module-Name: org.eclipse.sirius.server.application
-Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.sirius.server.application/about.html b/plugins/org.eclipse.sirius.server.application/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.application/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.application/build.properties b/plugins/org.eclipse.sirius.server.application/build.properties
deleted file mode 100644
index 89aa6b3..0000000
--- a/plugins/org.eclipse.sirius.server.application/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.application/plugin.properties b/plugins/org.eclipse.sirius.server.application/plugin.properties
deleted file mode 100644
index cd711a3..0000000
--- a/plugins/org.eclipse.sirius.server.application/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server Application
-providerName = Eclipse Modeling Project
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.application/plugin.xml b/plugins/org.eclipse.sirius.server.application/plugin.xml
deleted file mode 100644
index 9f2fcfb..0000000
--- a/plugins/org.eclipse.sirius.server.application/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="SiriusServerApplication"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="singleton-global"
-            thread="any"
-            visible="true">
-         <run
-               class="org.eclipse.sirius.server.application.internal.SiriusServerApplication">
-         </run>
-      </application>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.application/pom.xml b/plugins/org.eclipse.sirius.server.application/pom.xml
deleted file mode 100644
index 0945605..0000000
--- a/plugins/org.eclipse.sirius.server.application/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.application</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.application/src/org/eclipse/sirius/server/application/internal/SiriusServerApplication.java b/plugins/org.eclipse.sirius.server.application/src/org/eclipse/sirius/server/application/internal/SiriusServerApplication.java
deleted file mode 100644
index 8eed8a4..0000000
--- a/plugins/org.eclipse.sirius.server.application/src/org/eclipse/sirius/server/application/internal/SiriusServerApplication.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.application.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * The entry point of the Sirius Server application.
- *
- * @author sbegaudeau
- */
-public class SiriusServerApplication implements IApplication {
-
-    /**
-     * The identifier of the bundler containing the Sirius server.
-     */
-    private static final String SIRIUS_SERVER_PLUGIN_ID = "org.eclipse.sirius.server"; //$NON-NLS-1$
-
-    /**
-     * The application context.
-     */
-    private IApplicationContext appContext;
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-     */
-    @Override
-    public Object start(IApplicationContext context) throws Exception {
-        this.appContext = context;
-
-        Bundle siriusServerBundle = Platform.getBundle(SIRIUS_SERVER_PLUGIN_ID);
-        if (siriusServerBundle != null && siriusServerBundle.getState() != Bundle.ACTIVE) {
-            try {
-                siriusServerBundle.start(Bundle.START_TRANSIENT);
-            } catch (BundleException exception) {
-                // @CHECKSTYLE:OFF
-                exception.printStackTrace();
-                // @CHECKSTYLE:ON
-            }
-        }
-        return IApplicationContext.EXIT_ASYNC_RESULT;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.equinox.app.IApplication#stop()
-     */
-    @Override
-    public void stop() {
-        appContext.setResult(EXIT_OK, this);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/.checkstyle b/plugins/org.eclipse.sirius.server.backend/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.backend/.classpath b/plugins/org.eclipse.sirius.server.backend/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.backend/.project b/plugins/org.eclipse.sirius.server.backend/.project
deleted file mode 100644
index 6906809..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.backend</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.backend/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.backend/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.backend/META-INF/MANIFEST.MF
deleted file mode 100644
index eb5b283..0000000
--- a/plugins/org.eclipse.sirius.server.backend/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,40 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.backend;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.resources;bundle-version="3.8.0",
- javax.servlet;bundle-version="3.1.0",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.sirius;bundle-version="6.0.0",
- org.eclipse.sirius.ext.base;bundle-version="6.0.0",
- org.eclipse.sirius.diagram;bundle-version="6.0.0",
- org.eclipse.sirius.table;bundle-version="6.0.0",
- org.eclipse.sirius.tree;bundle-version="6.0.0",
- org.eclipse.sirius.server;bundle-version="6.0.0",
- com.google.gson;bundle-version="2.7.0",
- org.eclipse.sirius.workflow.model;bundle-version="6.0.0",
- org.eclipse.sirius.ecore.extender;bundle-version="6.0.0",
- org.eclipse.emf.transaction;bundle-version="1.9.0",
- org.eclipse.sirius.common;bundle-version="6.0.0",
- org.eclipse.jetty.servlets;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.sirius.common.interpreter;bundle-version="6.0.0"
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.server.backend.internal;x-friends:="org.eclipse.sirius.tests.server.backend",
- org.eclipse.sirius.server.backend.internal.expressions;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.activities;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.dashboard;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.pages;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.project;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.projects;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.services.workflow;x-internal:=true,
- org.eclipse.sirius.server.backend.internal.utils;x-internal:=true
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.server.backend.internal.SiriusServerBackendPlugin$Implementation
-Automatic-Module-Name: org.eclipse.sirius.server.backend
diff --git a/plugins/org.eclipse.sirius.server.backend/about.html b/plugins/org.eclipse.sirius.server.backend/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.backend/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.backend/build.properties b/plugins/org.eclipse.sirius.server.backend/build.properties
deleted file mode 100644
index c452f07..0000000
--- a/plugins/org.eclipse.sirius.server.backend/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.backend/plugin.properties b/plugins/org.eclipse.sirius.server.backend/plugin.properties
deleted file mode 100644
index 20aced6..0000000
--- a/plugins/org.eclipse.sirius.server.backend/plugin.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server Backend
-providerName = Eclipse Modeling Project
-
-SiriusServerBackendService_label = The Sirius Server Backend services
-SiriusServerDashboardService_label = The dashboard service
-SiriusServerDashboardService_description = Used to register the dashboard service
-
-SiriusServerProjectsService_label = The projects service
-SiriusServerProjectsService_description = Used to register the projects service
-
-SiriusServerProjectService_label = The project service
-SiriusServerProjectService_description = Used to register the project service
-
-SiriusServerActivityExecutorService_label = The activity executor service
-SiriusServerActivityExecutorService_description = Used to register the activity executor service
-
-SiriusServerPageService_label = The page service
-SiriusServerPageService_description = Used to register the page service
-
-SiriusServerProjectsService_projectAlreadyExists = The project {0} already exists
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.backend/plugin.xml b/plugins/org.eclipse.sirius.server.backend/plugin.xml
deleted file mode 100644
index cbfc48f..0000000
--- a/plugins/org.eclipse.sirius.server.backend/plugin.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.backendServices"
-         name="%SiriusServerBackendService_label"
-         point="org.eclipse.sirius.server.siriusServerService">
-      <descriptor
-            class="org.eclipse.sirius.server.backend.internal.services.dashboard.SiriusServerDashboardService"
-            description="%SiriusServerDashboardService_description"
-            id="org.eclipse.sirius.server.dashboardService"
-            label="%SiriusServerDashboardService_label">
-      </descriptor>
-      <descriptor
-            class="org.eclipse.sirius.server.backend.internal.services.projects.SiriusServerProjectsService"
-            description="%SiriusServerProjectsService_description"
-            id="org.eclipse.sirius.server.projectsService"
-            label="%SiriusServerProjectsService_label">
-      </descriptor>
-      <descriptor
-            class="org.eclipse.sirius.server.backend.internal.services.activities.SiriusServerActivityExecutorService"
-            description="%SiriusServerActivityExecutorService_description"
-            id="org.eclipse.sirius.server.ActivityExecutorService"
-            label="%SiriusServerActivityExecutorService_label">
-      </descriptor>
-      <descriptor
-            class="org.eclipse.sirius.server.backend.internal.services.pages.SiriusServerPageService"
-            description="%SiriusServerPageService_description"
-            id="org.eclipse.sirius.server.PageService"
-            label="%SiriusServerPageService_label">
-      </descriptor>
-      <descriptor
-            class="org.eclipse.sirius.server.backend.internal.services.project.SiriusServerProjectService"
-            description="%SiriusServerProjectService_description"
-            id="org.eclipse.sirius.server.projectService"
-            label="%SiriusServerProjectService_label">
-      </descriptor>
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.backend/pom.xml b/plugins/org.eclipse.sirius.server.backend/pom.xml
deleted file mode 100644
index 0f482a4..0000000
--- a/plugins/org.eclipse.sirius.server.backend/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.backend</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerBackendPlugin.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerBackendPlugin.java
deleted file mode 100644
index 80567ba..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerBackendPlugin.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius server backend plugin.
- *
- * @author sbegaudeau
- */
-public class SiriusServerBackendPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.backend"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerBackendPlugin INSTANCE = new SiriusServerBackendPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerBackendPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerBackendPlugin.plugin = this;
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerMessages.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerMessages.java
deleted file mode 100644
index 8022d3d..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/SiriusServerMessages.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Utility class used for the internationalization.
- *
- * @author sbegaudeau
- */
-public final class SiriusServerMessages {
-
-    static {
-        I18N.initializeMessages(SiriusServerMessages.class, SiriusServerBackendPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-
-    @TranslatableMessage
-    public static String SiriusServerProjectsService_projectAlreadyExists;
-
-    // CHECKSTYLE:ON
-
-    private SiriusServerMessages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/expressions/SiriusBackendInterpreter.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/expressions/SiriusBackendInterpreter.java
deleted file mode 100644
index 5876645..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/expressions/SiriusBackendInterpreter.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.expressions;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.common.interpreter.api.EvaluationResult;
-import org.eclipse.sirius.common.interpreter.api.IEvaluationResult;
-import org.eclipse.sirius.common.interpreter.api.IInterpreter;
-import org.eclipse.sirius.common.tools.api.interpreter.EvaluationException;
-
-/**
- * The interpreter used by the backend.
- *
- * @author sbegaudeau
- */
-public class SiriusBackendInterpreter implements IInterpreter {
-    /**
-     * The interpreter of the Sirius session.
-     */
-    private org.eclipse.sirius.common.tools.api.interpreter.IInterpreter interpreter;
-
-    /**
-     * The constructor.
-     *
-     * @param session
-     *            The Sirius session
-     */
-    public SiriusBackendInterpreter(Session session) {
-        this(session.getInterpreter());
-    }
-
-    /**
-     * The constructor.
-     *
-     * @param interpreterWithDiagnostic
-     *            An interpreter
-     */
-    public SiriusBackendInterpreter(org.eclipse.sirius.common.tools.api.interpreter.IInterpreter interpreterWithDiagnostic) {
-        this.interpreter = Objects.requireNonNull(interpreterWithDiagnostic);
-    }
-
-    @Override
-    public IEvaluationResult evaluateExpression(Map<String, Object> variables, String expr) {
-        IEvaluationResult result = EvaluationResult.noEvaluation();
-        Object self = variables.get("self"); //$NON-NLS-1$
-        if (self instanceof EObject) {
-            try {
-                setupInterpreter(variables);
-                org.eclipse.sirius.common.tools.api.interpreter.IEvaluationResult evaluationResult = this.interpreter.evaluateExpression((EObject) self, expr);
-                result = EvaluationResult.of(evaluationResult.getValue(), evaluationResult.getDiagnostic());
-            } catch (EvaluationException e) {
-                result = EvaluationResult.withError(BasicDiagnostic.toDiagnostic(e));
-            } finally {
-                tearDownInterpreter(variables);
-            }
-        }
-        return result;
-    }
-
-    private void setupInterpreter(Map<String, Object> variables) {
-        declareLocals(variables, interpreter);
-    }
-
-    private void declareLocals(Map<String, Object> variables, org.eclipse.sirius.common.tools.api.interpreter.IInterpreter i) {
-        Set<Entry<String, Object>> entries = variables.entrySet();
-        for (Entry<String, Object> entry : entries) {
-            i.setVariable(entry.getKey(), entry.getValue());
-        }
-    }
-
-    private void tearDownInterpreter(Map<String, Object> variables) {
-        unsetLocals(variables, this.interpreter);
-    }
-
-    private void unsetLocals(Map<String, Object> variables, org.eclipse.sirius.common.tools.api.interpreter.IInterpreter iInterpreter) {
-        variables.keySet().forEach(iInterpreter::unSetVariable);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/activities/SiriusServerActivityExecutorService.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/activities/SiriusServerActivityExecutorService.java
deleted file mode 100644
index c2fd258..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/activities/SiriusServerActivityExecutorService.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.activities;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_NOT_FOUND;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import java.util.Map;
-import java.util.Optional;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.backend.internal.services.workflow.SiriusToolServices;
-import org.eclipse.sirius.server.backend.internal.services.workflow.WorkflowHelper;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerUtils;
-import org.eclipse.sirius.viewpoint.DAnalysis;
-import org.eclipse.sirius.workflow.ActivityDescription;
-
-/**
- * The service used to execute a specific activity of a workflow.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/projects/{projectName}/pages/{pageIdentifier}/sections/{sectionIdentifier}/activities/{activityIdentifier}/execute")
-public class SiriusServerActivityExecutorService implements ISiriusServerService {
-
-    /**
-     * The name of the variable used to capture the name of the project.
-     */
-    private static final Object PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the variable used to capture the identifier of the page.
-     */
-    private static final Object PAGE_IDENTIFIER = "pageIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the variable used to capture the identifier of the section.
-     */
-    private static final Object SECTION_IDENTIFIER = "sectionIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the variable used to capture the identifier of the activity.
-     */
-    private static final Object ACTIVITY_IDENTIFIER = "activityIdentifier"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doPost(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        String projectName = variables.get(PROJECT_NAME);
-        String pageId = variables.get(PAGE_IDENTIFIER);
-        String sectionId = variables.get(SECTION_IDENTIFIER);
-        String activityId = variables.get(ACTIVITY_IDENTIFIER);
-
-        // @formatter:off
-        Optional<IProject> optionalProject = Optional.ofNullable(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName));
-        Optional<ModelingProject> optionalModelingProject = optionalProject.filter(ModelingProject::hasModelingProjectNature)
-                .filter(IProject::isOpen)
-                .map(iProject -> ModelingProject.asModelingProject(iProject).get()); // FIXME Sirius Optional removal!
-        // @formatter:on
-        if (optionalModelingProject.isPresent()) {
-            ModelingProject modelingProject = optionalModelingProject.get();
-            Session session = SiriusServerUtils.getSession(modelingProject);
-
-            WorkflowHelper.on(session).findActivityById(pageId, sectionId, activityId).ifPresent(activity -> {
-                executeActivity(session, activity);
-            });
-
-            return new SiriusServerResponse(STATUS_OK);
-        }
-
-        return new SiriusServerResponse(STATUS_NOT_FOUND);
-    }
-
-    private void executeActivity(Session session, ActivityDescription activity) {
-        URI taskURI = EcoreUtil.getURI(activity.getOperation());
-        TransactionalEditingDomain ted = session.getTransactionalEditingDomain();
-        ted.getCommandStack().execute(new RecordingCommand(ted) {
-            @Override
-            protected void doExecute() {
-                DAnalysis self = ((DAnalysisSessionImpl) session).getAnalyses().get(0);
-                new SiriusToolServices().executeOperation(self, taskURI.toString());
-            }
-        });
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardDto.java
deleted file mode 100644
index d3f32e1..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardDto.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.dashboard;
-
-import java.util.List;
-
-/**
- * The DTO used to return the state of the dashboard to the client.
- * 
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerDashboardDto {
-    private int projectsCount;
-
-    private int viewpointsCount;
-
-    private List<SiriusServerDashboardProjectDto> projects;
-
-    private int metamodelsCount;
-
-    /**
-     * The constructor.
-     *
-     * @param projectsCount
-     *            The number of projects
-     * @param viewpointsCount
-     *            The number of viewpoints
-     * @param metamodelsCount
-     *            The number of metamodels
-     * @param projects
-     *            The projects
-     */
-    public SiriusServerDashboardDto(int projectsCount, int viewpointsCount, int metamodelsCount, List<SiriusServerDashboardProjectDto> projects) {
-        this.projectsCount = projectsCount;
-        this.viewpointsCount = viewpointsCount;
-        this.metamodelsCount = metamodelsCount;
-        this.projects = projects;
-    }
-
-    public int getProjectsCount() {
-        return this.projectsCount;
-    }
-
-    public int getViewpointsCount() {
-        return this.viewpointsCount;
-    }
-
-    public int getMetamodelsCount() {
-        return this.metamodelsCount;
-    }
-
-    public List<SiriusServerDashboardProjectDto> getProjects() {
-        return this.projects;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardProjectDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardProjectDto.java
deleted file mode 100644
index 1e828e6..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardProjectDto.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.dashboard;
-
-/**
- * The DTO used to represent one project in the dashboard.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerDashboardProjectDto {
-    private String name;
-
-    private String description;
-
-    /**
-     * The constructor.
-     *
-     * @param name
-     *            The name of the project
-     * @param description
-     *            The description of the project
-     */
-    public SiriusServerDashboardProjectDto(String name, String description) {
-        this.name = name;
-        this.description = description;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getDescription() {
-        return this.description;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardService.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardService.java
deleted file mode 100644
index 9d0104c..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/dashboard/SiriusServerDashboardService.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.dashboard;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.sirius.business.api.componentization.ViewpointRegistry;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerUtils;
-
-/**
- * Service used to interact with the dashboard.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/dashboard")
-public class SiriusServerDashboardService implements ISiriusServerService {
-
-    /**
-     * The number of projects to be displayed in the dashboard.
-     */
-    private static final int DASHBOARD_PROJECT_COUNT = 7;
-
-    @Override
-    public SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return new SiriusServerResponse(STATUS_OK, this.getDashboard());
-    }
-
-    /**
-     * Returns the dashboard.
-     *
-     * @return The dashboard
-     */
-    private SiriusServerDashboardDto getDashboard() {
-        int projectsCount = Long.valueOf(this.getModelingProjects().count()).intValue();
-        int viewpointsCount = ViewpointRegistry.getInstance().getViewpoints().size();
-        int metamodelsCount = EPackage.Registry.INSTANCE.size();
-
-        // @formatter:off
-		List<SiriusServerDashboardProjectDto> projects = this.getModelingProjects()
-				.limit(DASHBOARD_PROJECT_COUNT)
-				.map(this::convertToProject)
-				.collect(Collectors.toList());
-		// @formatter:on
-
-        return new SiriusServerDashboardDto(projectsCount, viewpointsCount, metamodelsCount, projects);
-    }
-
-    /**
-     * Returns a stream of the projects with the modeling project nature in the
-     * workspace.
-     *
-     * @return A stream of the projects with the modeling project nature in the
-     *         workspace
-     */
-    private Stream<IProject> getModelingProjects() {
-        IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        // @formatter:off
-		return Arrays.stream(allProjects)
-				.filter(ModelingProject::hasModelingProjectNature)
-				.filter(IProject::isOpen);
-		// @formatter:on
-    }
-
-    /**
-     * Converts the given project into a
-     * {@link SiriusServerDashboardProjectDto}.
-     *
-     * @param iProject
-     *            A project with the modeling project nature
-     * @return The {@link SiriusServerDashboardProjectDto}
-     */
-    private SiriusServerDashboardProjectDto convertToProject(IProject iProject) {
-        String name = iProject.getName();
-        String description = SiriusServerUtils.getProjectDescription(iProject);
-
-        return new SiriusServerDashboardProjectDto(name, description);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerActivityDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerActivityDto.java
deleted file mode 100644
index dec0d86..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerActivityDto.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.pages;
-
-/**
- * The DTO used to represent an activity of the workflow.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerActivityDto {
-    private String identifier;
-
-    private String name;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier of the activity
-     * @param name
-     *            The name of the activity
-     */
-    public SiriusServerActivityDto(String identifier, String name) {
-        this.identifier = identifier;
-        this.name = name;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageDto.java
deleted file mode 100644
index 75bbfc1..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageDto.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.pages;
-
-import java.util.List;
-
-/**
- * The DTO used to receive the details of a page.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerPageDto {
-    private String identifier;
-
-    private String name;
-
-    private String description;
-
-    private List<SiriusServerSectionDto> sections;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier
-     * @param name
-     *            The name
-     * @param description
-     *            The description
-     * @param sections
-     *            The sections
-     */
-    public SiriusServerPageDto(String identifier, String name, String description, List<SiriusServerSectionDto> sections) {
-        this.identifier = identifier;
-        this.name = name;
-        this.description = description;
-        this.sections = sections;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getDescription() {
-        return this.description;
-    }
-
-    public List<SiriusServerSectionDto> getSections() {
-        return this.sections;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageService.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageService.java
deleted file mode 100644
index a10d16f..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerPageService.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.pages;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_NOT_FOUND;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.backend.internal.services.workflow.WorkflowHelper;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerUtils;
-
-/**
- * The service used to manipulate a page of the workflow of a project.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/projects/{projectName}/pages/{pageIdentifier}")
-public class SiriusServerPageService implements ISiriusServerService {
-
-    /**
-     * The name of the variable used to capture the name of the project.
-     */
-    private static final Object PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the variable used to capture the identifier of the page.
-     */
-    private static final Object PAGE_IDENTIFIER = "pageIdentifier"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        String projectName = variables.get(PROJECT_NAME);
-        String pageIdentifier = variables.get(PAGE_IDENTIFIER);
-
-        // @formatter:off
-        Optional<IProject> optionalProject = Optional.ofNullable(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName));
-        Optional<ModelingProject> optionalModelingProject = optionalProject.filter(ModelingProject::hasModelingProjectNature)
-                .filter(IProject::isOpen)
-                .map(iProject -> ModelingProject.asModelingProject(iProject).get()); // FIXME Sirius Optional removal!
-        Optional<SiriusServerPageDto> optionalPage = optionalModelingProject.flatMap(modelingProject -> this.getPage(modelingProject, pageIdentifier));
-        // @formatter:on
-        if (optionalPage.isPresent()) {
-            SiriusServerPageDto page = optionalPage.get();
-            return new SiriusServerResponse(STATUS_OK, page);
-        }
-
-        return new SiriusServerResponse(STATUS_NOT_FOUND);
-    }
-
-    /**
-     * Finds the page with the given pageIdentifier in the given modeling
-     * project.
-     *
-     * @param modelingProject
-     *            The modeling project
-     * @param pageIdentifier
-     *            The page identifier
-     * @return An optional containing the page found or an empty optional if it
-     *         does not exist
-     */
-    private Optional<SiriusServerPageDto> getPage(ModelingProject modelingProject, String pageIdentifier) {
-        Session session = SiriusServerUtils.getSession(modelingProject);
-        return WorkflowHelper.on(session).findPageById(pageIdentifier).map(page -> {
-            List<SiriusServerSectionDto> sections = page.getSections().stream().map(section -> {
-                List<SiriusServerActivityDto> activities = section.getActivities().stream().map(desc -> {
-                    return new SiriusServerActivityDto(desc.getName(), desc.getLabelExpression());
-                }).collect(Collectors.toList());
-                return new SiriusServerSectionDto(section.getName(), section.getTitleExpression(), activities);
-
-            }).collect(Collectors.toList());
-            return new SiriusServerPageDto(page.getName(), page.getTitleExpression(), page.getDescriptionExpression(), sections);
-        });
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerSectionDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerSectionDto.java
deleted file mode 100644
index 0b251fc..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/pages/SiriusServerSectionDto.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.pages;
-
-import java.util.List;
-
-/**
- * The DTO used to represent a section of the workflow page.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerSectionDto {
-    private String identifier;
-
-    private String name;
-
-    private List<SiriusServerActivityDto> activities;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier
-     * @param name
-     *            The name
-     * @param activities
-     *            The activities
-     */
-    public SiriusServerSectionDto(String identifier, String name, List<SiriusServerActivityDto> activities) {
-        this.identifier = identifier;
-        this.name = name;
-        this.activities = activities;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public List<SiriusServerActivityDto> getActivities() {
-        return this.activities;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/AbstractSiriusServerRepresentationDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/AbstractSiriusServerRepresentationDto.java
deleted file mode 100644
index 46ca9d0..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/AbstractSiriusServerRepresentationDto.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The superclass of all the representation DTOs.
- * 
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public abstract class AbstractSiriusServerRepresentationDto {
-    private String kind;
-
-    private String viewpointName;
-
-    private String descriptionName;
-
-    private String name;
-
-    /**
-     * The constructor.
-     *
-     * @param kind
-     *            The kind
-     * @param viewpointName
-     *            The name of the viewpoint
-     * @param descriptionName
-     *            The name of the description
-     * @param name
-     *            The name
-     */
-    public AbstractSiriusServerRepresentationDto(String kind, String viewpointName, String descriptionName, String name) {
-        this.kind = kind;
-        this.descriptionName = descriptionName;
-        this.name = name;
-    }
-
-    public String getKind() {
-        return this.kind;
-    }
-
-    public String getViewpointName() {
-        return this.viewpointName;
-    }
-
-    public String getDescriptionName() {
-        return this.descriptionName;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerActivityDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerActivityDto.java
deleted file mode 100644
index 55cd699..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerActivityDto.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent an activity of the workflow.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerActivityDto {
-    private String identifier;
-
-    private String name;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier of the activity
-     * @param name
-     *            The name of the activity
-     */
-    public SiriusServerActivityDto(String identifier, String name) {
-        this.identifier = identifier;
-        this.name = name;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerDiagramDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerDiagramDto.java
deleted file mode 100644
index 81edbe7..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerDiagramDto.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent a diagram.
- * 
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerDiagramDto extends AbstractSiriusServerRepresentationDto {
-
-    private static final String KIND = "diagram"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     *
-     * @param viewpointName
-     *            The name of the viewpoint
-     * @param descriptionName
-     *            The name of the description
-     * @param name
-     *            The name
-     */
-    public SiriusServerDiagramDto(String viewpointName, String descriptionName, String name) {
-        super(KIND, viewpointName, descriptionName, name);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerPageDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerPageDto.java
deleted file mode 100644
index ccfc2d8..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerPageDto.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent a page of the workflow.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerPageDto {
-    private String identifier;
-
-    private String name;
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param name
-     *            The name
-     */
-    public SiriusServerPageDto(String identifier, String name) {
-        this.identifier = identifier;
-        this.name = name;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDescriptionUpdatedDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDescriptionUpdatedDto.java
deleted file mode 100644
index f84f596..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDescriptionUpdatedDto.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO received by clients after the update of the project description.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerProjectDescriptionUpdatedDto {
-    private String description;
-
-    /**
-     * The constructor.
-     * 
-     * @param description
-     *            The new description of the project
-     */
-    public SiriusServerProjectDescriptionUpdatedDto(String description) {
-        this.description = description;
-    }
-
-    public String getDescription() {
-        return this.description;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDto.java
deleted file mode 100644
index cf02509..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectDto.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-import java.util.List;
-
-/**
- * The DTO used to return a project to clients.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerProjectDto {
-    private String name;
-
-    private String description;
-
-    private List<AbstractSiriusServerRepresentationDto> representations;
-
-    private List<SiriusServerSemanticResourceDto> semanticResources;
-
-    private List<SiriusServerPageDto> pages;
-
-    private List<SiriusServerSectionDto> currentPageSections;
-
-    /**
-     * The constructor.
-     *
-     * @param name
-     *            The name of the project
-     * @param description
-     *            The description of the project
-     * @param representations
-     *            The representations
-     * @param semanticResources
-     *            The semantic resources
-     * @param pages
-     *            The pages of the workflow
-     * @param currentPageSections
-     *            The sections of the current page of the workflow
-     */
-    public SiriusServerProjectDto(String name, String description, List<AbstractSiriusServerRepresentationDto> representations, List<SiriusServerSemanticResourceDto> semanticResources,
-            List<SiriusServerPageDto> pages, List<SiriusServerSectionDto> currentPageSections) {
-        this.name = name;
-        this.description = description;
-        this.representations = representations;
-        this.semanticResources = semanticResources;
-        this.pages = pages;
-        this.currentPageSections = currentPageSections;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getDescription() {
-        return this.description;
-    }
-
-    public List<AbstractSiriusServerRepresentationDto> getRepresentations() {
-        return this.representations;
-    }
-
-    public List<SiriusServerSemanticResourceDto> getSemanticResources() {
-        return this.semanticResources;
-    }
-
-    public List<SiriusServerPageDto> getPages() {
-        return this.pages;
-    }
-
-    public List<SiriusServerSectionDto> getCurrentPageSections() {
-        return this.currentPageSections;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectService.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectService.java
deleted file mode 100644
index a477596..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerProjectService.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_INTERNAL_SERVER_ERROR;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_NOT_FOUND;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import com.google.gson.Gson;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.file.Files;
-import java.text.DecimalFormat;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.sirius.business.api.dialect.DialectManager;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.danalysis.DAnalysisSession;
-import org.eclipse.sirius.common.interpreter.api.IEvaluationResult;
-import org.eclipse.sirius.diagram.description.DiagramDescription;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.backend.internal.SiriusServerBackendPlugin;
-import org.eclipse.sirius.server.backend.internal.expressions.SiriusBackendInterpreter;
-import org.eclipse.sirius.server.backend.internal.services.workflow.WorkflowHelper;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerUtils;
-import org.eclipse.sirius.table.metamodel.table.description.TableDescription;
-import org.eclipse.sirius.tree.description.TreeDescription;
-import org.eclipse.sirius.viewpoint.DAnalysis;
-import org.eclipse.sirius.viewpoint.DRepresentationDescriptor;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-
-/**
- * Service used to manipulate a specific project.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/projects/{projectName}")
-public class SiriusServerProjectService implements ISiriusServerService {
-
-    /**
-     * The name of the self variable.
-     */
-    private static final String SELF = "self"; //$NON-NLS-1$
-
-    /**
-     * The name of the variable used to capture the name of the project.
-     */
-    private static final Object PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        Optional<String> optionalProjectName = Optional.ofNullable(variables.get(PROJECT_NAME));
-        Optional<ModelingProject> optionalModelingProject = optionalProjectName.flatMap(this::findModelingProjectByName);
-        Optional<SiriusServerProjectDto> optionalProject = optionalModelingProject.map(this::getProjectFromModelingProject);
-
-        return optionalProject.map(project -> new SiriusServerResponse(STATUS_OK, project)).orElseGet(() -> new SiriusServerResponse(STATUS_NOT_FOUND));
-    }
-
-    /**
-     * Finds the modeling project with the given name.
-     *
-     * @param projectName
-     *            The name of the project
-     * @return An optional with the modeling project or an empty optional if it
-     *         could not be found
-     */
-    private Optional<ModelingProject> findModelingProjectByName(String projectName) {
-        Optional<IProject> optionalProject = Optional.ofNullable(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName));
-        // @formatter:off
-		return optionalProject.filter(ModelingProject::hasModelingProjectNature)
-				.filter(IProject::isOpen)
-				.map(iProject -> ModelingProject.asModelingProject(iProject).get()); // FIXME Sirius Optional removal!
-		// @formatter:on
-    }
-
-    /**
-     * Converts the given modeling project into a project to be returned by the
-     * service.
-     *
-     * @param modelingProject
-     *            The modeling project
-     * @return The project to be returned by the service
-     */
-    private SiriusServerProjectDto getProjectFromModelingProject(ModelingProject modelingProject) {
-        Session session = SiriusServerUtils.getSession(modelingProject);
-
-        String projectName = modelingProject.getProject().getName();
-        String description = SiriusServerUtils.getProjectDescription(modelingProject.getProject());
-        List<AbstractSiriusServerRepresentationDto> representations = this.getRepresentations(session);
-        List<SiriusServerSemanticResourceDto> semanticResources = this.getSemanticResources(modelingProject.getProject(), session);
-        List<SiriusServerPageDto> pages = this.getPages(modelingProject, session);
-        List<SiriusServerSectionDto> currentPageSections = this.getFirstPageSections(session);
-        return new SiriusServerProjectDto(projectName, description, representations, semanticResources, pages, currentPageSections);
-    }
-
-    /**
-     * Returns the list of workflow page from the given session.
-     *
-     * @param modelingProject
-     *            The modeling project
-     * @param session
-     *            The session
-     * @return The list of workflow page from the given session
-     */
-    private List<SiriusServerPageDto> getPages(ModelingProject modelingProject, Session session) {
-        return WorkflowHelper.on(session).getPageDescriptions().map(page -> {
-            DAnalysis self = ((DAnalysisSession) session).allAnalyses().stream().findFirst().orElse(null);
-            Map<String, Object> variables = new HashMap<>();
-            variables.put(SELF, self);
-            IEvaluationResult result = new SiriusBackendInterpreter(session).evaluateExpression(variables, page.getTitleExpression());
-
-            String identifier = page.getName();
-            String name = result.asString();
-            return new SiriusServerPageDto(identifier, name);
-        }).collect(Collectors.toList());
-    }
-
-    /**
-     * Returns the list of the sections of the current page.
-     *
-     * @param session
-     *            The session
-     * @return The list of the sections of the current page
-     */
-    private List<SiriusServerSectionDto> getFirstPageSections(Session session) {
-        Optional<PageDescription> optionalPageDescription = WorkflowHelper.on(session).getPageDescriptions().findFirst();
-        List<SectionDescription> sectionDescriptions = optionalPageDescription.map(PageDescription::getSections).orElseGet(BasicEList::new);
-
-        // @formatter:off
-        return sectionDescriptions.stream()
-                .map(sectionDescription -> this.convertSection(session, sectionDescription))
-                .collect(Collectors.toList());
-        // @formatter:on
-    }
-
-    /**
-     * Converts the given {@link SectionDescription}.
-     *
-     * @param session
-     *            The Sirius session
-     * @param sectionDescription
-     *            The section description
-     * @return The section DTO
-     */
-    private SiriusServerSectionDto convertSection(Session session, SectionDescription sectionDescription) {
-        String sectionIdentifier = sectionDescription.getName();
-
-        DAnalysis self = ((DAnalysisSession) session).allAnalyses().stream().findFirst().orElse(null);
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(SELF, self);
-        IEvaluationResult result = new SiriusBackendInterpreter(session).evaluateExpression(variables, sectionDescription.getTitleExpression());
-        String sectionName = result.asString();
-
-        // @formatter:off
-        List<SiriusServerActivityDto> activities = sectionDescription.getActivities().stream()
-                .map(activityDescription -> this.convertActivity(session, activityDescription))
-                .collect(Collectors.toList());
-        // @formatter:on
-
-        return new SiriusServerSectionDto(sectionIdentifier, sectionName, activities);
-    }
-
-    /**
-     * Converts the given {@link ActivityDescription}.
-     *
-     * @param session
-     *            The Sirius session
-     * @param activityDescription
-     *            The activity description
-     * @return The activity DTO
-     */
-    private SiriusServerActivityDto convertActivity(Session session, ActivityDescription activityDescription) {
-        String activityIdentifier = activityDescription.getName();
-
-        DAnalysis self = ((DAnalysisSession) session).allAnalyses().stream().findFirst().orElse(null);
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(SELF, self);
-        IEvaluationResult result = new SiriusBackendInterpreter(session).evaluateExpression(variables, activityDescription.getLabelExpression());
-        String activityName = result.asString();
-
-        return new SiriusServerActivityDto(activityIdentifier, activityName);
-    }
-
-    /**
-     * Returns the list of representations from the given session.
-     *
-     * @param session
-     *            The session
-     * @return The list of representations from the given session
-     */
-    private List<AbstractSiriusServerRepresentationDto> getRepresentations(Session session) {
-        Collection<DRepresentationDescriptor> representationDescriptors = DialectManager.INSTANCE.getAllRepresentationDescriptors(session);
-        // @formatter:off
-		return representationDescriptors.stream()
-			.filter(descriptor -> !descriptor.getDescription().eIsProxy())
-			.map(this::convertToRepresentation)
-			.collect(Collectors.toList());
-		// @formatter:on
-    }
-
-    /**
-     * Converts the given {@link DRepresentationDescriptor} into an
-     * {@link AbstractSiriusServerRepresentationDto}.
-     *
-     * @param descriptor
-     *            The descriptor
-     * @return The {@link AbstractSiriusServerRepresentationDto}
-     */
-    private AbstractSiriusServerRepresentationDto convertToRepresentation(DRepresentationDescriptor descriptor) {
-        String name = descriptor.getName();
-
-        RepresentationDescription description = descriptor.getDescription();
-        String descriptionName = description.getName();
-
-        // @formatter:off
-		String viewpointName = Optional.of(description.eContainer())
-				.filter(Viewpoint.class::isInstance)
-				.map(Viewpoint.class::cast)
-				.map(Viewpoint::getName)
-				.orElse(""); //$NON-NLS-1$
-		// @formatter:on
-
-        AbstractSiriusServerRepresentationDto representation = null;
-        if (description instanceof DiagramDescription) {
-            representation = new SiriusServerDiagramDto(viewpointName, descriptionName, name);
-        } else if (description instanceof TableDescription) {
-            representation = new SiriusServerTableDto(viewpointName, descriptionName, name);
-        } else if (description instanceof TreeDescription) {
-            representation = new SiriusServerTreeDto(viewpointName, descriptionName, name);
-        }
-
-        return representation;
-    }
-
-    /**
-     * Returns the list of semantic resources from the given session.
-     *
-     * @param session
-     *            The Sirius session
-     * @return The list of semantic resources from the given session
-     */
-    private List<SiriusServerSemanticResourceDto> getSemanticResources(IProject project, Session session) {
-        Collection<Resource> semanticResources = session.getSemanticResources();
-        // @formatter:off
-		return semanticResources.stream()
-				.map(Resource::getURI)
-				.filter(URI::isPlatformResource)
-				.map(uri -> {
-					String platformString = uri.toPlatformString(true);
-					return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
-				})
-				.filter(iFile -> iFile.getProject().equals(project))
-				.map(this::convertToSemanticResource)
-				.collect(Collectors.toList());
-		// @formatter:on
-    }
-
-    /**
-     * Converts the given IFile into a {@link SiriusServerSemanticResourceDto}.
-     *
-     * @param iFile
-     *            The semantic resource
-     * @return A {@link SiriusServerSemanticResourceDto}.
-     */
-    private SiriusServerSemanticResourceDto convertToSemanticResource(IFile iFile) {
-        String name = iFile.getName();
-        String path = iFile.getProjectRelativePath().toString();
-
-        long size = 0;
-
-        File file = iFile.getLocation().toFile();
-        try {
-            size = Files.size(file.toPath());
-        } catch (IOException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerBackendPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerBackendPlugin.getPlugin().log(status);
-        }
-
-        String sizeLabel = this.getSizeLabel(size);
-
-        return new SiriusServerSemanticResourceDto(path, name, sizeLabel);
-    }
-
-    /**
-     * Returns a label displaying the given size in KB or MB.
-     *
-     * @param size
-     *            The size
-     * @return The label
-     */
-    private String getSizeLabel(long size) {
-        DecimalFormat decimalFormat = new DecimalFormat("0.00"); //$NON-NLS-1$
-
-        double kb = 1024d;
-        double mb = kb * 1024d;
-
-        if (size > mb) {
-            return decimalFormat.format(size / mb) + "MB"; //$NON-NLS-1$
-        }
-        return decimalFormat.format(size / kb) + "KB"; //$NON-NLS-1$
-    }
-
-    @Override
-    public SiriusServerResponse doPut(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        SiriusServerResponse response = null;
-        try {
-            Reader reader = new InputStreamReader(request.getInputStream(), SiriusServerUtils.UTF_8);
-            SiriusServerUpdateProjectDescriptionDto updateProjectDescription = new Gson().fromJson(reader, SiriusServerUpdateProjectDescriptionDto.class);
-
-            String projectName = variables.get(PROJECT_NAME);
-            IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-            if (project.exists()) {
-                IProjectDescription description = project.getDescription();
-                description.setComment(updateProjectDescription.getDescription());
-                project.setDescription(description, new NullProgressMonitor());
-                response = new SiriusServerResponse(STATUS_OK, new SiriusServerProjectDescriptionUpdatedDto(description.getComment()));
-            } else {
-                response = new SiriusServerResponse(STATUS_NOT_FOUND);
-            }
-        } catch (@SuppressWarnings("unused") IOException | CoreException exception) {
-            // We don't want to send back the message of the exception
-            response = new SiriusServerResponse(STATUS_INTERNAL_SERVER_ERROR);
-        }
-
-        return response;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSectionDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSectionDto.java
deleted file mode 100644
index a646b36..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSectionDto.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-import java.util.List;
-
-/**
- * The DTO used to represent a section of the workflow page.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerSectionDto {
-    private String identifier;
-
-    private String name;
-
-    private List<SiriusServerActivityDto> activities;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier
-     * @param name
-     *            The name
-     * @param activities
-     *            The activities
-     */
-    public SiriusServerSectionDto(String identifier, String name, List<SiriusServerActivityDto> activities) {
-        this.identifier = identifier;
-        this.name = name;
-        this.activities = activities;
-    }
-
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public List<SiriusServerActivityDto> getActivities() {
-        return this.activities;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSemanticResourceDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSemanticResourceDto.java
deleted file mode 100644
index 73db6e2..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerSemanticResourceDto.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent a semantic resource.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerSemanticResourceDto {
-    private String path;
-
-    private String name;
-
-    private String size;
-
-    /**
-     * The constructor.
-     *
-     * @param path
-     *            The path
-     * @param name
-     *            The name
-     * @param size
-     *            The size
-     */
-    public SiriusServerSemanticResourceDto(String path, String name, String size) {
-        this.path = path;
-        this.name = name;
-        this.size = size;
-    }
-
-    public String getPath() {
-        return this.path;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getSize() {
-        return this.size;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTableDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTableDto.java
deleted file mode 100644
index 9039aa4..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTableDto.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent a table.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerTableDto extends AbstractSiriusServerRepresentationDto {
-
-    private static final String KIND = "table"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     *
-     * @param viewpointName
-     *            The name of the viewpoint
-     * @param descriptionName
-     *            The name of the description
-     * @param name
-     *            The name
-     */
-    public SiriusServerTableDto(String viewpointName, String descriptionName, String name) {
-        super(KIND, viewpointName, descriptionName, name);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTreeDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTreeDto.java
deleted file mode 100644
index 6901d9d..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerTreeDto.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO used to represent a tree.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerTreeDto extends AbstractSiriusServerRepresentationDto {
-
-    private static final String KIND = "tree"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     *
-     * @param viewpointName
-     *            The name of the viewpoint
-     *
-     * @param descriptionName
-     *            The name of the description
-     * @param name
-     *            The name
-     */
-    public SiriusServerTreeDto(String viewpointName, String descriptionName, String name) {
-        super(KIND, viewpointName, descriptionName, name);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerUpdateProjectDescriptionDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerUpdateProjectDescriptionDto.java
deleted file mode 100644
index 836c216..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/project/SiriusServerUpdateProjectDescriptionDto.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.project;
-
-/**
- * The DTO sent by clients to update the description of a project.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerUpdateProjectDescriptionDto {
-    private String description;
-
-    public String getDescription() {
-        return this.description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerNewProjectDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerNewProjectDto.java
deleted file mode 100644
index 306ae58..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerNewProjectDto.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.projects;
-
-/**
- * The DTO sent by clients to create new projects.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerNewProjectDto {
-    private String name;
-
-    public String getName() {
-        return this.name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectDto.java
deleted file mode 100644
index b58b6a3..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectDto.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.projects;
-
-/**
- * The DTO used to return a project.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerProjectDto {
-    private String name;
-
-    private String description;
-
-    /**
-     * The constructor.
-     *
-     * @param name
-     *            The name of the project
-     * @param description
-     *            The description of the project
-     */
-    public SiriusServerProjectDto(String name, String description) {
-        this.name = name;
-        this.description = description;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getDescription() {
-        return this.description;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsDto.java
deleted file mode 100644
index acd035d..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsDto.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.projects;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * The DTO used to return the list of projects.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerProjectsDto {
-    private List<SiriusServerProjectDto> projects = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param projects
-     *            The projects
-     */
-    public SiriusServerProjectsDto(List<SiriusServerProjectDto> projects) {
-        this.projects = projects;
-    }
-
-    public List<SiriusServerProjectDto> getProjects() {
-        return this.projects;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsService.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsService.java
deleted file mode 100644
index 9c8b1d0..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/projects/SiriusServerProjectsService.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.projects;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_BAD_REQUEST;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_CREATED;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_INTERNAL_SERVER_ERROR;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import com.google.gson.Gson;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.text.MessageFormat;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.DefaultLocalSessionCreationOperation;
-import org.eclipse.sirius.business.api.session.SessionCreationOperation;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.backend.internal.SiriusServerMessages;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerErrorDto;
-import org.eclipse.sirius.server.backend.internal.utils.SiriusServerUtils;
-
-/**
- * Service used to manipulate the list of projects.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/projects")
-public class SiriusServerProjectsService implements ISiriusServerService {
-
-    @Override
-    public SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return new SiriusServerResponse(STATUS_OK, this.getModelingProjects());
-    }
-
-    /**
-     * Returns all the modeling projects of the workspace.
-     *
-     * @return All the modeling projects of the workspace
-     */
-    private SiriusServerProjectsDto getModelingProjects() {
-        IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        // @formatter:off
-		List<SiriusServerProjectDto> modelingProjects = Arrays.stream(allProjects)
-				.filter(ModelingProject::hasModelingProjectNature)
-				.filter(IProject::isOpen)
-				.map(this::convertToProject)
-				.collect(Collectors.toList());
-		// @formatter:on
-        return new SiriusServerProjectsDto(modelingProjects);
-    }
-
-    /**
-     * Converts the given project with a modeling nature into a
-     * {@link SiriusServerProjectDto}.
-     *
-     * @param iProject
-     *            The project
-     * @return The {@link SiriusServerProjectDto} created
-     */
-    private SiriusServerProjectDto convertToProject(IProject iProject) {
-        String name = iProject.getName();
-        String description = SiriusServerUtils.getProjectDescription(iProject);
-        return new SiriusServerProjectDto(name, description);
-    }
-
-    @Override
-    public SiriusServerResponse doPost(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        SiriusServerResponse response = null;
-        try {
-            Reader reader = new InputStreamReader(request.getInputStream(), SiriusServerUtils.UTF_8);
-            SiriusServerNewProjectDto newProject = new Gson().fromJson(reader, SiriusServerNewProjectDto.class);
-
-            String name = newProject.getName();
-            IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-            if (project.exists()) {
-                String message = MessageFormat.format(SiriusServerMessages.SiriusServerProjectsService_projectAlreadyExists, name);
-                response = new SiriusServerResponse(STATUS_BAD_REQUEST, new SiriusServerErrorDto(message));
-            } else {
-                // TODO Improve this code once this issue is fixed:
-                // https://bugs.eclipse.org/bugs/show_bug.cgi?id=533931
-                IProjectDescription projectDescription = ResourcesPlugin.getWorkspace().newProjectDescription(name);
-                projectDescription.setNatureIds(new String[] { ModelingProject.NATURE_ID });
-                project.create(projectDescription, new NullProgressMonitor());
-                project.open(new NullProgressMonitor());
-
-                URI representationsURI = URI.createPlatformResourceURI(project.getFullPath().append(ModelingProject.DEFAULT_REPRESENTATIONS_FILE_NAME).toString(), true);
-                SessionCreationOperation sessionCreationOperation = new DefaultLocalSessionCreationOperation(representationsURI, new NullProgressMonitor());
-                sessionCreationOperation.execute();
-
-                String description = SiriusServerUtils.getProjectDescription(project);
-                response = new SiriusServerResponse(STATUS_CREATED, new SiriusServerProjectDto(name, description));
-            }
-        } catch (@SuppressWarnings("unused") IOException | CoreException exception) {
-            // We don't want to send back the message of the exception
-            response = new SiriusServerResponse(STATUS_INTERNAL_SERVER_ERROR);
-        }
-
-        return response;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/SiriusToolServices.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/SiriusToolServices.java
deleted file mode 100644
index b203cd5..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/SiriusToolServices.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.workflow;
-
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.sirius.business.api.helper.task.ICommandTask;
-import org.eclipse.sirius.business.api.helper.task.TaskHelper;
-import org.eclipse.sirius.business.api.query.EObjectQuery;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
-import org.eclipse.sirius.tools.api.command.SiriusCommand;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-import org.eclipse.sirius.viewpoint.description.tool.InitialOperation;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-
-/**
- * This class contains various services provided by the Sirius UI Properties
- * bundle to the interpreter.
- *
- * @author sbegaudeau
- */
-public class SiriusToolServices {
-
-    /**
-     * Executes the operation with the given URI.
-     *
-     * @param eObject
-     *            The EObject to use as the operation's context
-     * @param initialCommandUri
-     *            the URI of the operation to execute
-     * @return the model element on which the tool was executed.
-     */
-    public EObject executeOperation(EObject eObject, String initialCommandUri) {
-        if (!eObject.eIsProxy()) {
-            Session session = new EObjectQuery(eObject).getSession();
-            if (session != null) {
-                ModelOperation modelOperation = findModelOperation(initialCommandUri, session);
-                if (modelOperation != null) {
-                    ModelAccessor modelAccessor = session.getModelAccessor();
-                    ICommandTask task = new TaskHelper(modelAccessor, SiriusPlugin.getDefault().getUiCallback()).buildTaskFromModelOperation(eObject, modelOperation);
-                    SiriusCommand command = new SiriusCommand(session.getTransactionalEditingDomain(), "SiriusToolServices#executeOperation"); //$NON-NLS-1$
-                    command.getTasks().add(task);
-                    try {
-                        if (command.canExecute()) {
-                            command.execute();
-                        }
-                    } catch (@SuppressWarnings("unused") OperationCanceledException cancel) {
-                        // A tool (possibly via a Java service) can request the
-                        // cancellation of its execution. This is
-                        // handled as a rollback by EMF Transaction, but the
-                        // exception should not propagate above this
-                        // point: it's a signal for requesting
-                        // cancellation/rollback, which at this point is done,
-                        // but
-                        // not an error that the caller should be aware of.
-                    } finally {
-                        command.dispose();
-                    }
-                }
-            }
-        }
-        return eObject;
-    }
-
-    /**
-     * Resolves the actual {@link ModelOperation} to execute given its URI.
-     *
-     * @param initialCommandUri
-     *            the URI of the operation to search for.
-     * @param session
-     *            the Sirius session which determines the scope to search into.
-     * @return the {@link ModelOperation} instance found at the specified URI,
-     *         either in one of the VSMs for which at least one Viewpoint is
-     *         currently enabled in the session, or from the default ruleset, or
-     *         <code>null</code> if no matching operation could be located.
-     */
-    private ModelOperation findModelOperation(String initialCommandUri, Session session) {
-        URI commandResourceURI = URI.createURI(initialCommandUri).trimFragment();
-        for (Resource res : getResourcesInScope(session)) {
-            if (commandResourceURI.equals(res.getURI())) {
-                EObject modelOperationEObject = res.getEObject(URI.createURI(initialCommandUri).fragment());
-                if (modelOperationEObject instanceof InitialOperation) {
-                    return ((InitialOperation) modelOperationEObject).getFirstModelOperations();
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns all the (VSM-like) resources in which to search for the
-     * {@link ModelOperation} to execute.
-     *
-     * @param session
-     *            the Sirius session.
-     * @return all the resources in which to look for the ModelOperation, in
-     *         order of preference.
-     */
-    private Set<Resource> getResourcesInScope(Session session) {
-        Set<Resource> result = new LinkedHashSet<>();
-        Collection<Viewpoint> selectedViewpoints = session.getSelectedViewpoints(true);
-        for (Viewpoint viewpoint : selectedViewpoints) {
-            Resource eResource = viewpoint.eResource();
-            if (eResource != null) {
-                result.add(eResource);
-            }
-        }
-        return result;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/WorkflowHelper.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/WorkflowHelper.java
deleted file mode 100644
index 569f77d..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/services/workflow/WorkflowHelper.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.services.workflow;
-
-import java.util.Collection;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Stream;
-
-import org.eclipse.sirius.business.api.query.EObjectQuery;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.ext.base.Option;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.Group;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-
-/**
- * Utility methods to manipulate Workflows and their elements.
- *
- * @author pcdavid
- *
- */
-// CHECKSTYLE:OFF
-public final class WorkflowHelper {
-    private final Session session;
-
-    public static WorkflowHelper on(Session session) {
-        return new WorkflowHelper(Objects.requireNonNull(session));
-    }
-
-    private WorkflowHelper(Session session) {
-        this.session = session;
-    }
-
-    /**
-     * Finds all the workflow pages that apply to the given session. This may
-     * include pages defined in different workflows, but pages that originate
-     * from a given workflow are guaranteed to be contiguous.
-     *
-     * @return all the workflow pages that apply to the session.
-     */
-    public Stream<PageDescription> getPageDescriptions() {
-        return getWorkflowDescriptions().flatMap(w -> w.getPages().stream());
-    }
-
-    /**
-     * Returns the workflow descriptions from the given session.
-     *
-     * @return The workflow descriptions from the given session
-     */
-    public Stream<WorkflowDescription> getWorkflowDescriptions() {
-        // @formatter:off
-        return session.getSelectedViewpoints(true).stream()
-                .map(viewpoint -> new EObjectQuery(viewpoint).getFirstAncestorOfType(DescriptionPackage.Literals.GROUP))
-                .filter(Option::some)
-                .map(Option::get)
-                .filter(Group.class::isInstance)
-                .map(Group.class::cast)
-                .flatMap(group -> group.getExtensions().stream())
-                .filter(WorkflowDescription.class::isInstance)
-                .map(WorkflowDescription.class::cast);
-        // @formatter:on
-    }
-
-    public Optional<PageDescription> findPageById(String pageIdentifier) {
-        return findById(getPageDescriptions(), pageIdentifier);
-    }
-
-    public Optional<SectionDescription> findSectionById(String pageId, String sectionId) {
-        return findPageById(pageId).flatMap(page -> findById(page.getSections(), sectionId));
-    }
-
-    public Optional<ActivityDescription> findActivityById(String pageId, String sectionId, String activityId) {
-        return findSectionById(pageId, sectionId).flatMap(section -> findById(section.getActivities(), activityId));
-    }
-
-    private <T extends IdentifiedElement> Optional<T> findById(Collection<T> candidates, String id) {
-        return findById(candidates.stream(), id);
-    }
-
-    private <T extends IdentifiedElement> Optional<T> findById(Stream<T> candidates, String id) {
-        return candidates.filter(elt -> Objects.equals(elt.getName(), id)).findFirst();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerErrorDto.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerErrorDto.java
deleted file mode 100644
index 9b1b15c..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerErrorDto.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.utils;
-
-/**
- * The DTO used to return an error.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle::javadocmethod", "checkstyle::javadocfield" })
-public class SiriusServerErrorDto {
-    private String message;
-
-    /**
-     * The constructor.
-     *
-     * @param message
-     *            The message
-     */
-    public SiriusServerErrorDto(String message) {
-        this.message = message;
-    }
-
-    public String getMessage() {
-        return this.message;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerUtils.java b/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerUtils.java
deleted file mode 100644
index 14cccfd..0000000
--- a/plugins/org.eclipse.sirius.server.backend/src/org/eclipse/sirius/server/backend/internal/utils/SiriusServerUtils.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.backend.internal.utils;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.server.backend.internal.SiriusServerBackendPlugin;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
-
-/**
- * Utility class.
- *
- * @author sbegaudeau
- */
-public final class SiriusServerUtils {
-
-    /**
-     * The UTF-8 encoding.
-     */
-    public static final String UTF_8 = "UTF-8"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private SiriusServerUtils() {
-        // prevent instantiation
-    }
-
-    /**
-     * Returns the session of the given modeling project or open a new one and
-     * return it.
-     *
-     * @param modelingProject
-     *            The modeling project
-     * @return The session
-     */
-    public static Session getSession(ModelingProject modelingProject) {
-        Optional<Session> optionalSession = Optional.ofNullable(modelingProject.getSession());
-        Session session = optionalSession.orElseGet(() -> {
-            // FIXME SBE: proper management of optionals once Sirius has
-            // switched to Java optional
-            URI sessionResourceURI = modelingProject.getMainRepresentationsFileURI(new NullProgressMonitor()).get();
-            return SessionManager.INSTANCE.openSession(sessionResourceURI, new NullProgressMonitor(), SiriusPlugin.getDefault().getUiCallback());
-        });
-        return session;
-    }
-
-    /**
-     * Returns the description from the given project.
-     *
-     * @param iProject
-     *            The project
-     * @return The description from the given project
-     */
-    public static String getProjectDescription(IProject iProject) {
-        String description = null;
-
-        try {
-            IProjectDescription iProjectDescription = iProject.getDescription();
-            String comment = iProjectDescription.getComment();
-            if (comment != null && comment.trim().length() > 0) {
-                description = comment;
-            }
-        } catch (CoreException e) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerBackendPlugin.PLUGIN_ID, e.getMessage(), e);
-            SiriusServerBackendPlugin.getPlugin().log(status);
-        }
-        return description;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.classpath b/plugins/org.eclipse.sirius.server.diagram.sprotty/.classpath
deleted file mode 100644
index c1de8f5..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.classpath
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="lib" path="lib/org.eclipse.sprotty-0.6.0.jar" sourcepath="lib_src/org.eclipse.sprotty-0.6.0-sources.jar">
-		<attributes>
-			<attribute name="javadoc_location" value="jar:platform:/resource/org.eclipse.sirius.server/lib_src/org.eclipse.sprotty-0.6.0-javadoc.jar!/"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="lib" path="lib/org.eclipse.sprotty.layout-0.6.0.jar" sourcepath="lib_src/org.eclipse.sprotty.layout-0.6.0-sources.jar">
-		<attributes>
-			<attribute name="javadoc_location" value="jar:platform:/resource/org.eclipse.sirius.server/lib_src/org.eclipse.sprotty.layout-0.6.0-javadoc.jar!/"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="lib" path="lib/org.eclipse.sprotty.server-0.6.0.jar" sourcepath="lib_src/org.eclipse.sprotty.server-0.6.0-sources.jar">
-		<attributes>
-			<attribute name="javadoc_location" value="jar:platform:/resource/org.eclipse.sirius.server/lib_src/org.eclipse.sprotty.server-0.6.0-javadoc.jar!/"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.project b/plugins/org.eclipse.sirius.server.diagram.sprotty/.project
deleted file mode 100644
index 5644622..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.diagram.sprotty</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 523c3d6..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,398 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=150
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 3e1d90b..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,67 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.diagram.sprotty/META-INF/MANIFEST.MF
deleted file mode 100644
index 8b4dc2a..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,45 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.diagram.sprotty;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.server.diagram.internal.SiriusDiagramServerPlugin$Implementation
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.emf.common;bundle-version="[2.8.0,3.0.0)",
- javax.servlet;bundle-version="[3.1.0,4.0.0)",
- javax.websocket;bundle-version="1.0.0",
- org.eclipse.jetty.http;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.websocket.javax.websocket;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.websocket.javax.websocket.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.emf.ecore;bundle-version="2.13.0",
- org.eclipse.elk.core;bundle-version="0.4.0",
- org.eclipse.elk.graph;bundle-version="0.4.0",
- org.eclipse.elk.alg.layered;bundle-version="0.4.0",
- org.apache.log4j;bundle-version="1.2.15",
- com.google.gson;bundle-version="2.7.0",
- org.eclipse.xtext.xbase;bundle-version="2.12.0",
- org.eclipse.emf.transaction;bundle-version="1.9.0",
- org.eclipse.sirius;bundle-version="6.0.0",
- org.eclipse.sirius.diagram;bundle-version="6.0.0",
- org.eclipse.sirius.ecore.extender;bundle-version="6.0.0",
- org.eclipse.sirius.common.interpreter;bundle-version="6.0.0",
- org.eclipse.sirius.common;bundle-version="6.0.0",
- org.eclipse.sirius.server;bundle-version="6.0.0"
-Export-Package: org.eclipse.sirius.server.diagram.internal;x-internal:=true,
- org.eclipse.sirius.server.diagram.internal.actions;x-internal:=true,
- org.eclipse.sirius.server.diagram.internal.actions.handlers;x-internal:=true,
- org.eclipse.sirius.server.diagram.internal.entities;x-internal:=true,
- org.eclipse.sirius.server.diagram.internal.interpreter;x-internal:=true
-Bundle-ClassPath: .,
- lib/org.eclipse.sprotty-0.6.0.jar,
- lib/org.eclipse.sprotty.layout-0.6.0.jar,
- lib/org.eclipse.sprotty.server-0.6.0.jar
-Eclipse-BundleShape: dir
-Automatic-Module-Name: org.eclipse.sirius.server.diagram
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/README.md b/plugins/org.eclipse.sirius.server.diagram.sprotty/README.md
deleted file mode 100644
index a9e6297..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# org.eclipse.sirius.server.diagram.sprotty
-
-The code in this plug-in is experimental. It is made available for
-interested people to experiment with it, but is not supported.
-
-Note that it does not build out-of-the box, so by default it is not
-integrated into the main build: it depends on Eclipse Sprotty 0.6.0
-which at this time can not be easily consumed by other "classical"
-Eclipse projects (at least ones made of Eclipse Platform Plug-ins).
-
-If you want to build it, you will need to:
-
-1. Get the official Sprotty 0.6.0 JARs [from Maven
-   Central](https://search.maven.org/search?q=g:org.eclipse.sprotty)
-   (here with their SHA1) and put them inside the `lib` and `lib_src`
-   folders inside this plug-ins:
-
-    - `9080e69f2669a0e7c64072b98bc75beb0667abac`  `lib/org.eclipse.sprotty-0.6.0.jar`
-    - `66ac6d156cd92241a87448b75a55503174ba8006`  `lib/org.eclipse.sprotty.layout-0.6.0.jar`
-    - `ba72351a960b3d9d60c654b65ad48369a447db69`  `lib/org.eclipse.sprotty.server-0.6.0.jar`
-    - `6557f422ccd50cb861feb24b03073cd7fc80f8b4`  `lib_src/org.eclipse.sprotty-0.6.0-javadoc.jar`
-    - `bd2b961981f8f810e060c8e0569b65bf64a18626`  `lib_src/org.eclipse.sprotty-0.6.0-sources.jar`
-    - `dd6b278a592376c59530bee3603401229b2be1fa`  `lib_src/org.eclipse.sprotty.layout-0.6.0-javadoc.jar`
-    - `ee9378042abd40ed9d5aaac635492122ab6e8178`  `lib_src/org.eclipse.sprotty.layout-0.6.0-sources.jar`
-    - `b193cb530b4393949c5070563a534a45929dfa26`  `lib_src/org.eclipse.sprotty.server-0.6.0-javadoc.jar`
-    - `81d229f90609a3d96cc1002c2f935424e7c9f716`  `lib_src/org.eclipse.sprotty.server-0.6.0-sources.jar`
-
-2. In `packaging/org.eclipse.sirius.parent/pom.xml`, enable the
-   `org.eclipse.sirius.server.diagram.sprotty` module (found inside
-   the `headless-server` profile), which is commented out by default.
-
-3. In `packaging/org.eclipse.sirius.server.feature/feature.xml`, enable the
-   `org.eclipse.sirius.server.diagram.sprotty` plug-in, which is commented out
-   by default.
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/about.html b/plugins/org.eclipse.sirius.server.diagram.sprotty/about.html
deleted file mode 100644
index 420ad0f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content").  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL").  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-
-</body></html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/build.properties b/plugins/org.eclipse.sirius.server.diagram.sprotty/build.properties
deleted file mode 100644
index e9de1a0..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               lib/,\
-               webapp/,\
-               plugin.xml
-javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/lib/.gitkeep b/plugins/org.eclipse.sirius.server.diagram.sprotty/lib/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/lib/.gitkeep
+++ /dev/null
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/lib_src/.gitkeep b/plugins/org.eclipse.sirius.server.diagram.sprotty/lib_src/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/lib_src/.gitkeep
+++ /dev/null
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.properties b/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.properties
deleted file mode 100644
index e7ec004..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-pluginName = Sirius Diagram Server
-providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.xml b/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.xml
deleted file mode 100644
index e2e1944..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.sirius.server.siriusServerConfigurator">
-      <descriptor
-            class="org.eclipse.sirius.server.diagram.internal.SiriusServerDiagramConfigurator"
-            id="org.eclipse.sirius.server.diagram.SiriusServerDiagramConfiguratorOld">
-      </descriptor>
-   </extension>
-   <extension
-         id="SiriusServer"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="singleton-global"
-            thread="any"
-            visible="true">
-         <run
-               class="org.eclipse.sirius.server.diagram.internal.SiriusDiagramServerLauncher">
-         </run>
-      </application>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/pom.xml b/plugins/org.eclipse.sirius.server.diagram.sprotty/pom.xml
deleted file mode 100644
index 361dcb1..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-Copyright (c) 2018 Obeo.
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v2.0
-which accompanies this distribution, and is available at
-https://www.eclipse.org/legal/epl-2.0/
-
-Contributors:
-    Obeo - initial API and implementation
--->
-<project
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.diagram.sprotty</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramGenerator.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramGenerator.java
deleted file mode 100644
index 7519be8..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramGenerator.java
+++ /dev/null
@@ -1,649 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.diagram.ContainerLayout;
-import org.eclipse.sirius.diagram.ContainerStyle;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DDiagramElementContainer;
-import org.eclipse.sirius.diagram.DEdge;
-import org.eclipse.sirius.diagram.DNode;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.DNodeList;
-import org.eclipse.sirius.diagram.DNodeListElement;
-import org.eclipse.sirius.diagram.EdgeStyle;
-import org.eclipse.sirius.diagram.FlatContainerStyle;
-import org.eclipse.sirius.diagram.LabelPosition;
-import org.eclipse.sirius.diagram.NodeStyle;
-import org.eclipse.sirius.diagram.Square;
-import org.eclipse.sirius.diagram.WorkspaceImage;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusEdge;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusFreeFormFlatContainerNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusLabel;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusListFlatContainerNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusListFlatContainerNodeBodyCompartment;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusListFlatContainerNodeLabelCompartment;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSquareBorderNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSquareNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSvgBorderNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSvgNode;
-import org.eclipse.sirius.viewpoint.LabelAlignment;
-import org.eclipse.sirius.viewpoint.RGBValues;
-import org.eclipse.sirius.viewpoint.Style;
-import org.eclipse.sprotty.LayoutOptions;
-import org.eclipse.sprotty.RequestModelAction;
-import org.eclipse.sprotty.SEdge;
-import org.eclipse.sprotty.SGraph;
-import org.eclipse.sprotty.SLabel;
-import org.eclipse.sprotty.SModelElement;
-import org.eclipse.sprotty.SNode;
-import org.eclipse.sprotty.SPort;
-
-/**
- * The {@link SiriusDiagramGenerator} is used to compute a Sprotty diagram from Sirius.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramGenerator {
-
-	/**
-	 * Computes the diagram.
-	 *
-	 * @param action
-	 *            The request model action
-	 *
-	 * @return The diagram computed
-	 */
-	public SGraph computeDiagram(SiriusDiagramServer siriusDiagramServer, RequestModelAction action) {
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-		SGraph sGraph = this.convert(dDiagram);
-		return sGraph;
-	}
-
-	/**
-	 * Converts the given {@link DDiagram} to an {@link SGraph}.
-	 *
-	 * @param dDiagram
-	 *            The Sirius Diagram
-	 * @return The {@link SGraph} computed from the {@link DDiagram}
-	 */
-	private SGraph convert(DDiagram dDiagram) {
-		SGraph sGraph = new SGraph((graph) -> {
-			graph.setId(dDiagram.getUid());
-			graph.setType("graph"); //$NON-NLS-1$
-			graph.setChildren(new ArrayList<>());
-		});
-
-		// @formatter:off
-		dDiagram.getOwnedDiagramElements().stream()
-			.filter(DDiagramElement::isVisible)
-			.filter(DNode.class::isInstance)
-			.map(DNode.class::cast)
-			.map(this::convertDNode)
-			.filter(Optional::isPresent)
-			.map(Optional::get)
-			.forEach(sGraph.getChildren()::add);
-
-		dDiagram.getOwnedDiagramElements().stream()
-			.filter(DDiagramElement::isVisible)
-			.filter(DNodeContainer.class::isInstance)
-			.map(DNodeContainer.class::cast)
-			.map(this::convertDNodeContainer)
-			.filter(Optional::isPresent)
-			.map(Optional::get)
-			.forEach(sGraph.getChildren()::add);
-
-		dDiagram.getOwnedDiagramElements().stream()
-			.filter(DDiagramElement::isVisible)
-			.filter(DNodeList.class::isInstance)
-			.map(DNodeList.class::cast)
-			.map(this::convertDNodeList)
-			.filter(Optional::isPresent)
-			.map(Optional::get)
-			.forEach(sGraph.getChildren()::add);
-
-		dDiagram.getOwnedDiagramElements().stream()
-			.filter(DDiagramElement::isVisible)
-			.filter(DEdge.class::isInstance)
-			.map(DEdge.class::cast)
-			.map(this::convertDEdge)
-			.filter(Optional::isPresent)
-			.map(Optional::get)
-			.forEach(sGraph.getChildren()::add);
-		// @formatter:on
-
-		return sGraph;
-	}
-
-	/**
-	 * Dispatch the transformation of the given diagram element to the proper method.
-	 *
-	 * @param element
-	 *            The element to convert
-	 * @return The element converted
-	 */
-	private Optional<SModelElement> convertDDiagramElement(DDiagramElement element) {
-		Optional<SModelElement> optionalSModelElement = Optional.empty();
-		if (element instanceof DNode) {
-			Optional<SNode> optionalSNode = this.convertDNode((DNode) element);
-			if (optionalSNode.isPresent()) {
-				optionalSModelElement = Optional.of(optionalSNode.get());
-			}
-		} else if (element instanceof DNodeContainer) {
-			Optional<SNode> optionalSNode = this.convertDNodeContainer((DNodeContainer) element);
-			if (optionalSNode.isPresent()) {
-				optionalSModelElement = Optional.of(optionalSNode.get());
-			}
-		} else if (element instanceof DNodeList) {
-			Optional<SNode> optionalSNode = this.convertDNodeList((DNodeList) element);
-			if (optionalSNode.isPresent()) {
-				optionalSModelElement = Optional.of(optionalSNode.get());
-			}
-		}
-		return optionalSModelElement;
-	}
-
-	/**
-	 * Converts the given {@link DNode} to an {@link SNode}.
-	 *
-	 * @param dNode
-	 *            The {@link DNode} to convert
-	 * @return The {@link SNode} computed from the {@link DNode}
-	 */
-	private Optional<SNode> convertDNode(DNode dNode) {
-		Optional<SNode> optionalSNode = Optional.empty();
-
-		Style style = dNode.getStyle();
-		if (style instanceof WorkspaceImage) {
-			WorkspaceImage workspaceImage = (WorkspaceImage) style;
-			optionalSNode = this.convertSVGNode(dNode, workspaceImage);
-		} else if (style instanceof Square) {
-			Square square = (Square) style;
-			optionalSNode = this.convertSquareNode(dNode, square);
-		}
-
-		optionalSNode.ifPresent(sNode -> {
-			if (style instanceof NodeStyle) {
-				NodeStyle nodeStyle = (NodeStyle) style;
-				this.convertLabel(sNode.getId(), dNode.getName(), nodeStyle).ifPresent(sNode.getChildren()::add);
-			}
-			// @formatter:off
-			dNode.getOwnedBorderedNodes().stream()
-				.map(this::convertBorderedNode)
-				.filter(Optional::isPresent)
-				.map(Optional::get)
-				.forEach(sNode.getChildren()::add);
-			// @formatter:on
-		});
-
-		return optionalSNode;
-	}
-
-	/**
-	 * Converts the given {@link DNode} into an {@link SNode}.
-	 *
-	 * @param dNode
-	 *            The DNode
-	 * @param square
-	 *            The square
-	 * @return The SNode computed from the DNode
-	 */
-	private Optional<SNode> convertSquareNode(DNode dNode, Square square) {
-		String identifier = EcoreUtil.getURI(dNode).fragment();
-
-		RGBValues borderColor = square.getBorderColor();
-		RGBValues color = square.getColor();
-		Integer borderSize = square.getBorderSize();
-
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke", //$NON-NLS-1$
-				"rgb(" + borderColor.getRed() + ", " + borderColor.getGreen() + ", " + borderColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke-width", borderSize); //$NON-NLS-1$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-
-		SiriusSquareNode siriusSquareNode = new SiriusSquareNode(identifier);
-		siriusSquareNode.setStyle(styleJson);
-		return Optional.of(siriusSquareNode);
-	}
-
-	/**
-	 * Converts the given {@link DNode} into an {@link SNode}.
-	 *
-	 * @param dNode
-	 *            The DNode
-	 * @param workspaceImage
-	 *            The workspace image used as the style of the DNode
-	 * @return The SNode computed from the DNonde
-	 */
-	private Optional<SNode> convertSVGNode(DNode dNode, WorkspaceImage workspaceImage) {
-		String identifier = EcoreUtil.getURI(dNode).fragment();
-
-		String svgData = ""; //$NON-NLS-1$
-		String workspacePath = workspaceImage.getWorkspacePath();
-		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(workspacePath));
-		if (file.exists() && file.getFileExtension().equals("svg")) { //$NON-NLS-1$
-			try {
-				svgData = new BufferedReader(new InputStreamReader(file.getContents())).lines().collect(Collectors.joining("\n")); //$NON-NLS-1$
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-
-		SiriusSvgNode siriusSvgNode = new SiriusSvgNode(identifier);
-		siriusSvgNode.setSvgData(svgData);
-
-		return Optional.of(siriusSvgNode);
-	}
-
-	/**
-	 * Computes the label from the given node style.
-	 *
-	 * @param nodeIdentifier
-	 *            The identifier of the node containing the label
-	 * @param label
-	 *            The text to be displayed in the label
-	 * @param nodeStyle
-	 *            The style of the node containing the label
-	 * @return The label computed
-	 */
-	private Optional<SLabel> convertLabel(String nodeIdentifier, String label, NodeStyle nodeStyle) {
-		LabelAlignment labelAlignment = nodeStyle.getLabelAlignment();
-		LabelPosition labelPosition = nodeStyle.getLabelPosition();
-		RGBValues labelColor = nodeStyle.getLabelColor();
-
-		String labelIdentifier = nodeIdentifier + "__label"; //$NON-NLS-1$
-		SiriusLabel siriusLabel = new SiriusLabel(labelIdentifier, label);
-
-		// Colors
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + labelColor.getRed() + ", " + labelColor.getGreen() + ", " + labelColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-		siriusLabel.setStyle(styleJson);
-
-		// Alignment and position
-		if (LabelAlignment.LEFT_VALUE == labelAlignment.getValue() && LabelPosition.BORDER == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.OUTSIDE_LEFT__LABEL_TYPE);
-		} else if (LabelAlignment.CENTER_VALUE == labelAlignment.getValue() && LabelPosition.BORDER == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.OUTSIDE_CENTER__LABEL_TYPE);
-		} else if (LabelAlignment.RIGHT_VALUE == labelAlignment.getValue() && LabelPosition.BORDER == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.OUTSIDE_RIGHT__LABEL_TYPE);
-		} else if (LabelAlignment.LEFT_VALUE == labelAlignment.getValue() && LabelPosition.NODE == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_LEFT__LABEL_TYPE);
-		} else if (LabelAlignment.CENTER_VALUE == labelAlignment.getValue() && LabelPosition.NODE == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_CENTER__LABEL_TYPE);
-		} else if (LabelAlignment.RIGHT_VALUE == labelAlignment.getValue() && LabelPosition.NODE == labelPosition.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_RIGHT__LABEL_TYPE);
-		}
-
-		return Optional.of(siriusLabel);
-	}
-
-	/**
-	 * Converts the given {@link DNode} to an {@link SPort}.
-	 *
-	 * @param borderedNode
-	 *            The bordered node
-	 * @return The {@link SNode} computed from the {@link DNode}
-	 */
-	private Optional<SPort> convertBorderedNode(DNode borderedNode) {
-		Optional<SPort> optionalSPort = Optional.empty();
-
-		Style style = borderedNode.getStyle();
-		if (style instanceof WorkspaceImage) {
-			WorkspaceImage workspaceImage = (WorkspaceImage) style;
-			optionalSPort = this.convertSVGBorderedNode(borderedNode, workspaceImage);
-		} else if (style instanceof Square) {
-			Square square = (Square) style;
-			optionalSPort = this.convertSquareBorderedNode(borderedNode, square);
-		}
-
-		return optionalSPort;
-	}
-
-	/**
-	 * Converts the given {@link DNode} into an {@link SPort}.
-	 *
-	 * @param dNode
-	 *            The DNode
-	 * @param square
-	 *            The square
-	 * @return The SNode computed from the DNode
-	 */
-	private Optional<SPort> convertSquareBorderedNode(DNode dNode, Square square) {
-
-		String identifier = EcoreUtil.getURI(dNode).fragment();
-
-		RGBValues borderColor = square.getBorderColor();
-		RGBValues color = square.getColor();
-		Integer borderSize = square.getBorderSize();
-
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke", //$NON-NLS-1$
-				"rgb(" + borderColor.getRed() + ", " + borderColor.getGreen() + ", " + borderColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke-width", borderSize); //$NON-NLS-1$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-
-		SiriusSquareBorderNode siriusSquareBorderNode = new SiriusSquareBorderNode(identifier);
-		siriusSquareBorderNode.setStyle(styleJson);
-		return Optional.of(siriusSquareBorderNode);
-	}
-
-	/**
-	 * Converts the given {@link DNode} into an {@link SNode}.
-	 *
-	 * @param dNode
-	 *            The DNode
-	 * @param workspaceImage
-	 *            The workspace image used as the style of the DNode
-	 * @return The SNode computed from the DNonde
-	 */
-	private Optional<SPort> convertSVGBorderedNode(DNode dNode, WorkspaceImage workspaceImage) {
-		String identifier = EcoreUtil.getURI(dNode).fragment();
-
-		String workspacePath = workspaceImage.getWorkspacePath();
-		SiriusSvgBorderNode siriusSvgBorderNode = new SiriusSvgBorderNode(identifier);
-		siriusSvgBorderNode.setUrl("http://localhost:8080/images" + workspacePath); //$NON-NLS-1$
-
-		return Optional.of(siriusSvgBorderNode);
-	}
-
-	/**
-	 * Converts the given {@link DNodeContainer} to an {@link SNode}.
-	 *
-	 * @param dNodeContainer
-	 *            The container
-	 * @return The {@link SNode} computed from the {@link DNodeContainer}
-	 */
-	private Optional<SNode> convertDNodeContainer(DNodeContainer dNodeContainer) {
-		Optional<SNode> optionalSNode = Optional.empty();
-
-		ContainerLayout containerLayout = dNodeContainer.getChildrenPresentation();
-		Style style = dNodeContainer.getStyle();
-		if (ContainerLayout.FREE_FORM_VALUE == containerLayout.getValue() && style instanceof FlatContainerStyle) {
-			FlatContainerStyle flatContainerStyle = (FlatContainerStyle) style;
-			optionalSNode = this.convertFreeFormFlatContainer(dNodeContainer, flatContainerStyle);
-		} else if (ContainerLayout.LIST_VALUE == containerLayout.getValue() && style instanceof FlatContainerStyle) {
-			FlatContainerStyle flatContainerStyle = (FlatContainerStyle) style;
-			optionalSNode = this.convertListFlatContainer(dNodeContainer, flatContainerStyle);
-		}
-
-		optionalSNode.ifPresent(sNode -> {
-			if (style instanceof ContainerStyle) {
-				ContainerStyle containerStyle = (ContainerStyle) style;
-				this.convertLabel(sNode.getId(), dNodeContainer.getName(), containerStyle).ifPresent(sNode.getChildren()::add);
-			}
-			// @formatter:off
-			dNodeContainer.getOwnedBorderedNodes().stream()
-				.filter(DDiagramElement::isVisible)
-				.map(this::convertBorderedNode)
-				.filter(Optional::isPresent)
-				.map(Optional::get)
-				.forEach(sNode.getChildren()::add);
-			// @formatter:on
-
-			// @formatter:off
-			dNodeContainer.getOwnedDiagramElements().stream()
-				.filter(DDiagramElement::isVisible)
-				.map(this::convertDDiagramElement)
-				.filter(Optional::isPresent)
-				.map(Optional::get)
-				.forEach(sNode.getChildren()::add);
-			// @formatter:on
-		});
-
-		return optionalSNode;
-	}
-
-	/**
-	 * Converts the given {@link DDiagramElementContainer} into an {@link SNode}.
-	 *
-	 * @param dDiagramElementContainer
-	 *            The {@link DDiagramElementContainer}
-	 * @param flatContainerStyle
-	 *            The style of the container
-	 * @return The {@link SNode} computed from the container
-	 */
-	private Optional<SNode> convertFreeFormFlatContainer(DDiagramElementContainer dDiagramElementContainer, FlatContainerStyle flatContainerStyle) {
-		String identifier = EcoreUtil.getURI(dDiagramElementContainer).fragment();
-
-		RGBValues borderColor = flatContainerStyle.getBorderColor();
-		RGBValues color = flatContainerStyle.getBackgroundColor();
-		Integer borderSize = flatContainerStyle.getBorderSize();
-
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke", //$NON-NLS-1$
-				"rgb(" + borderColor.getRed() + ", " + borderColor.getGreen() + ", " + borderColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke-width", borderSize); //$NON-NLS-1$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-
-		SiriusFreeFormFlatContainerNode siriusFreeFormFlatContainerNode = new SiriusFreeFormFlatContainerNode(identifier);
-		siriusFreeFormFlatContainerNode.setStyle(styleJson);
-		return Optional.of(siriusFreeFormFlatContainerNode);
-	}
-
-	/**
-	 * Converts the given {@link DNodeList} to an {@link SNode}.
-	 *
-	 * @param dNodeList
-	 *            The container
-	 * @return The {@link SNode} computed from the {@link DNodeList}
-	 */
-	private Optional<SNode> convertDNodeList(DNodeList dNodeList) {
-		Optional<SNode> optionalSNode = Optional.empty();
-
-		Style style = dNodeList.getStyle();
-		if (style instanceof FlatContainerStyle) {
-			FlatContainerStyle flatContainerStyle = (FlatContainerStyle) style;
-			optionalSNode = this.convertListFlatContainer(dNodeList, flatContainerStyle);
-		}
-
-		optionalSNode.ifPresent(sNode -> {
-			final Double GAP = Double.valueOf(5.0);
-
-			LayoutOptions labelCompartmentLayoutOptions = new LayoutOptions();
-			labelCompartmentLayoutOptions.setHAlign("left"); //$NON-NLS-1$
-			labelCompartmentLayoutOptions.setHGap(GAP);
-
-			SiriusListFlatContainerNodeLabelCompartment labelCompartment = new SiriusListFlatContainerNodeLabelCompartment(
-					sNode.getId() + "__label-compartement"); //$NON-NLS-1$
-			labelCompartment.setLayoutOptions(labelCompartmentLayoutOptions);
-
-			LayoutOptions bodyCompartmentLayoutOptions = new LayoutOptions();
-			bodyCompartmentLayoutOptions.setHAlign("left"); //$NON-NLS-1$
-			bodyCompartmentLayoutOptions.setHGap(GAP);
-			bodyCompartmentLayoutOptions.setVGap(GAP);
-
-			SiriusListFlatContainerNodeBodyCompartment bodyCompartment = new SiriusListFlatContainerNodeBodyCompartment(
-					sNode.getId() + "__body-compartement"); //$NON-NLS-1$
-			bodyCompartment.setLayoutOptions(bodyCompartmentLayoutOptions);
-
-			sNode.getChildren().add(labelCompartment);
-			sNode.getChildren().add(bodyCompartment);
-
-			if (style instanceof ContainerStyle) {
-				ContainerStyle containerStyle = (ContainerStyle) style;
-				this.convertLabel(sNode.getId(), dNodeList.getName(), containerStyle).ifPresent(labelCompartment.getChildren()::add);
-			}
-			// @formatter:off
-			dNodeList.getOwnedBorderedNodes().stream()
-				.filter(DDiagramElement::isVisible)
-				.map(this::convertBorderedNode)
-				.filter(Optional::isPresent)
-				.map(Optional::get)
-				.forEach(sNode.getChildren()::add);
-			// @formatter:on
-
-			// @formatter:off
-			dNodeList.getOwnedElements().stream()
-				.filter(DNodeListElement::isVisible)
-				.map(this::convertDNodeListElement)
-				.filter(Optional::isPresent)
-				.map(Optional::get)
-				.forEach(bodyCompartment.getChildren()::add);
-			// @formatter:on
-		});
-
-		return optionalSNode;
-	}
-
-	/**
-	 * Converts the given {@link DDiagramElementContainer} into an {@link SNode}.
-	 *
-	 * @param dDiagramElementContainer
-	 *            The {@link DDiagramElementContainer}
-	 * @param flatContainerStyle
-	 *            The style of the container
-	 * @return The {@link SNode} computed from the container
-	 */
-	private Optional<SNode> convertListFlatContainer(DDiagramElementContainer dDiagramElementContainer, FlatContainerStyle flatContainerStyle) {
-		String identifier = EcoreUtil.getURI(dDiagramElementContainer).fragment();
-
-		RGBValues borderColor = flatContainerStyle.getBorderColor();
-		RGBValues color = flatContainerStyle.getForegroundColor();
-		Integer borderSize = flatContainerStyle.getBorderSize();
-
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke", //$NON-NLS-1$
-				"rgb(" + borderColor.getRed() + ", " + borderColor.getGreen() + ", " + borderColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		styleJsonObject.addProperty("stroke-width", borderSize); //$NON-NLS-1$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-
-		SiriusListFlatContainerNode siriusListFlatContainerNode = new SiriusListFlatContainerNode(identifier);
-		siriusListFlatContainerNode.setStyle(styleJson);
-		return Optional.of(siriusListFlatContainerNode);
-	}
-
-	/**
-	 * Converts the given {@link DNodeListElement} to an {@link SLabel}.
-	 *
-	 * @param dNodeList
-	 *            The container
-	 * @return The {@link SLabel} computed from the {@link DNodeListElement}
-	 */
-	private Optional<SLabel> convertDNodeListElement(DNodeListElement dNodeListElement) {
-		String identifier = EcoreUtil.getURI(dNodeListElement).fragment();
-		String label = dNodeListElement.getName();
-
-		SiriusLabel siriusLabel = new SiriusLabel(identifier, label);
-		siriusLabel.setType(SiriusLabel.INSIDE_LEFT__LABEL_TYPE);
-
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", "black"); //$NON-NLS-1$//$NON-NLS-2$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-		siriusLabel.setStyle(styleJson);
-
-		return Optional.of(siriusLabel);
-	}
-
-	/**
-	 * Converts the label from the given container style.
-	 *
-	 * @param containerIdentifier
-	 *            The identifier of the container
-	 * @param label
-	 *            The text to be displayed in the label
-	 * @param containerStyle
-	 *            The style of the container
-	 * @return The {@link SLabel} converted
-	 */
-	private Optional<SLabel> convertLabel(String containerIdentifier, String label, ContainerStyle containerStyle) {
-		LabelAlignment labelAlignment = containerStyle.getLabelAlignment();
-		RGBValues labelColor = containerStyle.getLabelColor();
-
-		String labelIdentifier = containerIdentifier + "__label"; //$NON-NLS-1$
-		SiriusLabel siriusLabel = new SiriusLabel(labelIdentifier, label);
-
-		// Colors
-		JsonObject styleJsonObject = new JsonObject();
-		styleJsonObject.addProperty("fill", //$NON-NLS-1$
-				"rgb(" + labelColor.getRed() + ", " + labelColor.getGreen() + ", " + labelColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-		String styleJson = new Gson().toJson(styleJsonObject);
-		siriusLabel.setStyle(styleJson);
-
-		// Alignment and position
-		if (LabelAlignment.LEFT_VALUE == labelAlignment.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_LEFT__LABEL_TYPE);
-		} else if (LabelAlignment.CENTER_VALUE == labelAlignment.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_CENTER__LABEL_TYPE);
-		} else if (LabelAlignment.RIGHT_VALUE == labelAlignment.getValue()) {
-			siriusLabel.setType(SiriusLabel.INSIDE_RIGHT__LABEL_TYPE);
-		}
-
-		return Optional.of(siriusLabel);
-	}
-
-	/**
-	 * Converts the given {@link DEdge} into an {@link SEdge}.
-	 *
-	 * @param dEdge
-	 *            The {@link DEdge} to convert
-	 * @return The {@link SEdge} computed from the {@link DEdge}
-	 */
-	private Optional<SEdge> convertDEdge(DEdge dEdge) {
-		SiriusEdge siriusEdge = new SiriusEdge();
-
-		siriusEdge.setId(EcoreUtil.getURI(dEdge).fragment());
-		siriusEdge.setType("edge:straight"); //$NON-NLS-1$
-		siriusEdge.setSourceId(EcoreUtil.getURI(dEdge.getSourceNode()).fragment());
-		siriusEdge.setTargetId(EcoreUtil.getURI(dEdge.getTargetNode()).fragment());
-
-		Style style = dEdge.getStyle();
-		if (style instanceof EdgeStyle) {
-			EdgeStyle edgeStyle = (EdgeStyle) style;
-			RGBValues strokeColor = edgeStyle.getStrokeColor();
-			Integer size = edgeStyle.getSize();
-
-			JsonObject styleJsonObject = new JsonObject();
-			styleJsonObject.addProperty("stroke", //$NON-NLS-1$
-					"rgb(" + strokeColor.getRed() + ", " + strokeColor.getGreen() + ", " + strokeColor.getBlue() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			styleJsonObject.addProperty("stroke-width", size); //$NON-NLS-1$
-
-			String styleJson = new Gson().toJson(styleJsonObject);
-			siriusEdge.setStyle(styleJson);
-		}
-
-		return Optional.of(siriusEdge);
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramPreCommitListener.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramPreCommitListener.java
deleted file mode 100644
index 340340c..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramPreCommitListener.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.emf.transaction.ResourceSetListenerImpl;
-import org.eclipse.emf.transaction.RollbackException;
-import org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand;
-import org.eclipse.sirius.tools.api.ui.RefreshHelper;
-
-/**
- * The pre-commit listener used to detect if the sirius session needs to be refresh.
- *
- * @author gcoutable
- *
- */
-public class SiriusDiagramPreCommitListener extends ResourceSetListenerImpl {
-
-	/**
-	 * The diagram server.
-	 */
-	private SiriusDiagramServer diagramServer;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param diagramServer
-	 *            The sirius diagram server
-	 */
-	public SiriusDiagramPreCommitListener(SiriusDiagramServer diagramServer) {
-		this.diagramServer = diagramServer;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#isPrecommitOnly()
-	 */
-	@Override
-	public boolean isPrecommitOnly() {
-		return true;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#isAggregatePrecommitListener()
-	 */
-	@Override
-	public boolean isAggregatePrecommitListener() {
-		return true;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#transactionAboutToCommit(org.eclipse.emf.transaction.ResourceSetChangeEvent)
-	 */
-	@Override
-	public Command transactionAboutToCommit(ResourceSetChangeEvent event) throws RollbackException {
-		CompoundCommand compoundCommand = new CompoundCommand();
-		if (RefreshHelper.isImpactingNotification(event.getNotifications())) {
-			RefreshRepresentationsCommand command = new RefreshRepresentationsCommand(event.getEditingDomain(), new NullProgressMonitor(),
-					this.diagramServer.getDDiagram());
-			// FIXME: will work only in our context !!!!!!!!
-			compoundCommand.append(command);
-		}
-		return compoundCommand;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServer.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServer.java
deleted file mode 100644
index 0e86f86..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServer.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.util.Optional;
-
-import org.eclipse.emf.transaction.ResourceSetListener;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.SiriusOptionalActionHandlerSwitch;
-import org.eclipse.sprotty.Action;
-import org.eclipse.sprotty.ActionMessage;
-import org.eclipse.sprotty.DefaultDiagramServer;
-import org.eclipse.sprotty.ILayoutEngine;
-import org.eclipse.sprotty.SModelRoot;
-
-/**
- * The {@link SiriusDiagramServer} is used to communicate with clients.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramServer extends DefaultDiagramServer {
-
-	/**
-	 * The Sirius session.
-	 */
-	private Session session;
-
-	/**
-	 * The representation.
-	 */
-	private DDiagram dDiagram;
-
-	/**
-	 * The listener used to update the model when a modification occurs in Sirius.
-	 */
-	private ResourceSetListener resourceSetListener;
-
-	private ResourceSetListener preCommitListener;
-
-	public SiriusDiagramServer(Session session, DDiagram dDiagram, String clientId) {
-		this.session = session;
-		this.dDiagram = dDiagram;
-		this.setClientId(clientId);
-
-		this.resourceSetListener = new SiriusResourceSetListener(this);
-		// FIXME We are never removing this listener, this is a memory leak!
-		this.session.getTransactionalEditingDomain().addResourceSetListener(this.resourceSetListener);
-
-		this.preCommitListener = new SiriusDiagramPreCommitListener(this);
-		// FIXME We are never removing this listener, this is a memory leak!
-		this.session.getTransactionalEditingDomain().addResourceSetListener(this.preCommitListener);
-	}
-
-	@Override
-	public void accept(ActionMessage message) {
-		Action action = message.getAction();
-		Optional<ISiriusActionHandler> optionalHandler = new SiriusOptionalActionHandlerSwitch().doSwitch(action);
-		if (optionalHandler.isPresent()) {
-			// @formatter:off
-			optionalHandler.filter(handler -> handler.canHandle(this, action))
-				.ifPresent(handler -> handler.handle(this, action));
-			// @formatter:on
-		} else {
-			super.accept(message);
-		}
-	}
-
-	@Override
-	protected boolean needsClientLayout(SModelRoot root) {
-		/*
-		 * The client layout is necessary in order to have Sprotty compute some information which are necessary for ELK
-		 * to to its job. As an example, the internal layout of a node needs to be computed by Sprotty in order to know
-		 * the real size of the various elements after the use of CSS. Sprotty can then communicate this information to
-		 * ELK which can thus start to compute a meaningful layout which will be then returned to Sprotty.
-		 **/
-		return true;
-	}
-
-	@Override
-	protected ILayoutEngine getLayoutEngine() {
-		return new SiriusLayoutEngine();
-	}
-
-	/**
-	 * Return the session.
-	 *
-	 * @return the session
-	 */
-	public Session getSession() {
-		return this.session;
-	}
-
-	/**
-	 * Return the DDiagram.
-	 *
-	 * @return the DDiagram
-	 */
-	public DDiagram getDDiagram() {
-		return this.dDiagram;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerEndpoint.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerEndpoint.java
deleted file mode 100644
index f3792b7..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerEndpoint.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import javax.websocket.CloseReason;
-import javax.websocket.EndpointConfig;
-import javax.websocket.Session;
-
-import org.apache.log4j.Logger;
-import org.eclipse.sirius.server.diagram.internal.actions.SiriusActionTypeAdapter;
-import org.eclipse.sprotty.ActionMessage;
-import org.eclipse.sprotty.server.websocket.DiagramServerEndpoint;
-
-/**
- * The {@link SiriusServerEndpoint} is used to log the various interactions between the client and the server.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramServerEndpoint extends DiagramServerEndpoint {
-	/**
-	 * The logger.
-	 */
-	private static Logger LOG = Logger.getLogger(SiriusDiagramServerEndpoint.class);
-
-	/**
-	 * The gson object used to deserialize actions.
-	 */
-	private Gson gson;
-
-	@Override
-	public void onOpen(Session session, EndpointConfig config) {
-		LOG.info("Opened connection " + session.getId()); //$NON-NLS-1$
-		super.onOpen(session, config);
-	}
-
-	@Override
-	public void onClose(Session session, CloseReason closeReason) {
-		LOG.info("Closed connection " + session.getId()); //$NON-NLS-1$
-		super.onClose(session, closeReason);
-	}
-
-	@Override
-	public void accept(ActionMessage message) {
-		initializeGson();
-		String json = gson.toJson(message, ActionMessage.class);
-		getSession().getAsyncRemote().sendText(json);
-	}
-
-	@Override
-	protected void fireMessageReceived(ActionMessage message) {
-		LOG.info("CLIENT " + message); //$NON-NLS-1$
-		super.fireMessageReceived(message);
-	}
-
-	@Override
-	protected void initializeGson() {
-		if (gson == null) {
-			GsonBuilder gsonBuilder = new GsonBuilder();
-			SiriusActionTypeAdapter.configureGson(gsonBuilder);
-			this.gson = gsonBuilder.create();
-			this.setGson(gson);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerLauncher.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerLauncher.java
deleted file mode 100644
index 36edb12..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerLauncher.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-
-/**
- * The main application for the Sirius Server.
- *
- * @author gcoutable
- *
- */
-public class SiriusDiagramServerLauncher implements IApplication {
-
-	/**
-	 * The application context.
-	 */
-	private IApplicationContext appContext;
-
-	@Override
-	public Object start(IApplicationContext context) throws Exception {
-		this.appContext = context;
-		return IApplicationContext.EXIT_ASYNC_RESULT;
-	}
-
-	@Override
-	public void stop() {
-		appContext.setResult(EXIT_OK, this);
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerPlugin.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerPlugin.java
deleted file mode 100644
index 895aed8..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramServerPlugin.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author sbegaudeau
- */
-public class SiriusDiagramServerPlugin extends EMFPlugin {
-	/**
-	 * The identifier of the plugin.
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.sirius.server.diagram"; //$NON-NLS-1$
-
-	/**
-	 * The sole instance of the plugin.
-	 */
-	public static final SiriusDiagramServerPlugin INSTANCE = new SiriusDiagramServerPlugin();
-
-	/**
-	 * The sole instance of the bundle activator.
-	 */
-	private static Implementation plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public SiriusDiagramServerPlugin() {
-		super(new ResourceLocator[0]);
-	}
-
-	@Override
-	public ResourceLocator getPluginResourceLocator() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 *
-	 * @return the singleton instance.
-	 */
-	public static Implementation getPlugin() {
-		return plugin;
-	}
-
-	/**
-	 * The bundle activator.
-	 *
-	 * @author sbegaudeau
-	 */
-	public static class Implementation extends EclipsePlugin {
-
-		/**
-		 * The constructor.
-		 */
-		public Implementation() {
-			super();
-			SiriusDiagramServerPlugin.plugin = this;
-		}
-
-		@Override
-		public void start(BundleContext context) throws Exception {
-			super.start(context);
-		}
-
-		@Override
-		public void stop(BundleContext context) throws Exception {
-			super.stop(context);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramService.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramService.java
deleted file mode 100644
index f4958bd..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusDiagramService.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.sirius.business.api.dialect.DialectManager;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.viewpoint.DRepresentation;
-import org.eclipse.sprotty.IDiagramServer;
-import org.eclipse.sprotty.IDiagramServer.Provider;
-
-/**
- * The {@link SiriusDiagramService} is used to create new instances of the {@link SiriusDiagramServer}.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramService implements HttpSessionListener, Provider {
-
-	/**
-	 * The prefix of the project part of the client identifier.
-	 */
-	private static final String PROJECT__PREFIX = "__PROJECT__"; //$NON-NLS-1$
-
-	/**
-	 * The prefix of the aird part of the client identifier.
-	 */
-	private static final String AIRD__PREFIX = "__AIRD__"; //$NON-NLS-1$
-
-	/**
-	 * The prefix of the representation part of the client identifier.
-	 */
-	private static final String REPRESENTATION__PREFIX = "__REPRESENTATION__"; //$NON-NLS-1$
-
-	/**
-	 * The prefix of the client id part of the client identifier.
-	 */
-	private static final String CLIENT_ID__PREFIX = "__CLIENT_ID__"; //$NON-NLS-1$
-
-	/**
-	 * The logger.
-	 */
-	private static Logger LOG = Logger.getLogger(SiriusDiagramService.class);
-
-	/**
-	 * The map of all the {@link SiriusDiagramServer} and their identifier.
-	 */
-	private Map<String, SiriusDiagramServer> diagramServers = new HashMap<>();
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.sprotty.IDiagramServer.Provider#getDiagramServer(java.lang.String)
-	 */
-	@Override
-	public IDiagramServer getDiagramServer(String clientId) {
-		synchronized (this.diagramServers) {
-			Optional<SiriusDiagramServer> optionalSiriusDiagramServer = Optional.ofNullable(this.diagramServers.get(clientId));
-			if (!optionalSiriusDiagramServer.isPresent()) {
-				return this.createDiagramServer(clientId).orElse(null);
-			}
-			return optionalSiriusDiagramServer.orElse(null);
-		}
-	}
-
-	/**
-	 * Creates and registers the {@link SiriusDiagramServer} for the given client identifier.
-	 *
-	 * @param clientId
-	 *            The client identifier
-	 * @return The {@link SiriusDiagramServer} for the given client identifier or an empty optional if the identifier is
-	 *         not relevant
-	 */
-	private Optional<SiriusDiagramServer> createDiagramServer(String clientId) {
-		int projectPrefixIndex = clientId.indexOf(PROJECT__PREFIX);
-		int airdPrefixIndex = clientId.indexOf(AIRD__PREFIX);
-		int representationPrefixIndex = clientId.indexOf(REPRESENTATION__PREFIX);
-		int clientIdPrefixIndex = clientId.indexOf(CLIENT_ID__PREFIX);
-
-		String projectName = clientId.substring(projectPrefixIndex + PROJECT__PREFIX.length(), airdPrefixIndex);
-		String airdFullPath = clientId.substring(airdPrefixIndex + AIRD__PREFIX.length(), representationPrefixIndex);
-		String representationName = clientId.substring(representationPrefixIndex + REPRESENTATION__PREFIX.length(), clientIdPrefixIndex);
-
-		Optional<Session> optionalSession = this.getSession(projectName, airdFullPath);
-		Optional<DDiagram> optionalDDiagram = optionalSession.flatMap(session -> this.getDDiagramFromSession(session, representationName));
-		if (optionalSession.isPresent() && optionalDDiagram.isPresent()) {
-			Session session = optionalSession.get();
-			DDiagram dDiagram = optionalDDiagram.get();
-
-			SiriusDiagramServer siriusDiagramServer = new SiriusDiagramServer(session, dDiagram, clientId);
-			this.diagramServers.put(clientId, siriusDiagramServer);
-			return Optional.of(siriusDiagramServer);
-		}
-		return Optional.empty();
-	}
-
-	/**
-	 * Returns the {@link Session} found for the given project name and aird path.
-	 *
-	 * @param projectName
-	 *            The name of the project containing the aird
-	 * @param airdFullPath
-	 *            The path of the aird in the project
-	 * @return The {@link Session} found or an empty optional
-	 */
-	private Optional<Session> getSession(String projectName, String airdFullPath) {
-		Optional<String> optionalProjectName = Optional.ofNullable(projectName);
-		Optional<String> optionalAird = Optional.ofNullable(airdFullPath);
-
-		Optional<IProject> optionalProject = optionalProjectName.map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-		Optional<IFile> optionalFile = optionalProject.flatMap(project -> optionalAird.map(Path::new).map(project::getFile));
-
-		// @formatter:off
-		return SessionManager.INSTANCE.getSessions().stream().filter(session -> {
-			Resource sessionResource = session.getSessionResource();
-			URI sessionResourceURI = sessionResource.getURI();
-
-			Optional<URI> optionalAirdFileURI = optionalFile.filter(IFile::exists)
-					.map(IFile::getFullPath)
-					.map(IPath::toString)
-					.map(fullPath -> URI.createPlatformResourceURI(fullPath, true));
-
-			return optionalAirdFileURI.map(sessionResourceURI::equals).orElse(Boolean.FALSE).booleanValue();
-		}).findFirst();
-		// @formatter:on
-	}
-
-	/**
-	 * Returns the {@link DDiagram} found for the given {@link Session} and the representation name.
-	 *
-	 * @param session
-	 *            The {@link Session}
-	 * @param representationName
-	 *            The name of the {@link DDiagram}
-	 * @return The {@link DDiagram} found or an empty optional
-	 */
-	private Optional<DDiagram> getDDiagramFromSession(Session session, String representationName) {
-		Collection<DRepresentation> representations = DialectManager.INSTANCE.getAllRepresentations(session);
-		// @formatter:off
-		return representations.stream()
-				.filter(DDiagram.class::isInstance)
-				.map(DDiagram.class::cast)
-				.filter(dDiagram -> {
-					return Optional.ofNullable(representationName).orElse("").equals(dDiagram.getName()); //$NON-NLS-1$
-				})
-				.findFirst();
-		// @formatter:on
-	}
-
-	@Override
-	public void sessionCreated(HttpSessionEvent se) {
-		LOG.info("Session created"); //$NON-NLS-1$
-	}
-
-	@Override
-	public void sessionDestroyed(HttpSessionEvent se) {
-		LOG.info("Session destroyed"); //$NON-NLS-1$
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusEndpointConfigurator.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusEndpointConfigurator.java
deleted file mode 100644
index 47c6151..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusEndpointConfigurator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.util.List;
-
-import javax.websocket.Extension;
-import javax.websocket.HandshakeResponse;
-import javax.websocket.server.HandshakeRequest;
-import javax.websocket.server.ServerEndpointConfig;
-import javax.websocket.server.ServerEndpointConfig.Configurator;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jetty.websocket.jsr356.server.ContainerDefaultConfigurator;
-
-/**
- * The {@link SiriusEndpointConfigurator} is used to connect the {@link SiriusDiagramService} to the
- * {@link SiriusDiagramServerEndpoint}.
- *
- * @author sbegaudeau
- */
-public class SiriusEndpointConfigurator extends Configurator {
-	/**
-	 * The logger.
-	 */
-	private static Logger LOG = Logger.getLogger(SiriusEndpointConfigurator.class);
-
-	/**
-	 * The diagram service.
-	 */
-	private SiriusDiagramService diagramService;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param diagramService
-	 *            The diagram service
-	 */
-	public SiriusEndpointConfigurator(SiriusDiagramService diagramService) {
-		this.diagramService = diagramService;
-	}
-
-	@Override
-	public <T> T getEndpointInstance(Class<T> endpointClass) throws InstantiationException {
-		T instance = new ContainerDefaultConfigurator().getEndpointInstance(endpointClass);
-		if (instance instanceof SiriusDiagramServerEndpoint) {
-			SiriusDiagramServerEndpoint testServerEndpoint = (SiriusDiagramServerEndpoint) instance;
-			testServerEndpoint.setDiagramServerProvider(this.diagramService);
-			testServerEndpoint.setExceptionHandler((exception) -> LOG.warn(exception));
-		}
-		return instance;
-	}
-
-	@Override
-	public boolean checkOrigin(String originHeaderValue) {
-		return true;
-	}
-
-	@Override
-	public String getNegotiatedSubprotocol(List<String> supported, List<String> requested) {
-		return new ContainerDefaultConfigurator().getNegotiatedSubprotocol(supported, requested);
-	}
-
-	@Override
-	public List<Extension> getNegotiatedExtensions(List<Extension> installed, List<Extension> requested) {
-		return requested;
-	}
-
-	@Override
-	public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
-		// Do nothing because why not :)
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusLayoutEngine.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusLayoutEngine.java
deleted file mode 100644
index a02b9e8..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusLayoutEngine.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.EnumSet;
-import java.util.HashMap;
-
-import org.apache.log4j.Logger;
-import org.eclipse.elk.alg.layered.options.LayeredOptions;
-import org.eclipse.elk.alg.layered.options.LayeringStrategy;
-import org.eclipse.elk.core.math.KVector;
-import org.eclipse.elk.core.options.CoreOptions;
-import org.eclipse.elk.core.options.HierarchyHandling;
-import org.eclipse.elk.core.options.NodeLabelPlacement;
-import org.eclipse.elk.core.options.PortSide;
-import org.eclipse.elk.core.options.SizeConstraint;
-import org.eclipse.elk.core.options.SizeOptions;
-import org.eclipse.elk.graph.ElkNode;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSquareBorderNode;
-import org.eclipse.sirius.server.diagram.internal.entities.SiriusSvgBorderNode;
-import org.eclipse.sprotty.SGraph;
-import org.eclipse.sprotty.SModelRoot;
-import org.eclipse.sprotty.layout.ElkLayoutEngine;
-import org.eclipse.sprotty.layout.SprottyLayoutConfigurator;
-
-/**
- * The {@link SiriusLayoutEngine} defines the configuration of the layout that ELK should apply to a given Sprotty
- * model.
- *
- * @author sbegaudeau
- */
-public class SiriusLayoutEngine extends ElkLayoutEngine {
-	/**
-	 * The logger.
-	 */
-	private static final Logger LOG = Logger.getLogger(SiriusLayoutEngine.class);
-
-	/**
-	 * The space between two nodes.
-	 */
-	private static final Double SPACING_NODE_NODE = Double.valueOf(50.0);
-
-	/**
-	 * The space between node and edges.
-	 */
-	private static final Double SPACING_NODE_EDGE = Double.valueOf(30.0);
-
-	@Override
-	public void layout(SModelRoot root) {
-		if (root instanceof SGraph) {
-			SprottyLayoutConfigurator configurator = new SprottyLayoutConfigurator();
-			configurator.configureByType("graph") //$NON-NLS-1$
-					.setProperty(CoreOptions.ALGORITHM, LayeredOptions.ALGORITHM_ID)
-					.setProperty(CoreOptions.HIERARCHY_HANDLING, HierarchyHandling.INCLUDE_CHILDREN)
-					.setProperty(LayeredOptions.LAYERING_STRATEGY, LayeringStrategy.NETWORK_SIMPLEX)
-					.setProperty(LayeredOptions.SPACING_NODE_NODE, SPACING_NODE_NODE)
-					.setProperty(LayeredOptions.SPACING_NODE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE)
-					.setProperty(LayeredOptions.SPACING_EDGE_NODE, SPACING_NODE_EDGE)
-					.setProperty(LayeredOptions.SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_EDGE);
-
-			configurator.configureByType("node:flatcontainer") //$NON-NLS-1$
-					.setProperty(CoreOptions.NODE_SIZE_CONSTRAINTS, SizeConstraint.free())
-					.setProperty(CoreOptions.NODE_SIZE_MINIMUM, new KVector(120, 100))
-					.setProperty(CoreOptions.NODE_LABELS_PLACEMENT, NodeLabelPlacement.insideTopCenter());
-
-			configurator.configureByType("node:freeformflatcontainer") //$NON-NLS-1$
-					.setProperty(CoreOptions.NODE_SIZE_CONSTRAINTS, SizeConstraint.free())
-					.setProperty(CoreOptions.NODE_SIZE_MINIMUM, new KVector(120, 100))
-					.setProperty(CoreOptions.NODE_LABELS_PLACEMENT, NodeLabelPlacement.insideTopCenter());
-
-			configurator.configureByType("node:svg") //$NON-NLS-1$
-					.setProperty(CoreOptions.NODE_SIZE_CONSTRAINTS, SizeConstraint.free())
-					.setProperty(CoreOptions.NODE_SIZE_MINIMUM, new KVector(30, 30))
-					.setProperty(CoreOptions.NODE_LABELS_PLACEMENT, NodeLabelPlacement.outsideBottomCenter());
-
-			configurator.configureByType("node:listflatcontainer") //$NON-NLS-1$
-					.setProperty(CoreOptions.NODE_SIZE_CONSTRAINTS, SizeConstraint.free())
-					.setProperty(CoreOptions.NODE_SIZE_MINIMUM, new KVector(120, 100))
-					.setProperty(CoreOptions.NODE_SIZE_OPTIONS, EnumSet.of(SizeOptions.DEFAULT_MINIMUM_SIZE));
-
-			configurator.configureByType(SiriusSquareBorderNode.TYPE).setProperty(LayeredOptions.PORT_SIDE, PortSide.WEST);
-			configurator.configureByType(SiriusSvgBorderNode.TYPE).setProperty(LayeredOptions.PORT_SIDE, PortSide.WEST);
-
-			this.layout((SGraph) root, configurator);
-		}
-	}
-
-	@Override
-	protected void applyEngine(ElkNode elkGraph) {
-		/*
-		 * Transform the ELK model into XMI in order to log it. This code allow us to have some information in order to
-		 * be able to debug the behavior of ELK. It does not give us a full understanding of the behavior of ELK but it
-		 * give us the shape of the constraints that ELK has understood from our code above.
-		 **/
-		ResourceSet resourceSet = new ResourceSetImpl();
-		Resource resource = resourceSet.createResource(URI.createFileURI("output.elkg")); //$NON-NLS-1$
-		resource.getContents().add(elkGraph);
-		try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
-			resource.save(outputStream, new HashMap<>());
-			String elkData = outputStream.toString();
-			LOG.info(elkData);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-
-		super.applyEngine(elkGraph);
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusResourceSetListener.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusResourceSetListener.java
deleted file mode 100644
index 8da269d..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusResourceSetListener.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.emf.transaction.ResourceSetListenerImpl;
-import org.eclipse.sirius.server.diagram.internal.actions.RequestLayersAction;
-import org.eclipse.sirius.server.diagram.internal.actions.RequestToolsAction;
-import org.eclipse.sprotty.ActionMessage;
-import org.eclipse.sprotty.RequestModelAction;
-
-/**
- * A resource set listener allowing us to refresh the diagram.
- *
- * @author sbegaudeau
- */
-public class SiriusResourceSetListener extends ResourceSetListenerImpl {
-
-	/**
-	 * The Sirius diagram server.
-	 */
-	private SiriusDiagramServer siriusDiagramServer;
-
-	/**
-	 * The constructor.
-	 *
-	 */
-	public SiriusResourceSetListener(SiriusDiagramServer siriusDiagramServer) {
-		this.siriusDiagramServer = siriusDiagramServer;
-	}
-
-	@Override
-	public void resourceSetChanged(ResourceSetChangeEvent event) {
-		super.resourceSetChanged(event);
-
-		ActionMessage requestModelActionMessage = new ActionMessage();
-		requestModelActionMessage.setClientId(this.siriusDiagramServer.getClientId());
-		requestModelActionMessage.setAction(new RequestModelAction());
-		this.siriusDiagramServer.accept(requestModelActionMessage);
-
-		ActionMessage requestToolsActionMessage = new ActionMessage();
-		requestToolsActionMessage.setClientId(this.siriusDiagramServer.getClientId());
-		requestToolsActionMessage.setAction(new RequestToolsAction());
-		this.siriusDiagramServer.accept(requestToolsActionMessage);
-
-		ActionMessage requestLayersActionMessage = new ActionMessage();
-		requestLayersActionMessage.setClientId(this.siriusDiagramServer.getClientId());
-		requestLayersActionMessage.setAction(new RequestLayersAction());
-		this.siriusDiagramServer.accept(requestLayersActionMessage);
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramConfigurator.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramConfigurator.java
deleted file mode 100644
index 8edde39..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramConfigurator.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import javax.servlet.ServletException;
-import javax.websocket.DeploymentException;
-import javax.websocket.server.ServerContainer;
-import javax.websocket.server.ServerEndpointConfig;
-import javax.websocket.server.ServerEndpointConfig.Builder;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.elk.alg.layered.options.LayeredOptions;
-import org.eclipse.elk.core.util.persistence.ElkGraphResourceFactory;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.DefaultServlet;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-import org.eclipse.sprotty.layout.ElkLayoutEngine;
-import org.osgi.framework.Bundle;
-
-/**
- * The configurator used to connect the support for diagrams to the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramConfigurator implements ISiriusServerConfigurator {
-
-	/**
-	 * The default context path.
-	 */
-	private static final String CONTEXT_PATH = "/diagrams"; //$NON-NLS-1$
-
-	/**
-	 * The default servlet holder name.
-	 */
-	private static final String SERVLET_HOLDER_NAME = "Sirius Diagrams"; //$NON-NLS-1$
-
-	@Override
-	public void configure(Server server) {
-		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("elkg", new ElkGraphResourceFactory()); //$NON-NLS-1$
-		ElkLayoutEngine.initialize(new LayeredOptions());
-		SiriusDiagramService siriusDiagramService = new SiriusDiagramService();
-
-		try {
-			server.setStopAtShutdown(true);
-
-			ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-			servletContextHandler.setContextPath(CONTEXT_PATH);
-			servletContextHandler.addEventListener(siriusDiagramService);
-
-			Handler handler = server.getHandler();
-			if (handler instanceof HandlerCollection) {
-				HandlerCollection handlerCollection = (HandlerCollection) handler;
-				handlerCollection.addHandler(servletContextHandler);
-			}
-
-			ServletHolder servletHolder = new ServletHolder(SERVLET_HOLDER_NAME, new DefaultServlet());
-
-			Bundle bundle = SiriusDiagramServerPlugin.getPlugin().getBundle();
-			URL webappFolderUrl = bundle.getResource("./webapp"); //$NON-NLS-1$
-			URI webappFolderUri = FileLocator.resolve(webappFolderUrl).toURI();
-			String webappFolderAbsolutePath = new File(webappFolderUri).getAbsolutePath();
-
-			servletHolder.setInitParameter("resourceBase", webappFolderAbsolutePath); //$NON-NLS-1$
-			servletHolder.setInitParameter("dirAllowed", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-			servletContextHandler.addServlet(servletHolder, "/"); //$NON-NLS-1$
-
-			SiriusEndpointConfigurator siriusEndpointConfigurator = new SiriusEndpointConfigurator(siriusDiagramService);
-			ServerContainer container = WebSocketServerContainerInitializer.configureContext(servletContextHandler);
-			container.setDefaultMaxSessionIdleTimeout(0);
-			Builder endpointConfigBuilder = ServerEndpointConfig.Builder.create(SiriusDiagramServerEndpoint.class, "/api"); //$NON-NLS-1$
-			endpointConfigBuilder.configurator(siriusEndpointConfigurator);
-			container.addEndpoint(endpointConfigBuilder.build());
-		} catch (ServletException | URISyntaxException | IOException | DeploymentException exception) {
-			exception.printStackTrace();
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteContainerCreationToolAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteContainerCreationToolAction.java
deleted file mode 100644
index b8e2612..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteContainerCreationToolAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sirius.diagram.description.tool.ContainerCreationDescription;
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the client to the server in order to execute the sirius {@link ContainerCreationDescription} tool.
- *
- * @author sbegaudeau
- */
-public class ExecuteContainerCreationToolAction implements Action {
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "executeContainerCreationTool"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	/**
-	 * The tool name to execute.
-	 */
-	private String toolName;
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-	/**
-	 * Returns the tool name to apply.
-	 *
-	 * @return The tool name to apply
-	 */
-	public String getToolName() {
-		return toolName;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteNodeCreationToolAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteNodeCreationToolAction.java
deleted file mode 100644
index 6253b09..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteNodeCreationToolAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sirius.diagram.description.tool.NodeCreationDescription;
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the client to the server in order to execute the sirius {@link NodeCreationDescription} tool.
- *
- * @author gcoutable
- */
-public class ExecuteNodeCreationToolAction implements Action {
-
-	/**
-	 * The kind of the action
-	 */
-	public static final String KIND = "executeNodeCreationTool"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	/**
-	 * The tool name to execute.
-	 */
-	private String toolName;
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-	/**
-	 * Returns the tool name to apply.
-	 *
-	 * @return The tool name to apply
-	 */
-	public String getToolName() {
-		return toolName;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteToolAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteToolAction.java
deleted file mode 100644
index 0130f82..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ExecuteToolAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the client to the server in order to execute the sirius tool.
- *
- * @author sbegaudeau
- */
-public class ExecuteToolAction implements Action {
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "executeTool"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	/**
-	 * The tool name to execute.
-	 */
-	private String toolName;
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-	/**
-	 * Returns the tool name to apply.
-	 *
-	 * @return The tool name to apply
-	 */
-	public String getToolName() {
-		return toolName;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ISiriusActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ISiriusActionHandler.java
deleted file mode 100644
index e5cb4b0..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ISiriusActionHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Utility interface to handle an {@link Action}.
- *
- * @author sbegaudeau
- */
-public interface ISiriusActionHandler {
-
-	/**
-	 * Indicates if the handler can handler the given {@link Action}.
-	 *
-	 * @param server
-	 *            The server
-	 * @param action
-	 *            The action
-	 * @return <code>true</code> if the action can be handled, <code>false</code> otherwise
-	 */
-	boolean canHandle(SiriusDiagramServer server, Action action);
-
-	/**
-	 * Handles the given {@link Action}.
-	 *
-	 * @param server
-	 *            The server
-	 * @param action
-	 *            The action
-	 */
-	void handle(SiriusDiagramServer server, Action action);
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestLayersAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestLayersAction.java
deleted file mode 100644
index 78ae59e..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestLayersAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Action used to request the layers of the diagram.
- *
- * @author gcoutable
- */
-public class RequestLayersAction implements Action {
-
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "requestLayers"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	@Override
-	public String getKind() {
-		return kind;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestToolsAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestToolsAction.java
deleted file mode 100644
index 6fd0b88..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/RequestToolsAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the client to the server in order to request applicable tools.
- *
- * @author gcoutable
- */
-public class RequestToolsAction implements Action {
-
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "requestTools"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetLayersAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetLayersAction.java
deleted file mode 100644
index c957383..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetLayersAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the server to the client in order to give the layers.
- *
- * @author gcoutable
- */
-public class SetLayersAction implements Action {
-
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "setLayers"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	/**
-	 * The layers.
-	 */
-	private List<SiriusLayer> layers;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param layers
-	 *            The list of layers
-	 */
-	public SetLayersAction(List<SiriusLayer> layers) {
-		this.layers = new ArrayList<>(layers);
-	}
-
-	@Override
-	public String getKind() {
-		return kind;
-	}
-
-	/**
-	 * Return the layers.
-	 *
-	 * @return the layers
-	 */
-	public List<SiriusLayer> getLayers() {
-		return this.layers;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetToolsAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetToolsAction.java
deleted file mode 100644
index bcbdd65..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SetToolsAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the server to the client in order to give the available tools.
- *
- * @author gcoutable
- */
-public class SetToolsAction implements Action {
-
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "setTools"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = KIND;
-
-	/**
-	 * The list of tools to send.
-	 */
-	private List<SiriusTool> tools;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param tools
-	 *            The list of tools
-	 */
-	public SetToolsAction(List<SiriusTool> tools) {
-		this.tools = new ArrayList<>(tools);
-	}
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-	/**
-	 * Return the tools.
-	 *
-	 * @return the tools
-	 */
-	public List<SiriusTool> getTools() {
-		return this.tools;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionSwitch.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionSwitch.java
deleted file mode 100644
index 4e41258..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionSwitch.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sprotty.Action;
-import org.eclipse.sprotty.CenterAction;
-import org.eclipse.sprotty.CollapseExpandAction;
-import org.eclipse.sprotty.CollapseExpandAllAction;
-import org.eclipse.sprotty.ComputedBoundsAction;
-import org.eclipse.sprotty.ExportSvgAction;
-import org.eclipse.sprotty.FitToScreenAction;
-import org.eclipse.sprotty.OpenAction;
-import org.eclipse.sprotty.RequestBoundsAction;
-import org.eclipse.sprotty.RequestExportSvgAction;
-import org.eclipse.sprotty.RequestModelAction;
-import org.eclipse.sprotty.RequestPopupModelAction;
-import org.eclipse.sprotty.SelectAction;
-import org.eclipse.sprotty.SelectAllAction;
-import org.eclipse.sprotty.ServerStatusAction;
-import org.eclipse.sprotty.SetBoundsAction;
-import org.eclipse.sprotty.SetModelAction;
-import org.eclipse.sprotty.SetPopupModelAction;
-import org.eclipse.sprotty.UpdateModelAction;
-
-/**
- * Switch used to handle the various actions.
- *
- * @author sbegaudeau
- *
- * @param <T>
- *            The type of result expected by the switch
- */
-public class SiriusActionSwitch<T> {
-
-	/**
-	 * Returns the default value.
-	 *
-	 * @return The default value
-	 */
-	protected T getDefaultValue() {
-		return null;
-	}
-
-	/**
-	 * Dispatch the action.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T doSwitch(Action action) {
-		T result = this.getDefaultValue();
-		switch (action.getKind()) {
-		case CenterAction.KIND:
-			if (action instanceof CenterAction) {
-				result = this.caseCenterAction((CenterAction) action);
-			}
-			break;
-		case CollapseExpandAction.KIND:
-			if (action instanceof CollapseExpandAction) {
-				result = this.caseCollapseExpandAction((CollapseExpandAction) action);
-			}
-			break;
-		case CollapseExpandAllAction.KIND:
-			if (action instanceof CollapseExpandAllAction) {
-				result = this.caseCollapseExpandAllAction((CollapseExpandAllAction) action);
-			}
-			break;
-		case ComputedBoundsAction.KIND:
-			if (action instanceof ComputedBoundsAction) {
-				result = this.caseComputedBoundsAction((ComputedBoundsAction) action);
-			}
-			break;
-		case ExecuteContainerCreationToolAction.KIND:
-			if (action instanceof ExecuteContainerCreationToolAction) {
-				result = this.caseExecuteContainerCreationToolAction((ExecuteContainerCreationToolAction) action);
-			}
-			break;
-		case ExecuteNodeCreationToolAction.KIND:
-			if (action instanceof ExecuteNodeCreationToolAction) {
-				result = this.caseExecuteNodeCreationToolAction((ExecuteNodeCreationToolAction) action);
-			}
-			break;
-		case ExecuteToolAction.KIND:
-			if (action instanceof ExecuteToolAction) {
-				result = this.caseExecuteToolAction((ExecuteToolAction) action);
-			}
-			break;
-		case ExportSvgAction.KIND:
-			if (action instanceof ExportSvgAction) {
-				result = this.caseExportSvgAction((ExportSvgAction) action);
-			}
-			break;
-		case FitToScreenAction.KIND:
-			if (action instanceof FitToScreenAction) {
-				result = this.caseFitToScreenAction((FitToScreenAction) action);
-			}
-			break;
-		case OpenAction.KIND:
-			if (action instanceof OpenAction) {
-				result = this.caseOpenAction((OpenAction) action);
-			}
-			break;
-		case RequestBoundsAction.KIND:
-			if (action instanceof RequestBoundsAction) {
-				result = this.caseRequestBoundsAction((RequestBoundsAction) action);
-			}
-			break;
-		case RequestExportSvgAction.KIND:
-			if (action instanceof RequestExportSvgAction) {
-				result = this.caseRequestExportSvgAction((RequestExportSvgAction) action);
-			}
-			break;
-		case RequestModelAction.KIND:
-			if (action instanceof RequestModelAction) {
-				result = this.caseRequestModelAction((RequestModelAction) action);
-			}
-			break;
-		case RequestPopupModelAction.KIND:
-			if (action instanceof RequestPopupModelAction) {
-				result = this.caseRequestPopupModelAction((RequestPopupModelAction) action);
-			}
-			break;
-		case RequestLayersAction.KIND:
-			if (action instanceof RequestLayersAction) {
-				result = this.caseRequestLayersAction((RequestLayersAction) action);
-			}
-			break;
-		case RequestToolsAction.KIND:
-			if (action instanceof RequestToolsAction) {
-				result = this.caseRequestToolsAction((RequestToolsAction) action);
-			}
-			break;
-		case SelectAction.KIND:
-			if (action instanceof SelectAction) {
-				result = this.caseSelectAction((SelectAction) action);
-			}
-			break;
-		case SelectAllAction.KIND:
-			if (action instanceof SelectAllAction) {
-				result = this.caseSelectAllAction((SelectAllAction) action);
-			}
-			break;
-		case ServerStatusAction.KIND:
-			if (action instanceof ServerStatusAction) {
-				result = this.caseServerStatusAction((ServerStatusAction) action);
-			}
-			break;
-		case SetBoundsAction.KIND:
-			if (action instanceof SetBoundsAction) {
-				result = this.caseSetBoundsAction((SetBoundsAction) action);
-			}
-			break;
-		case SetLayersAction.KIND:
-			if (action instanceof SetLayersAction) {
-				result = this.caseSetLayersAction((SetLayersAction) action);
-			}
-			break;
-		case SetModelAction.KIND:
-			if (action instanceof SetModelAction) {
-				result = this.caseSetModelAction((SetModelAction) action);
-			}
-			break;
-		case SetPopupModelAction.KIND:
-			if (action instanceof SetPopupModelAction) {
-				result = this.caseSetPopupModelAction((SetPopupModelAction) action);
-			}
-			break;
-		case SetToolsAction.KIND:
-			if (action instanceof SetToolsAction) {
-				result = this.caseSetToolsAction((SetToolsAction) action);
-			}
-			break;
-		case ToggleLayerAction.KIND:
-			if (action instanceof ToggleLayerAction) {
-				result = this.caseToggleLayerAction((ToggleLayerAction) action);
-			}
-			break;
-		case UpdateModelAction.KIND:
-			if (action instanceof UpdateModelAction) {
-				result = this.caseUpdateModelAction((UpdateModelAction) action);
-			}
-			break;
-		default:
-			result = this.defaultCase(action);
-		}
-		return result;
-	}
-
-	/**
-	 * Handles the {@link CenterAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseCenterAction(CenterAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link CollapseExpandAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseCollapseExpandAction(CollapseExpandAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link CollapseExpandAllAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseCollapseExpandAllAction(CollapseExpandAllAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ComputedBoundsAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseComputedBoundsAction(ComputedBoundsAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ExecuteContainerCreationToolAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseExecuteContainerCreationToolAction(ExecuteContainerCreationToolAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ExecuteNodeCreationToolAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseExecuteNodeCreationToolAction(ExecuteNodeCreationToolAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ExecuteToolAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseExecuteToolAction(ExecuteToolAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ExportSvgAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseExportSvgAction(ExportSvgAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link FitToScreenAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseFitToScreenAction(FitToScreenAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link OpenAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseOpenAction(OpenAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestBoundsAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseRequestBoundsAction(RequestBoundsAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestExportSvgAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseRequestExportSvgAction(RequestExportSvgAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestModelAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseRequestModelAction(RequestModelAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestPopupModelAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseRequestPopupModelAction(RequestPopupModelAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestLayersAction}.
-	 *
-	 * @param action
-	 *            The action
-	 *
-	 * @return The expected result
-	 */
-	public T caseRequestLayersAction(RequestLayersAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link RequestToolsAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseRequestToolsAction(RequestToolsAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SelectAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSelectAction(SelectAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SelectAllAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSelectAllAction(SelectAllAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ServerStatusAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseServerStatusAction(ServerStatusAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SetBoundsAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSetBoundsAction(SetBoundsAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SetLayersAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSetLayersAction(SetLayersAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SetModelAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSetModelAction(SetModelAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SetPopupModelAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSetPopupModelAction(SetPopupModelAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link SetToolsAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseSetToolsAction(SetToolsAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link ToggleLayerAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseToggleLayerAction(ToggleLayerAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the {@link UpdateModelAction}.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T caseUpdateModelAction(UpdateModelAction action) {
-		return this.getDefaultValue();
-	}
-
-	/**
-	 * Handles the default case.
-	 *
-	 * @param action
-	 *            The action
-	 * @return The expected result
-	 */
-	public T defaultCase(Action action) {
-		return this.getDefaultValue();
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionTypeAdapter.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionTypeAdapter.java
deleted file mode 100644
index c3a01da..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusActionTypeAdapter.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import java.util.Map;
-
-import org.eclipse.sprotty.Action;
-import org.eclipse.sprotty.server.json.ActionTypeAdapter;
-import org.eclipse.sprotty.server.json.EnumTypeAdapter;
-
-/**
- * Gson type adapter for sirius sprotty actions.
- *
- * @author gcoutable
- *
- */
-public class SiriusActionTypeAdapter extends ActionTypeAdapter {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param gson
-	 *            The {@link Gson} object
-	 * @param actionKinds
-	 *            The map of action kind to {@link Action}
-	 */
-	public SiriusActionTypeAdapter(Gson gson, Map<String, Class<? extends Action>> actionKinds) {
-		super(gson, actionKinds);
-	}
-
-	/**
-	 * Configure a Gson builder with sirius sprotty actions.
-	 */
-	public static GsonBuilder configureGson(GsonBuilder gsonBuilder) {
-		gsonBuilder.registerTypeAdapterFactory(new SiriusActionTypeAdapter.SiriusFactory());
-		gsonBuilder.registerTypeAdapterFactory(new EnumTypeAdapter.Factory());
-		return gsonBuilder;
-	}
-
-	/**
-	 * Type adapter factory for sirius sprotty actions. Action classes are registered via their {@code kind} attribute
-	 * using {@link #addActionKind(String, Class)}.
-	 */
-	public static class SiriusFactory extends Factory {
-
-		/**
-		 * Constructor.
-		 */
-		public SiriusFactory() {
-			super();
-			addSiriusActionKinds();
-		}
-
-		/**
-		 * Register sirius sprotty actions.
-		 */
-		private void addSiriusActionKinds() {
-			addActionKind(ExecuteContainerCreationToolAction.KIND, ExecuteContainerCreationToolAction.class);
-			addActionKind(ExecuteNodeCreationToolAction.KIND, ExecuteNodeCreationToolAction.class);
-			addActionKind(ExecuteToolAction.KIND, ExecuteToolAction.class);
-			addActionKind(RequestLayersAction.KIND, RequestLayersAction.class);
-			addActionKind(RequestToolsAction.KIND, RequestToolsAction.class);
-			addActionKind(SetLayersAction.KIND, SetLayersAction.class);
-			addActionKind(SetToolsAction.KIND, SetToolsAction.class);
-			addActionKind(ToggleLayerAction.KIND, ToggleLayerAction.class);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusLayer.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusLayer.java
deleted file mode 100644
index c4f37ac..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusLayer.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sirius.diagram.description.Layer;
-
-/**
- * Class used to be serialize from the server in order to send data about {@link Layer} to the client.
- *
- * @author gcoutable
- */
-public class SiriusLayer {
-
-	/**
-	 * The name of the {@link org.eclipse.sirius.diagram.description.Layer}.
-	 */
-	private String id;
-
-	/**
-	 * The label of the {@link org.eclipse.sirius.diagram.description.Layer}.
-	 */
-	private String name;
-
-	/**
-	 * If the layer is active.
-	 */
-	private boolean isActive;
-
-	/**
-	 * Return the id.
-	 *
-	 * @return the id
-	 */
-	public String getId() {
-		return this.id;
-	}
-
-	/**
-	 * Sets the id.
-	 *
-	 * @param id
-	 *            the id to set
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Return the name.
-	 *
-	 * @return the name
-	 */
-	public String getName() {
-		return this.name;
-	}
-
-	/**
-	 * Sets the name.
-	 *
-	 * @param name
-	 *            the name to set
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * Return the isActive.
-	 *
-	 * @return the isActive
-	 */
-	public boolean isActive() {
-		return this.isActive;
-	}
-
-	/**
-	 * Sets the isActive.
-	 *
-	 * @param isActive
-	 *            the isActive to set
-	 */
-	public void setActive(boolean isActive) {
-		this.isActive = isActive;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusOptionalActionHandlerSwitch.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusOptionalActionHandlerSwitch.java
deleted file mode 100644
index 1190700..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusOptionalActionHandlerSwitch.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusExecuteContainerCreationToolActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusExecuteNodeCreationToolActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusExecuteToolActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusRequestLayersActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusRequestModelActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusRequestToolsActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.handlers.SiriusToggleLayerActionHandler;
-import org.eclipse.sprotty.Action;
-import org.eclipse.sprotty.RequestModelAction;
-
-/**
- * Switch used to return optional consumers of {@link Action}.
- *
- * @author sbegaudeau
- */
-public class SiriusOptionalActionHandlerSwitch extends SiriusActionSwitch<Optional<ISiriusActionHandler>> {
-
-	@Override
-	protected Optional<ISiriusActionHandler> getDefaultValue() {
-		return Optional.empty();
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseRequestModelAction(RequestModelAction action) {
-		return Optional.of(new SiriusRequestModelActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseExecuteContainerCreationToolAction(ExecuteContainerCreationToolAction action) {
-		return Optional.of(new SiriusExecuteContainerCreationToolActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseExecuteNodeCreationToolAction(ExecuteNodeCreationToolAction action) {
-		return Optional.of(new SiriusExecuteNodeCreationToolActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseExecuteToolAction(ExecuteToolAction action) {
-		return Optional.of(new SiriusExecuteToolActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseRequestToolsAction(RequestToolsAction action) {
-		return Optional.of(new SiriusRequestToolsActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseRequestLayersAction(RequestLayersAction action) {
-		return Optional.of(new SiriusRequestLayersActionHandler());
-	}
-
-	@Override
-	public Optional<ISiriusActionHandler> caseToggleLayerAction(ToggleLayerAction action) {
-		return Optional.of(new SiriusToggleLayerActionHandler());
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusTool.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusTool.java
deleted file mode 100644
index 428014f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/SiriusTool.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sirius.viewpoint.description.tool.AbstractToolDescription;
-
-/**
- * Class used to be serialize from the server in order to send data about {@link AbstractToolDescription} to the client
- *
- * @author gcoutable
- */
-public class SiriusTool {
-
-	/**
-	 * The name of the {@link AbstractToolDescription}.
-	 */
-	private String id;
-
-	/**
-	 * The label of the {@link AbstractToolDescription}.
-	 */
-	private String name;
-
-	/**
-	 * The simple class name of the {@link AbstractToolDescription} subclass.
-	 */
-	private String toolType;
-
-	/**
-	 * Return the id.
-	 *
-	 * @return the id
-	 */
-	public String getId() {
-		return this.id;
-	}
-
-	/**
-	 * Sets the id.
-	 *
-	 * @param id
-	 *            the id to set
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Return the name.
-	 *
-	 * @return the name
-	 */
-	public String getName() {
-		return this.name;
-	}
-
-	/**
-	 * Sets the name.
-	 *
-	 * @param name
-	 *            the name to set
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * Return the toolType.
-	 *
-	 * @return the toolType
-	 */
-	public String getToolType() {
-		return this.toolType;
-	}
-
-	/**
-	 * Sets the toolType.
-	 *
-	 * @param toolType
-	 *            the toolType to set
-	 */
-	public void setToolType(String toolType) {
-		this.toolType = toolType;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ToggleLayerAction.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ToggleLayerAction.java
deleted file mode 100644
index 5ffe111..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/ToggleLayerAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions;
-
-import org.eclipse.sprotty.Action;
-
-/**
- * Sent from the client to the server in order to toggle a layer.
- *
- * @author gcoutable
- */
-public class ToggleLayerAction implements Action {
-
-	/**
-	 * The kind of the action.
-	 */
-	public static final String KIND = "toggleLayer"; //$NON-NLS-1$
-
-	/**
-	 * The kind of the action.
-	 */
-	private String kind = ToggleLayerAction.KIND;
-
-	/**
-	 * The name of the layer.
-	 */
-	private String layerName;
-
-	/**
-	 * The new state of the layer.
-	 */
-	private boolean newState;
-
-	@Override
-	public String getKind() {
-		return this.kind;
-	}
-
-	/**
-	 * Return the layerName.
-	 *
-	 * @return the layerName
-	 */
-	public String getLayerName() {
-		return this.layerName;
-	}
-
-	/**
-	 * Return the newState.
-	 *
-	 * @return the newState
-	 */
-	public boolean isNewState() {
-		return this.newState;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteContainerCreationToolActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteContainerCreationToolActionHandler.java
deleted file mode 100644
index 551c702..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteContainerCreationToolActionHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DSemanticDiagram;
-import org.eclipse.sirius.diagram.description.tool.ContainerCreationDescription;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ExecuteContainerCreationToolAction;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.interpreter.InterpreterVariables;
-import org.eclipse.sirius.server.diagram.internal.interpreter.SiriusServerInterpreter;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler for the {@link ExecuteContainerCreationToolAction} received by the {@link SiriusDiagramServer}.
- *
- * @author sbegaudeau
- */
-public class SiriusExecuteContainerCreationToolActionHandler implements ISiriusActionHandler {
-	/**
-	 * The aql expression used to execute a {@link ModelOperation} programmatically.
-	 */
-	private static final String AQL_EXECUTE_OPERATION = "aql:self.executeOperation('%1$s')"; //$NON-NLS-1$
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof ExecuteContainerCreationToolAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof ExecuteContainerCreationToolAction) {
-			this.executeContainerCreationToolAction(siriusDiagramServer, (ExecuteContainerCreationToolAction) action);
-		}
-	}
-
-	/**
-	 * Execute the tool identified by its name.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 * @param action
-	 *            The action
-	 */
-	private void executeContainerCreationToolAction(SiriusDiagramServer siriusDiagramServer, ExecuteContainerCreationToolAction action) {
-		Session session = siriusDiagramServer.getSession();
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-
-		// @formatter:off
-		Optional<ContainerCreationDescription> optionalContainerCreationDescription = dDiagram.getDescription()
-			.getAllTools()
-			.stream()
-			.filter(tool -> action.getToolName().equals(tool.getName()))
-			.filter(ContainerCreationDescription.class::isInstance)
-			.map(ContainerCreationDescription.class::cast)
-			.findFirst();
-		// @formatter:on
-
-		optionalContainerCreationDescription.ifPresent(tool -> this.executeCreationTool(session, dDiagram, tool));
-	}
-
-	/**
-	 * Execute a {@link ContainerCreationDescription} tool.
-	 *
-	 * @param session
-	 *            The session
-	 * @param representation
-	 *            The representation
-	 * @param tool
-	 *            The {@link ContainerCreationDescription} tool
-	 */
-	private void executeCreationTool(Session session, DDiagram representation, ContainerCreationDescription tool) {
-		ModelOperation modelOperation = tool.getInitialOperation().getFirstModelOperations();
-
-		String expression = EcoreUtil.getURI(modelOperation).toString();
-		expression = expression.replace("'", "\\'"); //$NON-NLS-1$//$NON-NLS-2$
-		String expr = String.format(AQL_EXECUTE_OPERATION, expression);
-		Map<String, Object> variables = new HashMap<>();
-		if (representation instanceof DSemanticDiagram) {
-			DSemanticDiagram dsd = (DSemanticDiagram) representation;
-			variables.put(InterpreterVariables.SELF_VARIABLE, dsd.getTarget());
-			variables.put(InterpreterVariables.CONTAINER_VARIABLE, dsd.getTarget());
-			variables.put(InterpreterVariables.CONTAINER_VIEW_VARIABLE, dsd);
-		}
-
-		SiriusServerInterpreter.executeExpression(session, variables, expr);
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteNodeCreationToolActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteNodeCreationToolActionHandler.java
deleted file mode 100644
index 0599d54..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteNodeCreationToolActionHandler.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DSemanticDiagram;
-import org.eclipse.sirius.diagram.description.tool.NodeCreationDescription;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ExecuteNodeCreationToolAction;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.interpreter.InterpreterVariables;
-import org.eclipse.sirius.server.diagram.internal.interpreter.SiriusServerInterpreter;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler for the {@link ExecuteNodeCreationToolAction} received by the {@link SiriusDiagramServer}.
- *
- * @author gcoutable
- */
-public class SiriusExecuteNodeCreationToolActionHandler implements ISiriusActionHandler {
-
-	/**
-	 * The aql expression used to execute a {@link ModelOperation} programmatically.
-	 */
-	private static final String AQL_EXECUTE_OPERATION = "aql:self.executeOperation('%1$s')"; //$NON-NLS-1$
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof ExecuteNodeCreationToolAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof ExecuteNodeCreationToolAction) {
-			this.executeNodeCreationToolAction(siriusDiagramServer, (ExecuteNodeCreationToolAction) action);
-		}
-	}
-
-	/**
-	 * Execute the tool identified by its name.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 * @param action
-	 *            The action
-	 */
-	private void executeNodeCreationToolAction(SiriusDiagramServer siriusDiagramServer, ExecuteNodeCreationToolAction action) {
-		Session session = siriusDiagramServer.getSession();
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-
-		// @formatter:off
-		Optional<NodeCreationDescription> optionalNodeCreationDescription = dDiagram.getDescription()
-			.getAllTools()
-			.stream()
-			.filter(tool -> action.getToolName().equals(tool.getName()))
-			.filter(NodeCreationDescription.class::isInstance)
-			.map(NodeCreationDescription.class::cast)
-			.findFirst();
-		// @formatter:on
-
-		optionalNodeCreationDescription.ifPresent(tool -> this.executeCreationTool(session, dDiagram, tool));
-	}
-
-	/**
-	 * Execute a {@link NodeCreationDescription} tool.
-	 *
-	 * @param session
-	 *            The session
-	 * @param representation
-	 *            The representation
-	 * @param tool
-	 *            The {@link NodeCreationDescription} tool
-	 */
-	private void executeCreationTool(Session session, DDiagram representation, NodeCreationDescription tool) {
-		ModelOperation modelOperation = tool.getInitialOperation().getFirstModelOperations();
-
-		String expression = EcoreUtil.getURI(modelOperation).toString();
-		expression = expression.replace("'", "\\'"); //$NON-NLS-1$//$NON-NLS-2$
-		String expr = String.format(AQL_EXECUTE_OPERATION, expression);
-		Map<String, Object> variables = new HashMap<>();
-		if (representation instanceof DSemanticDiagram) {
-			DSemanticDiagram dsd = (DSemanticDiagram) representation;
-			variables.put(InterpreterVariables.SELF_VARIABLE, dsd.getTarget());
-			variables.put(InterpreterVariables.CONTAINER_VARIABLE, dsd.getTarget());
-			variables.put(InterpreterVariables.CONTAINER_VIEW_VARIABLE, dsd);
-		}
-
-		SiriusServerInterpreter.executeExpression(session, variables, expr);
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteToolActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteToolActionHandler.java
deleted file mode 100644
index d72484e..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusExecuteToolActionHandler.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DSemanticDiagram;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ExecuteToolAction;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.interpreter.InterpreterVariables;
-import org.eclipse.sirius.server.diagram.internal.interpreter.SiriusServerInterpreter;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-import org.eclipse.sirius.viewpoint.description.tool.ToolDescription;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler for the {@link ExecuteToolAction} received by the {@link SiriusDiagramServer}.
- *
- * @author sbegaudeau
- */
-public class SiriusExecuteToolActionHandler implements ISiriusActionHandler {
-	/**
-	 * The aql expression used to execute a {@link ModelOperation} programmatically.
-	 */
-	private static final String AQL_EXECUTE_OPERATION = "aql:self.executeOperation('%1$s')"; //$NON-NLS-1$
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof ExecuteToolAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof ExecuteToolAction) {
-			this.executeToolAction(siriusDiagramServer, (ExecuteToolAction) action);
-		}
-	}
-
-	/**
-	 * Execute the tool identified by its name.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 * @param action
-	 *            The action
-	 */
-	private void executeToolAction(SiriusDiagramServer siriusDiagramServer, ExecuteToolAction action) {
-		Session session = siriusDiagramServer.getSession();
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-
-		// @formatter:off
-		Optional<ToolDescription> optionalDescription = dDiagram.getDescription()
-			.getAllTools()
-			.stream()
-			.filter(tool -> action.getToolName().equals(tool.getName()))
-			.filter(ToolDescription.class::isInstance)
-			.map(ToolDescription.class::cast)
-			.findFirst();
-		// @formatter:on
-
-		optionalDescription.ifPresent(tool -> this.executeTool(session, dDiagram, tool));
-	}
-
-	/**
-	 * Execute a {@link ToolDescription} tool.
-	 *
-	 * @param session
-	 *            The session
-	 * @param representation
-	 *            The representation
-	 * @param tool
-	 *            The {@link ToolDescription} tool
-	 */
-	private void executeTool(Session session, DDiagram representation, ToolDescription tool) {
-		ModelOperation modelOperation = tool.getInitialOperation().getFirstModelOperations();
-
-		String expression = EcoreUtil.getURI(modelOperation).toString();
-		expression = expression.replace("'", "\\'"); //$NON-NLS-1$//$NON-NLS-2$
-		String expr = String.format(AQL_EXECUTE_OPERATION, expression);
-		Map<String, Object> variables = new HashMap<>();
-		if (representation instanceof DSemanticDiagram) {
-			DSemanticDiagram dsd = (DSemanticDiagram) representation;
-			variables.put(InterpreterVariables.SELF_VARIABLE, dsd.getTarget());
-		}
-
-		SiriusServerInterpreter.executeExpression(session, variables, expr);
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestLayersActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestLayersActionHandler.java
deleted file mode 100644
index 476a22c..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestLayersActionHandler.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.helper.LayerHelper;
-import org.eclipse.sirius.diagram.description.AdditionalLayer;
-import org.eclipse.sirius.diagram.description.Layer;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.RequestLayersAction;
-import org.eclipse.sirius.server.diagram.internal.actions.SetLayersAction;
-import org.eclipse.sirius.server.diagram.internal.actions.SiriusLayer;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler for the {@link RequestLayersAction} received by the {@link SiriusDiagramServer}.
- *
- * @author gcoutable
- */
-public class SiriusRequestLayersActionHandler implements ISiriusActionHandler {
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof RequestLayersAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof RequestLayersAction) {
-			SetLayersAction setLayersAction = this.computeLayersList(siriusDiagramServer, (RequestLayersAction) action);
-			siriusDiagramServer.dispatch(setLayersAction);
-		}
-	}
-
-	/**
-	 * Computes the lists of sirius layers for the requested representation.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 * @param action
-	 *            The action
-	 * @return The sirius layers list
-	 */
-	private SetLayersAction computeLayersList(SiriusDiagramServer siriusDiagramServer, RequestLayersAction action) {
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-
-		EList<Layer> allLayers = LayerHelper.getAllLayers(dDiagram.getDescription());
-		EList<Layer> activatedLayers = dDiagram.getActivatedLayers();
-		//@formatter:off
-		List<SiriusLayer> siriusLayers = allLayers.stream()
-				.filter(AdditionalLayer.class::isInstance)
-				.map(layer -> {
-					boolean isActive = activatedLayers.contains(layer);
-					return computeSiriusLayerFromLayer(layer, isActive);
-				})
-				.collect(Collectors.toList());
-		//@formatter:on
-
-		return new SetLayersAction(siriusLayers);
-	}
-
-	/**
-	 * Computes the {@link SiriusLayer} for the given layer.
-	 *
-	 * @param layer
-	 *            The layer
-	 * @param isActive
-	 *            Indicates if the layer is active or not
-	 * @return The {@link SiriusLayer}
-	 */
-	private SiriusLayer computeSiriusLayerFromLayer(Layer layer, boolean isActive) {
-		SiriusLayer siriusLayer = new SiriusLayer();
-		siriusLayer.setId(layer.getName());
-		siriusLayer.setName(layer.getLabel());
-		siriusLayer.setActive(isActive);
-		return siriusLayer;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestModelActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestModelActionHandler.java
deleted file mode 100644
index 0ffec06..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestModelActionHandler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramGenerator;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sprotty.Action;
-import org.eclipse.sprotty.RequestModelAction;
-import org.eclipse.sprotty.SGraph;
-
-/**
- * Handler for the {@link RequestModelAction} received by the {@link SiriusDiagramServer}.
- *
- * @author sbegaudeau
- */
-public class SiriusRequestModelActionHandler implements ISiriusActionHandler {
-
-	/**
-	 * The diagram generator.
-	 */
-	private SiriusDiagramGenerator diagramGenerator = new SiriusDiagramGenerator();
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof RequestModelAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof RequestModelAction) {
-			SGraph sGraph = this.diagramGenerator.computeDiagram(siriusDiagramServer, (RequestModelAction) action);
-			siriusDiagramServer.updateModel(sGraph);
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestToolsActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestToolsActionHandler.java
deleted file mode 100644
index 0ab544c..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusRequestToolsActionHandler.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.description.Layer;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.RequestToolsAction;
-import org.eclipse.sirius.server.diagram.internal.actions.SetToolsAction;
-import org.eclipse.sirius.server.diagram.internal.actions.SiriusTool;
-import org.eclipse.sirius.viewpoint.description.tool.AbstractToolDescription;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler for the {@link RequestToolsAction} received by the {@link SiriusDiagramServer}.
- *
- * @author gcoutable
- */
-public class SiriusRequestToolsActionHandler implements ISiriusActionHandler {
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof RequestToolsAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof RequestToolsAction) {
-			SetToolsAction setToolsAction = this.computeToolsList(siriusDiagramServer, (RequestToolsAction) action);
-			siriusDiagramServer.dispatch(setToolsAction);
-		}
-	}
-
-	/**
-	 * Computes the lists of available sirius tools for the requested representation.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 *
-	 * @param action
-	 *            The action
-	 *
-	 * @return The sirius tools list
-	 */
-	private SetToolsAction computeToolsList(SiriusDiagramServer siriusDiagramServer, RequestToolsAction action) {
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-		List<AbstractToolDescription> dDiagramTools = this.getAllRepresentationTools(dDiagram);
-		List<SiriusTool> tools = dDiagramTools.stream().map(this::mapToolFromToolDescription).collect(Collectors.toList());
-		return new SetToolsAction(tools);
-	}
-
-	/**
-	 * Returns the list of all {@link AbstractToolDescription}.
-	 *
-	 * @param dDiagram
-	 *            The DDiagram
-	 *
-	 * @return The tools of the representation
-	 */
-	private List<AbstractToolDescription> getAllRepresentationTools(DDiagram dDiagram) {
-		// @formatter:off
-		return dDiagram.getActivatedLayers().stream()
-				.map(Layer::getAllTools)
-				.flatMap(List::stream)
-				.collect(Collectors.toList());
-		// @formatter:on
-	}
-
-	/**
-	 * Creates a {@link SiriusTool} from the given {@link AbstractToolDescription}.
-	 *
-	 * @param toolDesc
-	 *            The {@link AbstractToolDescription}
-	 *
-	 * @return The {@link SiriusTool} created from the {@link AbstractToolDescription}
-	 */
-	private SiriusTool mapToolFromToolDescription(AbstractToolDescription toolDesc) {
-		SiriusTool tool = new SiriusTool();
-		tool.setId(toolDesc.getName());
-		tool.setName(toolDesc.getLabel());
-		tool.setToolType(toolDesc.getClass().getSimpleName());
-		return tool;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusToggleLayerActionHandler.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusToggleLayerActionHandler.java
deleted file mode 100644
index fb6c599..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/actions/handlers/SiriusToggleLayerActionHandler.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.actions.handlers;
-
-import java.util.Optional;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.internal.metamodel.helper.LayerHelper;
-import org.eclipse.sirius.diagram.description.Layer;
-import org.eclipse.sirius.diagram.tools.api.command.ChangeLayerActivationCommand;
-import org.eclipse.sirius.server.diagram.internal.SiriusDiagramServer;
-import org.eclipse.sirius.server.diagram.internal.actions.ISiriusActionHandler;
-import org.eclipse.sirius.server.diagram.internal.actions.ToggleLayerAction;
-import org.eclipse.sprotty.Action;
-
-/**
- * Handler used to toggle on and off layers of the diagram.
- *
- * @author gcoutable
- */
-public class SiriusToggleLayerActionHandler implements ISiriusActionHandler {
-
-	@Override
-	public boolean canHandle(SiriusDiagramServer server, Action action) {
-		return action instanceof ToggleLayerAction;
-	}
-
-	@Override
-	public void handle(SiriusDiagramServer siriusDiagramServer, Action action) {
-		if (action instanceof ToggleLayerAction) {
-			this.executeToggleLayerAction(siriusDiagramServer, (ToggleLayerAction) action);
-		}
-	}
-
-	/**
-	 * Toggles the layer depending on the new state of the layer returned by the client.
-	 *
-	 * @param siriusDiagramServer
-	 *            The {@link SiriusDiagramServer}
-	 * @param action
-	 *            The action
-	 */
-	private void executeToggleLayerAction(SiriusDiagramServer siriusDiagramServer, ToggleLayerAction action) {
-		Session session = siriusDiagramServer.getSession();
-		DDiagram dDiagram = siriusDiagramServer.getDDiagram();
-
-		//@formatter:off
-
-		Optional<Layer> optionalLayer = LayerHelper.getAllLayers(dDiagram.getDescription())
-				.stream()
-				.filter(Layer -> Layer.getName().equals(action.getLayerName()))
-				.findFirst();
-		optionalLayer.ifPresent(layer -> this.toggleLayer(session, dDiagram, layer));
-		//@formatter:on
-	}
-
-	/**
-	 * Toggles the layer.
-	 *
-	 * @param session
-	 *            The sirius session
-	 * @param dDiagram
-	 *            The diagram description
-	 * @param layer
-	 *            The layer to toggle
-	 */
-	private void toggleLayer(Session session, DDiagram dDiagram, Layer layer) {
-		TransactionalEditingDomain ted = session.getTransactionalEditingDomain();
-		ChangeLayerActivationCommand command = new ChangeLayerActivationCommand(ted, dDiagram, layer, new NullProgressMonitor());
-		ted.getCommandStack().execute(command);
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusEdge.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusEdge.java
deleted file mode 100644
index 5be2cbf..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusEdge.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import org.eclipse.sprotty.SEdge;
-
-/**
- * A Sirius specific edge.
- *
- * @author sbegaudeau
- */
-public class SiriusEdge extends SEdge {
-	/**
-	 * The style of the edge.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 */
-	public SiriusEdge() {
-		super();
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusFreeFormFlatContainerNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusFreeFormFlatContainerNode.java
deleted file mode 100644
index ef8496d..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusFreeFormFlatContainerNode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SNode;
-
-/**
- * A Sirius free form container with a flat based style.
- *
- * @author sbegaudeau
- */
-public class SiriusFreeFormFlatContainerNode extends SNode {
-	/**
-	 * The type of the {@link SiriusFreeFormFlatContainerNode}.
-	 */
-	private static final String TYPE = "node:freeformflatcontainer"; //$NON-NLS-1$
-
-	/**
-	 * The style of the node.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusFreeFormFlatContainerNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusLabel.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusLabel.java
deleted file mode 100644
index 4585ddd..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusLabel.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import org.eclipse.sprotty.SLabel;
-
-/**
- * The Sirius label.
- *
- * @author sbegaudeau
- */
-public class SiriusLabel extends SLabel {
-
-	/**
-	 * The type of the left-aligned labels located inside a node.
-	 */
-	public static final String INSIDE_LEFT__LABEL_TYPE = "label:inside-left"; //$NON-NLS-1$
-
-	/**
-	 * The type of the center-aligned labels located inside a node.
-	 */
-	public static final String INSIDE_CENTER__LABEL_TYPE = "label:inside-center"; //$NON-NLS-1$
-
-	/**
-	 * The type of the right-aligned labels located inside a node.
-	 */
-	public static final String INSIDE_RIGHT__LABEL_TYPE = "label:inside-right"; //$NON-NLS-1$
-
-	/**
-	 * The type of the left-aligned labels located outside a node.
-	 */
-	public static final String OUTSIDE_LEFT__LABEL_TYPE = "label:outside-left"; //$NON-NLS-1$
-
-	/**
-	 * The type of the center-aligned labels located outside a node.
-	 */
-	public static final String OUTSIDE_CENTER__LABEL_TYPE = "label:outside-center"; //$NON-NLS-1$
-
-	/**
-	 * The type of the right-aligned labels located outside a node.
-	 */
-	public static final String OUTSIDE_RIGHT__LABEL_TYPE = "label:outside-right"; //$NON-NLS-1$
-
-	/**
-	 * The style of the edge.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 * @param label
-	 *            The label
-	 */
-	public SiriusLabel(String identifier, String label) {
-		super();
-		this.setId(identifier);
-		this.setText(label);
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNode.java
deleted file mode 100644
index 5c4af62..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNode.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SNode;
-
-/**
- * A Sirius list container with a flat based style.
- *
- * @author sbegaudeau
- */
-public class SiriusListFlatContainerNode extends SNode {
-	/**
-	 * The type of the {@link SiriusListFlatContainerNode}.
-	 */
-	private static final String TYPE = "node:listflatcontainer"; //$NON-NLS-1$
-
-	/**
-	 * The style of the node.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusListFlatContainerNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setLayout("vbox"); //$NON-NLS-1$
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeBodyCompartment.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeBodyCompartment.java
deleted file mode 100644
index d35ce0f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeBodyCompartment.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SCompartment;
-
-/**
- * The body compartment of the {@link SiriusListFlatContainerNode}.
- *
- * @author sbegaudeau
- */
-public class SiriusListFlatContainerNodeBodyCompartment extends SCompartment {
-
-	/**
-	 * The type of the {@link SiriusListFlatContainerNodeLabelCompartment}.
-	 */
-	private static final String TYPE = "comp:listflatcontainer_body"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusListFlatContainerNodeBodyCompartment(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setLayout("vbox"); //$NON-NLS-1$
-		this.setChildren(new ArrayList<>());
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeLabelCompartment.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeLabelCompartment.java
deleted file mode 100644
index 791afe8..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusListFlatContainerNodeLabelCompartment.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SCompartment;
-
-/**
- * The label compartment of the {@link SiriusListFlatContainerNode}.
- *
- * @author sbegaudeau
- */
-public class SiriusListFlatContainerNodeLabelCompartment extends SCompartment {
-
-	/**
-	 * The type of the {@link SiriusListFlatContainerNodeLabelCompartment}.
-	 */
-	private static final String TYPE = "comp:listflatcontainer_label"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusListFlatContainerNodeLabelCompartment(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setLayout("hbox"); //$NON-NLS-1$
-		this.setChildren(new ArrayList<>());
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareBorderNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareBorderNode.java
deleted file mode 100644
index 1011503..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareBorderNode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SPort;
-
-/**
- * A Sirius border node with a square based style.
- *
- * @author hmarchadour
- */
-public class SiriusSquareBorderNode extends SPort {
-	/**
-	 * The type of the {@link SiriusSquareBorderNode}.
-	 */
-	public static final String TYPE = "port:square"; //$NON-NLS-1$
-
-	/**
-	 * The style of the node.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusSquareBorderNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareNode.java
deleted file mode 100644
index 6bd17c3..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSquareNode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SNode;
-
-/**
- * A Sirius node with a square based style.
- *
- * @author sbegaudeau
- */
-public class SiriusSquareNode extends SNode {
-	/**
-	 * The type of the {@link SiriusSquareNode}.
-	 */
-	private static final String TYPE = "node:square"; //$NON-NLS-1$
-
-	/**
-	 * The style of the node.
-	 */
-	private String style;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusSquareNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Return the style.
-	 *
-	 * @return the style
-	 */
-	public String getStyle() {
-		return this.style;
-	}
-
-	/**
-	 * Sets the style.
-	 *
-	 * @param style
-	 *            the style to set
-	 */
-	public void setStyle(String style) {
-		this.style = style;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgBorderNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgBorderNode.java
deleted file mode 100644
index 685b1ad..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgBorderNode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SPort;
-
-/**
- * A Sirius border node with a SVG image style.
- *
- * @author sbegaudeau
- */
-public class SiriusSvgBorderNode extends SPort {
-	/**
-	 * The type.
-	 */
-	public static final String TYPE = "port:image"; //$NON-NLS-1$
-
-	/**
-	 * The data of the SVG figure.
-	 */
-	private String url;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusSvgBorderNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Sets the url.
-	 *
-	 * @param url
-	 *            the url to set
-	 */
-	public void setUrl(String url) {
-		this.url = url;
-	}
-
-	/**
-	 * Return the url.
-	 *
-	 * @return the url
-	 */
-	public String getUrl() {
-		return this.url;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgNode.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgNode.java
deleted file mode 100644
index 22d0ad7..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/entities/SiriusSvgNode.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.entities;
-
-import java.util.ArrayList;
-
-import org.eclipse.sprotty.SNode;
-
-/**
- * A Sirius node with a SVG image style.
- *
- * @author sbegaudeau
- */
-public class SiriusSvgNode extends SNode {
-	/**
-	 * The type of the {@link SiriusSvgNode}.
-	 */
-	private static final String TYPE = "node:svg"; //$NON-NLS-1$
-
-	/**
-	 * The data of the SVG figure.
-	 */
-	private String svgData;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param identifier
-	 *            The identifier
-	 */
-	public SiriusSvgNode(String identifier) {
-		this.setId(identifier);
-		this.setType(TYPE);
-		this.setChildren(new ArrayList<>());
-	}
-
-	/**
-	 * Sets the svgData.
-	 *
-	 * @param svgData
-	 *            the svgData to set
-	 */
-	public void setSvgData(String svgData) {
-		this.svgData = svgData;
-	}
-
-	/**
-	 * Return the svgData.
-	 *
-	 * @return the svgData
-	 */
-	public String getSvgData() {
-		return this.svgData;
-	}
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/InterpreterVariables.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/InterpreterVariables.java
deleted file mode 100644
index b4f9143..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/InterpreterVariables.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.interpreter;
-
-/**
- * Interfaces to store interpreter variables.
- *
- * @author gcoutable
- */
-public interface InterpreterVariables {
-
-	/**
-	 * The self variable.
-	 */
-	static final String SELF_VARIABLE = "self"; //$NON-NLS-1$
-
-	/**
-	 * The container variable.
-	 */
-	static final String CONTAINER_VARIABLE = "container"; //$NON-NLS-1$
-
-	/**
-	 * The containerView variable.
-	 */
-	static final String CONTAINER_VIEW_VARIABLE = "containerView"; //$NON-NLS-1$
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerInterpreter.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerInterpreter.java
deleted file mode 100644
index 34f7956..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerInterpreter.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.interpreter;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.common.interpreter.api.EvaluationResult;
-import org.eclipse.sirius.common.interpreter.api.IEvaluationResult;
-import org.eclipse.sirius.common.tools.api.interpreter.EvaluationException;
-import org.eclipse.sirius.common.tools.api.interpreter.IInterpreter;
-
-/**
- * Provides an implementation of {@link IInterpreter} backed by an old-style {@link IInterpreterWithDiagnostic}.
- *
- * @author pcdavid
- */
-public class SiriusServerInterpreter implements org.eclipse.sirius.common.interpreter.api.IInterpreter {
-
-	private IInterpreter interpreter;
-
-	/**
-	 * The constructor.
-	 *
-	 * @param session
-	 *            The Sirius session
-	 */
-	public SiriusServerInterpreter(Session session) {
-		this(session.getInterpreter());
-	}
-
-	/**
-	 * The constructor.
-	 *
-	 * @param interpreterWithDiagnostic
-	 *            An interpreter
-	 */
-	public SiriusServerInterpreter(IInterpreter interpreterWithDiagnostic) {
-		this.interpreter = Objects.requireNonNull(interpreterWithDiagnostic);
-	}
-
-	@Override
-	public IEvaluationResult evaluateExpression(Map<String, Object> variables, String expr) {
-		IEvaluationResult result = EvaluationResult.noEvaluation();
-		Object self = variables.get("self"); //$NON-NLS-1$
-		if (self instanceof EObject) {
-			try {
-				setupInterpreter(variables);
-
-				org.eclipse.sirius.common.tools.api.interpreter.IEvaluationResult evaluationResult = this.interpreter
-						.evaluateExpression((EObject) self, expr);
-				result = EvaluationResult.of(evaluationResult.getValue(), evaluationResult.getDiagnostic());
-			} catch (EvaluationException e) {
-				result = EvaluationResult.withError(BasicDiagnostic.toDiagnostic(e));
-			} finally {
-				tearDownInterpreter(variables);
-			}
-		}
-		return result;
-	}
-
-	private void setupInterpreter(Map<String, Object> variables) {
-		org.eclipse.sirius.common.tools.api.interpreter.IInterpreter i = this.interpreter;
-		i.addImport(SiriusServerServices.class.getName());
-		declareLocals(variables, i);
-	}
-
-	private void declareLocals(Map<String, Object> variables, org.eclipse.sirius.common.tools.api.interpreter.IInterpreter i) {
-		Set<Entry<String, Object>> entries = variables.entrySet();
-		for (Entry<String, Object> entry : entries) {
-			i.setVariable(entry.getKey(), entry.getValue());
-		}
-	}
-
-	private void tearDownInterpreter(Map<String, Object> variables) {
-		unsetLocals(variables, this.interpreter);
-	}
-
-	private void unsetLocals(Map<String, Object> variables, org.eclipse.sirius.common.tools.api.interpreter.IInterpreter i) {
-		Set<Entry<String, Object>> entries = variables.entrySet();
-		for (Entry<String, Object> entry : entries) {
-			i.unSetVariable(entry.getKey());
-		}
-	}
-
-	public static Collection<?> executeExpression(Session session, Map<String, Object> variables, String expression) {
-		TransactionalEditingDomain ted = session.getTransactionalEditingDomain();
-		RecordingCommand cmd = new RecordingCommand(ted) {
-			@Override
-			protected void doExecute() {
-				new SiriusServerInterpreter(session).evaluateExpression(variables, expression);
-			}
-		};
-		ted.getCommandStack().execute(cmd);
-		return cmd.getResult();
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerServices.java b/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerServices.java
deleted file mode 100644
index 66afee0..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/src/org/eclipse/sirius/server/diagram/internal/interpreter/SiriusServerServices.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal.interpreter;
-
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.sirius.business.api.helper.task.ICommandTask;
-import org.eclipse.sirius.business.api.helper.task.TaskHelper;
-import org.eclipse.sirius.business.api.query.EObjectQuery;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
-import org.eclipse.sirius.tools.api.command.SiriusCommand;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-
-/**
- * This class contains various services.
- *
- * @author gcoutable
- */
-public class SiriusServerServices {
-
-	/**
-	 * Executes the operation with the given URI.
-	 *
-	 * @param eObject
-	 *            The EObject to use as the operation's context
-	 * @param initialCommandUri
-	 *            the URI of the operation to execute
-	 * @return the model element on which the tool was executed.
-	 */
-	public EObject executeOperation(EObject eObject, String initialCommandUri) {
-		if (!eObject.eIsProxy()) {
-			Session session = new EObjectQuery(eObject).getSession();
-			if (session != null) {
-				ModelOperation modelOperation = findModelOperation(initialCommandUri, session);
-				if (modelOperation != null) {
-					ModelAccessor modelAccessor = session.getModelAccessor();
-					ICommandTask task = new TaskHelper(modelAccessor, SiriusPlugin.getDefault().getUiCallback()).buildTaskFromModelOperation(eObject,
-							modelOperation);
-					SiriusCommand command = new SiriusCommand(session.getTransactionalEditingDomain(), "SiriusServerServices#executeOperation"); //$NON-NLS-1$
-					command.getTasks().add(task);
-					try {
-						if (command.canExecute()) {
-							command.execute();
-						}
-					} finally {
-						command.dispose();
-					}
-				}
-			}
-		}
-		return eObject;
-	}
-
-	/**
-	 * Resolves the actual {@link ModelOperation} to execute given its URI.
-	 *
-	 * @param initialCommandUri
-	 *            the URI of the operation to search for.
-	 * @param session
-	 *            the Sirius session which determines the scope to search into.
-	 * @return the {@link ModelOperation} instance found at the specified URI, either in one of the VSMs for which at
-	 *         least one Viewpoint is currently enabled in the session, or from the default ruleset, or
-	 *         <code>null</code> if no matching operation could be located.
-	 */
-	private ModelOperation findModelOperation(String initialCommandUri, Session session) {
-		URI commandResourceURI = URI.createURI(initialCommandUri).trimFragment();
-		for (Resource res : getResourcesInScope(session)) {
-			if (commandResourceURI.equals(res.getURI())) {
-				EObject modelOperationEObject = res.getEObject(URI.createURI(initialCommandUri).fragment());
-				if (modelOperationEObject instanceof ModelOperation) {
-					return ((ModelOperation) modelOperationEObject);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns all the (VSM-like) resources in which to search for the {@link ModelOperation} to execute.
-	 *
-	 * @param session
-	 *            the Sirius session.
-	 * @return all the resources in which to look for the ModelOperation, in order of preference.
-	 */
-	private Set<Resource> getResourcesInScope(Session session) {
-		Set<Resource> result = new LinkedHashSet<>();
-		Collection<Viewpoint> selectedViewpoints = session.getSelectedViewpoints(true);
-		for (Viewpoint viewpoint : selectedViewpoints) {
-			Resource eResource = viewpoint.eResource();
-			if (eResource != null) {
-				result.add(eResource);
-			}
-		}
-		return result;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/EndEvent.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/EndEvent.svg
deleted file mode 100644
index 35ad3e6..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/EndEvent.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-<?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="31.999998"
-   height="31.999998"
-   id="svg3961"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="EndEvent.svg">
-  <defs
-     id="defs3963" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6568543"
-     inkscape:cx="9.6343602"
-     inkscape:cy="14.065261"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     inkscape:window-width="1337"
-     inkscape:window-height="728"
-     inkscape:window-x="2060"
-     inkscape:window-y="103"
-     inkscape:window-maximized="0"
-     showborder="true"
-     inkscape:showpageshadow="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4797"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="-10.330873px"
-       originy="-10.643382px" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3966">
-    <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
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(-10.330873,-21.356616)">
-    <path
-       sodipodi:type="arc"
-       style="fill:#ffd5d5;fill-opacity:1;stroke:#550000;stroke-width:1.45696676;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3774"
-       sodipodi:cx="-22.629553"
-       sodipodi:cy="22.61429"
-       sodipodi:rx="10"
-       sodipodi:ry="10"
-       d="m -12.629553,22.61429 a 10,10 0 1 1 -20,0 10,10 0 1 1 20,0 z"
-       transform="matrix(1.4913571,0,0,1.4913571,59.879753,3.8304962)" />
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/LaneSet.png b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/LaneSet.png
deleted file mode 100644
index 72eb441..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/LaneSet.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/StartEvent.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/StartEvent.svg
deleted file mode 100644
index 7b0dae2..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/StartEvent.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-<?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="31.999998"
-   height="31.999998"
-   id="svg3961"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="StartEvent.svg">
-  <defs
-     id="defs3963" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="8.0000001"
-     inkscape:cx="4.9356293"
-     inkscape:cy="11.486226"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     inkscape:window-width="1337"
-     inkscape:window-height="728"
-     inkscape:window-x="2146"
-     inkscape:window-y="155"
-     inkscape:window-maximized="0"
-     showborder="true"
-     inkscape:showpageshadow="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4797"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="-10.330873px"
-       originy="-10.643382px" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3966">
-    <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
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(-10.330873,-21.356616)">
-    <path
-       sodipodi:type="arc"
-       style="fill:#f6ffd5;fill-opacity:1;stroke:#668000;stroke-width:1.19224322;stroke-miterlimit:4;stroke-dasharray:none"
-       id="path3774"
-       sodipodi:cx="-22.629553"
-       sodipodi:cy="22.61429"
-       sodipodi:rx="10"
-       sodipodi:ry="10"
-       d="m -12.629553,22.61429 c 0,5.522848 -4.477152,10 -10,10 -5.522847,0 -10,-4.477152 -10,-10 0,-5.522847 4.477153,-10 10,-10 5.522848,0 10,4.477153 10,10 z"
-       transform="matrix(1.5099864,0,0,1.5099864,60.50119,3.2093447)" />
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/Task.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/Task.svg
deleted file mode 100644
index 864dba0..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/Task.svg
+++ /dev/null
@@ -1,82 +0,0 @@
-<?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="100"
-   height="51"
-   id="svg3961"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="Task.svg">
-  <defs
-     id="defs3963" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="8.0000001"
-     inkscape:cx="32.700377"
-     inkscape:cy="32.204978"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     inkscape:window-width="1535"
-     inkscape:window-height="795"
-     inkscape:window-x="47"
-     inkscape:window-y="144"
-     inkscape:window-maximized="0"
-     showborder="true"
-     inkscape:showpageshadow="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4797"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="7.012877px"
-       originy="10.01287px" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3966">
-    <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
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(7.012877,-23.012866)">
-    <rect
-       style="fill:#d5e5ff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="rect2986"
-       width="98"
-       height="49"
-       x="-16.330873"
-       y="2.6433802"
-       transform="translate(10.330873,21.356616)"
-       ry="10" />
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/ToolDescription.gif b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/ToolDescription.gif
deleted file mode 100644
index fcc842f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/ToolDescription.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/end.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/end.svg
deleted file mode 100644
index 9c8ab0e..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/end.svg
+++ /dev/null
@@ -1,84 +0,0 @@
-<?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="32"
-   height="32"
-   id="svg5795"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="end.svg">
-  <defs
-     id="defs5797" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="14.65625"
-     inkscape:cx="4.9808102"
-     inkscape:cy="12.285388"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="966"
-     inkscape:window-height="852"
-     inkscape:window-x="1575"
-     inkscape:window-y="284"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata5800">
-    <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="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1020.3622)">
-    <g
-       id="g4674"
-       inkscape:export-xdpi="90"
-       inkscape:export-ydpi="90"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/BPMN/design/nodes/boundary-events/png/none.png"
-       style="fill:#881a1c;fill-opacity:1;stroke:#881a1c;stroke-opacity:1"
-       transform="translate(-103.30869,1000.0944)">
-      <path
-         transform="matrix(0.34661363,0,0,0.26862556,81.181191,9.9219258)"
-         d="m 154.28571,98.076469 c 0,31.559131 -19.82739,57.142861 -44.28571,57.142861 -24.458324,0 -44.285713,-25.58373 -44.285713,-57.142861 0,-31.559128 19.827389,-57.142856 44.285713,-57.142856 24.45832,0 44.28571,25.583728 44.28571,57.142856 z"
-         sodipodi:ry="57.142857"
-         sodipodi:rx="44.285713"
-         sodipodi:cy="98.076469"
-         sodipodi:cx="110"
-         id="path3753"
-         style="fill:#881a1c;fill-opacity:1;stroke:#881a1c;stroke-width:4.26015568;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.26081651,0,0,0.20213279,90.618876,16.443302)"
-         d="m 154.28571,98.076469 c 0,31.559131 -19.82739,57.142861 -44.28571,57.142861 -24.458324,0 -44.285713,-25.58373 -44.285713,-57.142861 0,-31.559128 19.827389,-57.142856 44.285713,-57.142856 24.45832,0 44.28571,25.583728 44.28571,57.142856 z"
-         sodipodi:ry="57.142857"
-         sodipodi:rx="44.285713"
-         sodipodi:cy="98.076469"
-         sodipodi:cx="110"
-         id="path3753-2"
-         style="fill:#ffffff;fill-opacity:1;stroke:none"
-         sodipodi:type="arc" />
-    </g>
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/event-based-gateway.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/event-based-gateway.svg
deleted file mode 100644
index cb8c753..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/event-based-gateway.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<?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="40.513111"
-   height="40.513111"
-   id="svg4239"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="event-based.svg">
-  <defs
-     id="defs4241" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="3.959798"
-     inkscape:cx="69.038564"
-     inkscape:cy="20.901572"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="979"
-     inkscape:window-height="588"
-     inkscape:window-x="1461"
-     inkscape:window-y="551"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata4244">
-    <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="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-235.25076,-401.63386)">
-    <g
-       id="g4184"
-       transform="matrix(0.968523,0,0,0.968523,54.257962,386.824)">
-      <rect
-         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
-         y="158.3922"
-         x="107.19135"
-         height="28.284271"
-         width="28.284271"
-         id="rect4721-5-0-7"
-         style="fill:#ffffff;fill-opacity:1;stroke:#fcb018;stroke-width:1.29999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="matrix(0.25648646,0,0,0.198777,179.58242,16.709121)"
-         d="m 154.28571,98.076469 c 0,31.559131 -19.82739,57.142861 -44.28571,57.142861 -24.458324,0 -44.285713,-25.58373 -44.285713,-57.142861 0,-31.559128 19.827389,-57.142856 44.285713,-57.142856 24.45832,0 44.28571,25.583728 44.28571,57.142856 z"
-         sodipodi:ry="57.142857"
-         sodipodi:rx="44.285713"
-         sodipodi:cy="98.076469"
-         sodipodi:cx="110"
-         id="path5233"
-         style="fill:#ffffff;fill-opacity:1;stroke:#fcb018;stroke-width:5.75742197;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.19299848,0,0,0.14957381,186.5661,21.534796)"
-         d="m 154.28571,98.076469 c 0,31.559131 -19.82739,57.142861 -44.28571,57.142861 -24.458324,0 -44.285713,-25.58373 -44.285713,-57.142861 0,-31.559128 19.827389,-57.142856 44.285713,-57.142856 24.45832,0 44.28571,25.583728 44.28571,57.142856 z"
-         sodipodi:ry="57.142857"
-         sodipodi:rx="44.285713"
-         sodipodi:cy="98.076469"
-         sodipodi:cx="110"
-         id="path5235"
-         style="fill:#ffffff;fill-opacity:1;stroke:#fcb018;stroke-width:7.65136003;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         inkscape:connector-curvature="0"
-         id="path5237"
-         d="m 207.79594,31.01668 5.38931,3.400739 -2.11292,6.574764 -6.5528,0 -2.11292,-6.574764 z"
-         style="fill:none;stroke:#fcb018;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/man.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/man.svg
deleted file mode 100644
index ca6b64d..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/man.svg
+++ /dev/null
@@ -1,668 +0,0 @@
-<?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="255.12059"
-   height="255.1181"
-   id="svg6897"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="man.svg">
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient19633">
-      <stop
-         id="stop19635"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639" />
-      <stop
-         id="stop19637"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient15574-0"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient19560">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19562" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19564" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19660"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560"
-       id="radialGradient19664"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560"
-       id="radialGradient19666"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient19633-1">
-      <stop
-         id="stop19635-0"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-6" />
-      <stop
-         id="stop19637-3"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6-0">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-4" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-8">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient19692">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19694" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19696" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19664-7-1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <linearGradient
-       id="linearGradient15560-8-6">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81-4" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6-7" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19666-0-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient19797">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19799" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-8"
-       id="linearGradient19660-5"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <linearGradient
-       id="linearGradient19633-8">
-      <stop
-         id="stop19635-7"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-9" />
-      <stop
-         id="stop19637-8"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-7"
-       id="radialGradient19662-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-6-7">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-9" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-5" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19967"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19969"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19971"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19973"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19975"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622"
-       gradientTransform="translate(0,-0.37711)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19977"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient19975-0"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <linearGradient
-       id="linearGradient19633-0">
-      <stop
-         id="stop19635-77"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-64" />
-      <stop
-         id="stop19637-6"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient19977-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-6-4">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-47" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-6" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient20057"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient20059"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-8-6-1">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81-4-7" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6-7-3" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3106">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop3108" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop3110" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient19633-05">
-      <stop
-         id="stop19635-3"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-0" />
-      <stop
-         id="stop19637-0"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6-04">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-6" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-9" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-05"
-       id="linearGradient4020"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-04"
-       id="radialGradient4022"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4024"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4026"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient4028"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient4030"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-05"
-       id="linearGradient4082"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-04"
-       id="radialGradient4084"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4086"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4088"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient4090"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient4092"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:document-units="mm"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.24748738"
-     inkscape:cx="99.7399"
-     inkscape:cy="-300.22866"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1574"
-     inkscape:window-height="1008"
-     inkscape:window-x="37"
-     inkscape:window-y="105"
-     inkscape:window-maximized="0"
-     units="mm"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
-  <metadata
-     id="metadata4">
-    <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="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-408.15524,-46.324276)">
-    <g
-       id="g19649"
-       transform="matrix(1,0,0,0.96598873,40,55.864721)"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_16.png"
-       inkscape:export-xdpi="5.6444445"
-       inkscape:export-ydpi="5.6444445">
-      <g
-         id="g19911"
-         inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_32.png"
-         inkscape:export-xdpi="11.28878"
-         inkscape:export-ydpi="11.28878">
-        <path
-           id="path8747-8-7"
-           style="fill:url(#linearGradient19660);fill-opacity:1;fill-rule:nonzero;stroke:none"
-           d="m 567.90313,185.53891 c -33.4352,-12.1813 -44.12152,-26.51434 -44.12152,-48.52471 0,-13.1894 10.19902,-8.90494 14.67658,-33.09948 1.8733,-9.99707 10.8876,-0.16818 12.61788,-23.102434 0,-9.07299 -4.93971,-11.341214 -4.93971,-11.341214 0,0 2.52879,-13.525442 3.5034,-23.942542 1.1931,-13.02136 -7.48529,-46.45689 -53.92547,-46.45689 -46.43139,0 -55.14332,33.43553 -53.92505,46.45689 0.97417,10.4171 3.50296,23.942542 3.50296,23.942542 0,0 -4.93973,2.268224 -4.93973,11.341214 1.73075,22.934384 10.74503,13.105364 12.61833,23.102434 4.47756,24.19454 14.68452,19.91008 14.68452,33.09948 0,22.01037 -10.69426,36.34341 -44.12992,48.52471 -33.56983,12.26528 -55.37016,20.69861 -55.37016,29.18353 0,8.48484 0,39.50171 0,39.50171 l 255.11809,0 c 0,0 0,-31.01687 0,-39.50171 0,-8.48492 -21.80035,-16.91825 -55.3702,-29.18353"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="csccccsccccscsccsc" />
-        <path
-           id="path8747-2-2"
-           style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
-           d="m 531.90313,163.5389 c 15.92247,21.6274 91.87528,34.36486 91.3702,51.18354 -0.12735,4.24051 0,2.02364 0,10.74424 0,8.72061 -20,28.38062 -20,28.38062 l -215.11809,0 c 0,0 -20,-19.66001 -20,-28.38062 0,-8.7206 0,-6.50182 0,-10.74424 0,-8.48492 80.77,-32.38606 91.37017,-51.18354 25.36834,23.52394 51.15632,22.62639 72.37772,0 z"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cssccsscc" />
-        <path
-           sodipodi:type="arc"
-           style="fill:url(#radialGradient19662);fill-opacity:1;stroke:#e6b57e;stroke-width:2.48031497;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
-           id="path15558-1"
-           sodipodi:cx="171.22086"
-           sodipodi:cy="85.898735"
-           sodipodi:rx="47.982246"
-           sodipodi:ry="67.427681"
-           d="m 219.2031,85.898735 c 0,37.239275 -21.48238,67.427685 -47.98224,67.427685 -26.49987,0 -47.98225,-30.18841 -47.98225,-67.427685 0,-37.23928 21.48238,-67.427681 47.98225,-67.427681 26.49986,0 47.98224,30.188401 47.98224,67.427681 z"
-           transform="matrix(1,0,0,1.0773453,323.06636,-19.92)" />
-        <path
-           style="fill:#493225;fill-opacity:1;stroke:none"
-           d="m 445.78938,73.769474 c 1.31756,-1.756746 -0.79399,-0.315053 -3.39632,-5.612402 C 438.74122,50.294047 428.99625,15.0747 459.43694,-1.732 c 47.76132,-22.78746 92.04457,5.0573029 90.19329,48.64577 -1.76788,16.170177 -1.34166,19.523769 -8.75345,27.926388 1.65191,-2.145951 -5.96808,-36.444157 -13.79781,-44.898176 -10.1635,-10.97387 -7.09096,0.387162 -8.1605,-1.392307 -3.64784,-6.069137 -7.61704,-9.246016 -11.73967,-11.042003 0.48194,6.653529 1.60809,13.544249 -0.28073,10.245671 -3.21674,-5.617618 -23.25719,-14.519286 -18.83286,-9.295438 2.80224,3.308629 4.09372,12.2227 3.05381,10.843939 -7.6944,-10.201575 -20.94634,-6.037529 -25.68243,-4.531289 -7.98586,3.520797 -9.43386,-1.835007 -7.57578,23.703051 -4.21302,4.266354 -10.70103,21.991886 -12.07143,25.295868 z"
-           id="path15556-1"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cccccsscsssccc" />
-        <path
-           sodipodi:nodetypes="cccccccc"
-           inkscape:connector-curvature="0"
-           d="m 532.96732,163.5389 c 10.07764,22.45347 90.29857,26.00795 90.30601,49.18341 l 0,41.12373 -255.11809,0.001 0,-41.12473 c 0.35714,-17.41349 75.80033,-25.13266 89.37017,-49.18367 14.01254,26.26353 22.5624,42.66513 35.66919,69.60296 3.01312,3.95605 2.02625,5.07735 5.03937,0"
-           style="fill:#56a6d1;fill-opacity:1;fill-rule:nonzero;stroke:none"
-           id="path19619" />
-      </g>
-    </g>
-    <g
-       inkscape:export-ydpi="5.6444445"
-       inkscape:export-xdpi="5.6444445"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_16.png"
-       transform="matrix(0.78977954,0,0,0.76291812,-43.100336,434.7796)"
-       id="g19918">
-      <g
-         inkscape:export-ydpi="11.28878"
-         inkscape:export-xdpi="11.28878"
-         inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_32.png"
-         id="g19920">
-        <g
-           id="g19936" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/start.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/start.svg
deleted file mode 100644
index 56f42cb..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/start.svg
+++ /dev/null
@@ -1,82 +0,0 @@
-<?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="32"
-   height="32"
-   id="svg5795"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="none.svg">
-  <defs
-     id="defs5797" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="14.65625"
-     inkscape:cx="2.7633262"
-     inkscape:cy="23.202232"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="966"
-     inkscape:window-height="852"
-     inkscape:window-x="1598"
-     inkscape:window-y="324"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata5800">
-    <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="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1020.3622)">
-    <g
-       transform="translate(-103.60098,681.57143)"
-       id="g5762"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/BPMN/design/nodes/boundary-events/png/multiple.png"
-       inkscape:export-xdpi="90"
-       inkscape:export-ydpi="90"
-       style="stroke:#8dc03d;stroke-opacity:1">
-      <g
-         style="stroke:#8dc03d;stroke-opacity:1"
-         inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/BPMN/design/nodes/boundary-events/png/none.png"
-         inkscape:export-ydpi="90"
-         inkscape:export-xdpi="90"
-         id="g5231"
-         transform="translate(0.2922897,318.523)">
-        <path
-           sodipodi:type="arc"
-           style="fill:#ffffff;fill-opacity:1;stroke:#8dc03d;stroke-width:4.26015567999999956;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-           id="path5233"
-           sodipodi:cx="110"
-           sodipodi:cy="98.076469"
-           sodipodi:rx="44.285713"
-           sodipodi:ry="57.142857"
-           d="m 154.28571,98.076469 a 44.285713,57.142857 0 1 1 -88.571423,0 44.285713,57.142857 0 1 1 88.571423,0 z"
-           transform="matrix(0.34661363,0,0,0.26862556,81.181191,9.9219258)" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/woman.svg b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/woman.svg
deleted file mode 100644
index c55b264..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/assets/woman.svg
+++ /dev/null
@@ -1,656 +0,0 @@
-<?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="255.11809"
-   height="255.11812"
-   id="svg6897"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="woman.svg">
-  <defs
-     id="defs3">
-    <linearGradient
-       id="linearGradient19633">
-      <stop
-         id="stop19635"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639" />
-      <stop
-         id="stop19637"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient15574-0"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient19560">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19562" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19564" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19660"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19662"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560"
-       id="radialGradient19664"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560"
-       id="radialGradient19666"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient19633-1">
-      <stop
-         id="stop19635-0"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-6" />
-      <stop
-         id="stop19637-3"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6-0">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-4" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-4" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-8">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient19692">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19694" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19696" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19664-7-1"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <linearGradient
-       id="linearGradient15560-8-6">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81-4" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6-7" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19666-0-0"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient19797">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop19799" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop19801" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-8"
-       id="linearGradient19660-5"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <linearGradient
-       id="linearGradient19633-8">
-      <stop
-         id="stop19635-7"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-9" />
-      <stop
-         id="stop19637-8"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-7"
-       id="radialGradient19662-8"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-6-7">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-9" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-5" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19967"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19969"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19971"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6"
-       id="radialGradient19973"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient19975"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622"
-       gradientTransform="translate(0,-0.37711)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient19977"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient19975-0"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <linearGradient
-       id="linearGradient19633-0">
-      <stop
-         id="stop19635-77"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-64" />
-      <stop
-         id="stop19637-6"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient19977-7"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-6-4">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-47" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-6" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633"
-       id="linearGradient20057"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6"
-       id="radialGradient20059"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       id="linearGradient15560-8-6-1">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-81-4-7" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-6-7-3" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3106">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop3108" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop3110" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient19633-05">
-      <stop
-         id="stop19635-3"
-         offset="0"
-         style="stop-color:#f2d8bc;stop-opacity:1;" />
-      <stop
-         style="stop-color:#f2d9bc;stop-opacity:1;"
-         offset="0.46557674"
-         id="stop19639-0" />
-      <stop
-         id="stop19637-0"
-         offset="1"
-         style="stop-color:#ebc599;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient15560-6-04">
-      <stop
-         style="stop-color:#f7e7d6;stop-opacity:1;"
-         offset="0"
-         id="stop15562-8-6" />
-      <stop
-         style="stop-color:#ebc599;stop-opacity:1;"
-         offset="1"
-         id="stop15564-7-9" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-05"
-       id="linearGradient4020"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-04"
-       id="radialGradient4022"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4024"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4026"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient4028"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient4030"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-05"
-       id="linearGradient4082"
-       gradientUnits="userSpaceOnUse"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-04"
-       id="radialGradient4084"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4086"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0001349,0,-0.01708751)"
-       cx="172.14285"
-       cy="126.64789"
-       fx="172.14285"
-       fy="126.64789"
-       r="127.55905" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-8-6-1"
-       id="radialGradient4088"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="171.22086"
-       cy="85.898735"
-       fx="171.22086"
-       fy="85.898735"
-       r="49.222404" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient19633-0"
-       id="linearGradient4090"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,-0.37711)"
-       x1="490.2981"
-       y1="170.93362"
-       x2="491.84476"
-       y2="30.933622" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient15560-6-4"
-       id="radialGradient4092"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.3950525,0,-33.934512)"
-       cx="151.22086"
-       cy="82.096695"
-       fx="151.22086"
-       fy="82.096695"
-       r="49.222404" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:document-units="mm"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.24748738"
-     inkscape:cx="-681.7745"
-     inkscape:cy="-300.22866"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1574"
-     inkscape:window-height="1008"
-     inkscape:window-x="19"
-     inkscape:window-y="75"
-     inkscape:window-maximized="0"
-     units="mm"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
-  <metadata
-     id="metadata4">
-    <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="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-72.440952,-46.324275)">
-    <g
-       id="g19643-7-4"
-       transform="matrix(1,0,0,0.96450955,27.857144,56.240766)"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/woman_32.png"
-       inkscape:export-xdpi="11.288889"
-       inkscape:export-ydpi="11.288889">
-      <path
-         sodipodi:nodetypes="csccccsccccscsccsc"
-         inkscape:connector-curvature="0"
-         d="m 244.3317,181.53891 c -33.4352,-12.1813 -44.12152,-22.51434 -44.12152,-44.52471 0,-13.1894 10.19902,-8.90494 14.67658,-33.09948 1.8733,-9.997069 10.8876,-0.16818 12.61788,-23.102435 0,-9.07299 -4.93971,-11.341214 -4.93971,-11.341214 0,0 2.52879,-13.525442 3.5034,-23.942545 1.1931,-13.021361 -7.48529,-46.45688888 -53.92547,-46.45688888 -46.43139,0 -55.14332,33.43552788 -53.92505,46.45688888 0.97417,10.417103 3.50296,23.942545 3.50296,23.942545 0,0 -4.93973,2.268224 -4.93973,11.341214 1.73075,22.934385 10.74503,13.105366 12.61833,23.102435 4.47756,24.19454 14.68452,19.91008 14.68452,33.09948 0,22.01037 -10.69426,32.34341 -44.129922,44.52471 -33.56983,12.26528 -55.37016,24.69861 -55.37016,33.18353 0,8.48484 0,39.50171 0,39.50171 l 255.118092,0 c 0,0 0,-31.01687 0,-39.50171 0,-8.48492 -21.80035,-20.91825 -55.3702,-33.18353"
-         style="fill:url(#radialGradient19664-7-1);fill-opacity:1;fill-rule:nonzero;stroke:none"
-         id="path8747-8-0-8" />
-      <path
-         sodipodi:nodetypes="cssccssccccc"
-         inkscape:connector-curvature="0"
-         d="m 244.3317,181.5389 c 33.56985,12.26529 55.3702,24.69862 55.3702,33.18354 0,4.24242 0,2.02364 0,10.74424 0,8.72061 -20,28.38062 -20,28.38062 l -215.118092,0 c 0,0 -20,-19.66001 -20,-28.38062 0,-8.7206 0,-6.50182 0,-10.74424 0,-8.48492 21.80033,-20.91825 55.37017,-33.18354 l 54.125912,11.66324 13.54328,42.64516 9.03937,-0.1542 13.54325,-42.49096"
-         style="fill:#cf118a;fill-opacity:1;fill-rule:nonzero;stroke:none"
-         id="path8747-2-4-7" />
-      <path
-         transform="matrix(1,0,0,1.0773453,-0.50507627,-19.919998)"
-         d="m 219.2031,85.898735 c 0,37.239275 -21.48238,67.427685 -47.98224,67.427685 -26.49987,0 -47.98225,-30.18841 -47.98225,-67.427685 0,-37.23928 21.48238,-67.427681 47.98225,-67.427681 26.49986,0 47.98224,30.188401 47.98224,67.427681 z"
-         sodipodi:ry="67.427681"
-         sodipodi:rx="47.982246"
-         sodipodi:cy="85.898735"
-         sodipodi:cx="171.22086"
-         id="path15558-4-5"
-         style="fill:url(#radialGradient19666-0-0);fill-opacity:1;stroke:#e6b57e;stroke-width:2.48031497;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="ccssscccccccc"
-         inkscape:connector-curvature="0"
-         id="path15556-5-4"
-         d="m 146.22702,136.27638 c 4.39007,20.43373 -32.31132,49.76818 -46.233493,33.72347 17.652453,-5.96556 28.866283,-34.62337 22.243603,-25.23444 -3.97589,5.6366 -24.168914,23.13372 -19.12935,13.5085 10.13551,-19.35813 14.01626,-50.06876 8.74431,-75.856506 -3.65184,-17.863028 -6.42727,-67.342708 24.01342,-84.1494025 47.76132,-22.7874615 88.90171,2.20015811 94.19329,48.6457695 2.07368,83.068069 -17.38327,88.572649 6.05927,124.782889 -17.28308,5.20692 -41.12899,-7.1673 -35.812,-38.22667 5.75735,-16.49554 6.85668,-15.07625 8.02973,-39.170423 -11.4533,-35.688339 -58.70475,-17.853611 -66.84809,-81.18674 -0.49637,12.305788 -2.51072,26.510542 -15.29986,46.49276 -2.69779,46.692763 7.77251,66.295743 20.03917,76.670793 z"
-         style="fill:#493225;fill-opacity:1;stroke:none" />
-    </g>
-    <g
-       inkscape:export-ydpi="5.6444445"
-       inkscape:export-xdpi="5.6444445"
-       inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_16.png"
-       transform="matrix(0.78977954,0,0,0.76291812,-43.100336,434.7796)"
-       id="g19918">
-      <g
-         inkscape:export-ydpi="11.28878"
-         inkscape:export-xdpi="11.28878"
-         inkscape:export-filename="/Volumes/partage/private/marketing/Design/Produits/Sirius/png/man_32.png"
-         id="g19920">
-        <g
-           id="g19936" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js
deleted file mode 100644
index 79fcc7b..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js
+++ /dev/null
@@ -1,19026 +0,0 @@
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// identity function for calling harmony imports with the correct context
-/******/ 	__webpack_require__.i = function(value) { return value; };
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 310);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var keys = __webpack_require__(5);
-exports.METADATA_KEY = keys;
-var container_1 = __webpack_require__(223);
-exports.Container = container_1.Container;
-var literal_types_1 = __webpack_require__(21);
-exports.BindingScopeEnum = literal_types_1.BindingScopeEnum;
-exports.BindingTypeEnum = literal_types_1.BindingTypeEnum;
-exports.TargetTypeEnum = literal_types_1.TargetTypeEnum;
-var container_module_1 = __webpack_require__(224);
-exports.ContainerModule = container_module_1.ContainerModule;
-var injectable_1 = __webpack_require__(213);
-exports.injectable = injectable_1.injectable;
-var tagged_1 = __webpack_require__(218);
-exports.tagged = tagged_1.tagged;
-var named_1 = __webpack_require__(215);
-exports.named = named_1.named;
-var inject_1 = __webpack_require__(122);
-exports.inject = inject_1.inject;
-exports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;
-var optional_1 = __webpack_require__(216);
-exports.optional = optional_1.optional;
-var unmanaged_1 = __webpack_require__(220);
-exports.unmanaged = unmanaged_1.unmanaged;
-var multi_inject_1 = __webpack_require__(214);
-exports.multiInject = multi_inject_1.multiInject;
-var target_name_1 = __webpack_require__(219);
-exports.targetName = target_name_1.targetName;
-var post_construct_1 = __webpack_require__(217);
-exports.postConstruct = post_construct_1.postConstruct;
-var metadata_reader_1 = __webpack_require__(123);
-exports.MetadataReader = metadata_reader_1.MetadataReader;
-var guid_1 = __webpack_require__(34);
-exports.guid = guid_1.guid;
-var decorator_utils_1 = __webpack_require__(29);
-exports.decorate = decorator_utils_1.decorate;
-var constraint_helpers_1 = __webpack_require__(126);
-exports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;
-exports.taggedConstraint = constraint_helpers_1.taggedConstraint;
-exports.namedConstraint = constraint_helpers_1.namedConstraint;
-exports.typeConstraint = constraint_helpers_1.typeConstraint;
-var serialization_1 = __webpack_require__(47);
-exports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;
-var binding_utils_1 = __webpack_require__(238);
-exports.multiBindToService = binding_utils_1.multiBindToService;
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.TYPES = {
-    IActionDispatcher: Symbol('IActionDispatcher'),
-    IActionDispatcherProvider: Symbol('IActionDispatcherProvider'),
-    IActionHandlerInitializer: Symbol('IActionHandlerInitializer'),
-    ActionHandlerRegistry: Symbol('ActionHandlerRegistry'),
-    AnimationFrameSyncer: Symbol('AnimationFrameSyncer'),
-    CommandStackOptions: Symbol('CommandStackOptions'),
-    IButtonHandler: Symbol('IButtonHandler'),
-    ICommand: Symbol('ICommand'),
-    ICommandStack: Symbol('ICommandStack'),
-    ICommandStackProvider: Symbol('ICommandStackProvider'),
-    DOMHelper: Symbol('DOMHelper'),
-    HiddenVNodeDecorator: Symbol('HiddenVNodeDecorator'),
-    HoverState: Symbol('HoverState'),
-    KeyListener: Symbol('KeyListener'),
-    Layouter: Symbol('Layouter'),
-    LayoutRegistry: Symbol('LayoutRegistry'),
-    ILogger: Symbol('ILogger'),
-    LogLevel: Symbol('LogLevel'),
-    IModelFactory: Symbol('IModelFactory'),
-    ModelRendererFactory: Symbol('ModelRendererFactory'),
-    ModelSource: Symbol('ModelSource'),
-    ModelSourceProvider: Symbol('ModelSourceProvider'),
-    MouseListener: Symbol('MouseListener'),
-    PopupModelFactory: Symbol('PopupModelFactory'),
-    PopupMouseListener: Symbol('PopupMouseListener'),
-    PopupVNodeDecorator: Symbol('PopupVNodeDecorator'),
-    SModelStorage: Symbol('SModelStorage'),
-    StateAwareModelProvider: Symbol('StateAwareModelProvider'),
-    SvgExporter: Symbol('SvgExporter'),
-    IViewer: Symbol('IViewer'),
-    ViewerOptions: Symbol('ViewerOptions'),
-    IViewerProvider: Symbol('IViewerProvider'),
-    ViewRegistry: Symbol('ViewRegistry'),
-    IVNodeDecorator: Symbol('IVNodeDecorator')
-};
-//# sourceMappingURL=types.js.map
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-/**
- * Base class for all elements of the diagram model.
- * Each model element must have a unique ID and a type that is used to look up its view.
- */
-var SModelElement = /** @class */ (function () {
-    function SModelElement() {
-    }
-    Object.defineProperty(SModelElement.prototype, "root", {
-        get: function () {
-            var current = this;
-            while (current) {
-                if (current instanceof SModelRoot)
-                    return current;
-                else if (current instanceof SChildElement)
-                    current = current.parent;
-                else
-                    current = undefined;
-            }
-            throw new Error("Element has no root");
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SModelElement.prototype, "index", {
-        get: function () {
-            return this.root.index;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    /**
-     * A feature is a symbol identifying some functionality that can be enabled or disabled for
-     * a model element. The base implementation always returns false, so it disables all features.
-     */
-    SModelElement.prototype.hasFeature = function (feature) {
-        return false;
-    };
-    return SModelElement;
-}());
-exports.SModelElement = SModelElement;
-/**
- * A parent element may contain child elements, thus the diagram model forms a tree.
- */
-var SParentElement = /** @class */ (function (_super) {
-    __extends(SParentElement, _super);
-    function SParentElement() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.children = [];
-        return _this;
-    }
-    SParentElement.prototype.add = function (child, i) {
-        if (i === undefined) {
-            this.children.push(child);
-        }
-        else {
-            if (i < 0 || i > this.children.length) {
-                throw "Child index out of bounds " + i + " (0.." + this.children.length + ")";
-            }
-            this.children.splice(i, 0, child);
-        }
-        child.parent = this;
-        this.index.add(child);
-    };
-    SParentElement.prototype.remove = function (child) {
-        var i = this.children.indexOf(child);
-        if (i < 0) {
-            throw "No such child " + child;
-        }
-        this.children.splice(i, 1);
-        delete child.parent;
-        this.index.remove(child);
-    };
-    SParentElement.prototype.move = function (child, newIndex) {
-        var i = this.children.indexOf(child);
-        if (i === -1) {
-            throw "No such child " + child;
-        }
-        else {
-            if (newIndex < 0 || newIndex > this.children.length - 1) {
-                throw "Child index out of bounds " + i + " (0.." + this.children.length + ")";
-            }
-            this.children.splice(i, 1);
-            this.children.splice(newIndex, 0, child);
-        }
-    };
-    /**
-     * Transform the given bounds from the local coordinate system of this element to the coordinate
-     * system of its parent. This function should consider any transformation that is applied to the
-     * view of this element and its contents.
-     * The base implementation assumes that this element does not define a local coordinate system,
-     * so it leaves the bounds unchanged.
-     */
-    SParentElement.prototype.localToParent = function (point) {
-        return geometry_1.isBounds(point) ? point : { x: point.x, y: point.y, width: -1, height: -1 };
-    };
-    /**
-     * Transform the given bounds from the coordinate system of this element's parent to its local
-     * coordinate system. This function should consider any transformation that is applied to the
-     * view of this element and its contents.
-     * The base implementation assumes that this element does not define a local coordinate system,
-     * so it leaves the bounds unchanged.
-     */
-    SParentElement.prototype.parentToLocal = function (point) {
-        return geometry_1.isBounds(point) ? point : { x: point.x, y: point.y, width: -1, height: -1 };
-    };
-    return SParentElement;
-}(SModelElement));
-exports.SParentElement = SParentElement;
-/**
- * A child element is contained in a parent element. All elements except the model root are child
- * elements. In order to keep the model class hierarchy simple, every child element is also a
- * parent element, although for many elements the array of children is empty (i.e. they are
- * leafs in the model element tree).
- */
-var SChildElement = /** @class */ (function (_super) {
-    __extends(SChildElement, _super);
-    function SChildElement() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return SChildElement;
-}(SParentElement));
-exports.SChildElement = SChildElement;
-/**
- * Base class for the root element of the diagram model tree.
- */
-var SModelRoot = /** @class */ (function (_super) {
-    __extends(SModelRoot, _super);
-    function SModelRoot() {
-        var _this = _super.call(this) || this;
-        _this.canvasBounds = geometry_1.EMPTY_BOUNDS;
-        // Override the index property from SModelElement, which has a getter, with a data property
-        Object.defineProperty(_this, 'index', {
-            value: new SModelIndex(),
-            writable: false
-        });
-        return _this;
-    }
-    return SModelRoot;
-}(SParentElement));
-exports.SModelRoot = SModelRoot;
-/**
- * Used to speed up model element lookup by id.
- */
-var SModelIndex = /** @class */ (function () {
-    function SModelIndex() {
-        this.id2element = new Map;
-    }
-    SModelIndex.prototype.add = function (element) {
-        if (this.contains(element)) {
-            throw new Error("Duplicate ID in model: " + element.id);
-        }
-        this.id2element.set(element.id, element);
-        if (element.children !== undefined && element.children.constructor === Array) {
-            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {
-                var child = _a[_i];
-                this.add(child);
-            }
-        }
-    };
-    SModelIndex.prototype.remove = function (element) {
-        this.id2element.delete(element.id);
-        if (element.children !== undefined && element.children.constructor === Array) {
-            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {
-                var child = _a[_i];
-                this.remove(child);
-            }
-        }
-    };
-    SModelIndex.prototype.contains = function (element) {
-        return this.id2element.get(element.id) !== undefined;
-    };
-    SModelIndex.prototype.removeById = function (elementId) {
-        this.id2element.delete(elementId);
-    };
-    SModelIndex.prototype.getById = function (id) {
-        return this.id2element.get(id);
-    };
-    SModelIndex.prototype.all = function () {
-        var all = [];
-        this.id2element.forEach(function (element) { return all.push(element); });
-        return all;
-    };
-    return SModelIndex;
-}());
-exports.SModelIndex = SModelIndex;
-//# sourceMappingURL=smodel.js.map
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * (x,y) coordinates of the origin.
- */
-exports.ORIGIN_POINT = Object.freeze({
-    x: 0,
-    y: 0
-});
-/**
- * A dimension with both width and height set to a negative value, which is considered as undefined.
- */
-exports.EMPTY_DIMENSION = Object.freeze({
-    width: -1,
-    height: -1
-});
-/**
- * Checks whether the given dimention is valid, i.e. the width and height are non-zero.
- * @param {Dimension} b - Dimension object
- * @returns {boolean}
- */
-function isValidDimension(d) {
-    return d.width >= 0 && d.height >= 0;
-}
-exports.isValidDimension = isValidDimension;
-exports.EMPTY_BOUNDS = Object.freeze({
-    x: 0,
-    y: 0,
-    width: -1,
-    height: -1
-});
-function isBounds(element) {
-    return 'x' in element
-        && 'y' in element
-        && 'width' in element
-        && 'height' in element;
-}
-exports.isBounds = isBounds;
-/**
- * Combines the bounds of two objects into one, so that the new bounds
- * are the minimum bounds that covers both of the original bounds.
- * @param {Bounds} b0 - First bounds object
- * @param {Bounds} b1 - Second bounds object
- * @returns {Bounds} The combined bounds
- */
-function combine(b0, b1) {
-    var minX = Math.min(b0.x, b1.x);
-    var minY = Math.min(b0.y, b1.y);
-    var maxX = Math.max(b0.x + (b0.width >= 0 ? b0.width : 0), b1.x + (b1.width >= 0 ? b1.width : 0));
-    var maxY = Math.max(b0.y + (b0.height >= 0 ? b0.height : 0), b1.y + (b1.height >= 0 ? b1.height : 0));
-    return {
-        x: minX, y: minY, width: maxX - minX, height: maxY - minY
-    };
-}
-exports.combine = combine;
-/**
- * Translates the given bounds.
- * @param {Bounds} b - Bounds object
- * @param {Point} p - Vector by which to translate the bounds
- * @returns {Bounds} The translated bounds
- */
-function translate(b, p) {
-    return {
-        x: b.x + p.x,
-        y: b.y + p.y,
-        width: b.width,
-        height: b.height
-    };
-}
-exports.translate = translate;
-/**
- * Returns the center point of the bounds of an object
- * @param {Bounds} b - Bounds object
- * @returns {Point} the center point
- */
-function center(b) {
-    return {
-        x: b.x + (b.width >= 0 ? 0.5 * b.width : 0),
-        y: b.y + (b.height >= 0 ? 0.5 * b.height : 0)
-    };
-}
-exports.center = center;
-/**
- * Checks whether the point p is included in the bounds b.
- */
-function includes(b, p) {
-    return p.x >= b.x && p.x <= b.x + b.width && p.y >= b.y && p.y <= b.y + b.height;
-}
-exports.includes = includes;
-/**
- * Enumeration of possible directions (left, right, up, down)
- */
-var Direction;
-(function (Direction) {
-    Direction[Direction["left"] = 0] = "left";
-    Direction[Direction["right"] = 1] = "right";
-    Direction[Direction["up"] = 2] = "up";
-    Direction[Direction["down"] = 3] = "down";
-})(Direction = exports.Direction || (exports.Direction = {}));
-/**
- * Returns the "straight line" distance between two points
- * @param {Point} a - First point
- * @param {Point} b - Second point
- * @returns {number} The eucledian distance
- */
-function euclideanDistance(a, b) {
-    var dx = b.x - a.x;
-    var dy = b.y - a.y;
-    return Math.sqrt(dx * dx + dy * dy);
-}
-exports.euclideanDistance = euclideanDistance;
-/**
- * Returns the distance between two points in a grid, using a
- * strictly vertical and/or horizontal path (versus straight line)
- * @param {Point} a - First point
- * @param {Point} b - Second point
- * @returns {number} The manhattan distance
- */
-function manhattanDistance(a, b) {
-    return Math.abs(b.x - a.x) + Math.abs(b.y - a.y);
-}
-exports.manhattanDistance = manhattanDistance;
-/**
- * Returns the distance between two points in a grid, using a
- * strictly vertical and/or horizontal path (versus straight line)
- * @param {Point} a - First point
- * @param {Point} b - Second point
- * @returns {number} The manhattan distance
- */
-function maxDistance(a, b) {
-    return Math.max(Math.abs(b.x - a.x), Math.abs(b.y - a.y));
-}
-exports.maxDistance = maxDistance;
-// range (-PI, PI]
-function angle(a, b) {
-    return Math.atan2(b.y - a.y, b.x - a.x);
-}
-exports.angle = angle;
-/**
- * Converts from radians to degrees
- * @param {number} a - A value in radians
- * @returns {number} The converted value
- */
-function toDegrees(a) {
-    return a * 180 / Math.PI;
-}
-exports.toDegrees = toDegrees;
-/**
- * Converts from degrees to radians
- * @param {number} a - A value in degrees
- * @returns {number} The converted value
- */
-function toRadians(a) {
-    return a * Math.PI / 180;
-}
-exports.toRadians = toRadians;
-/**
- * Returns whether two numbers are almost equal, within a small margin (0.001)
- * @param {number} a - First number
- * @param {number} b - Second number
- * @returns {boolean} True if the two numbers are almost equal
- */
-function almostEquals(a, b) {
-    return Math.abs(a - b) < 1e-3;
-}
-exports.almostEquals = almostEquals;
-//# sourceMappingURL=geometry.js.map
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var store = __webpack_require__(78)('wks');
-var uid = __webpack_require__(46);
-var Symbol = __webpack_require__(6).Symbol;
-var USE_SYMBOL = typeof Symbol == 'function';
-
-var $exports = module.exports = function (name) {
-  return store[name] || (store[name] =
-    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
-};
-
-$exports.store = store;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.NAMED_TAG = "named";
-exports.NAME_TAG = "name";
-exports.UNMANAGED_TAG = "unmanaged";
-exports.OPTIONAL_TAG = "optional";
-exports.INJECT_TAG = "inject";
-exports.MULTI_INJECT_TAG = "multi_inject";
-exports.TAGGED = "inversify:tagged";
-exports.TAGGED_PROP = "inversify:tagged_props";
-exports.PARAM_TYPES = "inversify:paramtypes";
-exports.DESIGN_PARAM_TYPES = "design:paramtypes";
-exports.POST_CONSTRUCT = "post_construct";
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports) {
-
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
-  ? window : typeof self != 'undefined' && self.Math == Math ? self
-  // eslint-disable-next-line no-new-func
-  : Function('return this')();
-if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var SVGNS = 'http://www.w3.org/2000/svg';
-var modulesNS = ['hook', 'on', 'style', 'class', 'props', 'attrs', 'dataset'];
-var slice = Array.prototype.slice;
-
-function isPrimitive(val) {
-  return  typeof val === 'string'   ||
-          typeof val === 'number'   ||
-          typeof val === 'boolean'  ||
-          typeof val === 'symbol'   ||
-          val === null              ||
-          val === undefined;
-}
-
-function normalizeAttrs(attrs, nsURI, defNS, modules) {
-  var map = { ns: nsURI };
-  for (var i = 0, len = modules.length; i < len; i++) {
-    var mod = modules[i];
-    if(attrs[mod])
-      map[mod] = attrs[mod];
-  }
-  for(var key in attrs) {
-    if(key !== 'key' && key !== 'classNames' && key !== 'selector') {
-      var idx = key.indexOf('-');
-      if(idx > 0)
-        addAttr(key.slice(0, idx), key.slice(idx+1), attrs[key]);
-      else if(!map[key])
-        addAttr(defNS, key, attrs[key]);
-    }
-  }
-  return map;
-
-  function addAttr(namespace, key, val) {
-    var ns = map[namespace] || (map[namespace] = {});
-    ns[key] = val;
-  }
-}
-
-function buildFromStringTag(nsURI, defNS, modules, tag, attrs, children) {
-
-  if(attrs.selector) {
-    tag = tag + attrs.selector;
-  }
-  if(attrs.classNames) {
-    var cns = attrs.classNames;
-    tag = tag + '.' + (
-      Array.isArray(cns) ? cns.join('.') : cns.replace(/\s+/g, '.')
-    );
-  }
-
-  return {
-    sel       : tag,
-    data      : normalizeAttrs(attrs, nsURI, defNS, modules),
-    children  : children.map( function(c) {
-      return isPrimitive(c) ? {text: c} : c;
-    }),
-    key: attrs.key
-  };
-}
-
-function buildFromComponent(nsURI, defNS, modules, tag, attrs, children) {
-  var res;
-  if(typeof tag === 'function')
-    res = tag(attrs, children);
-  else if(tag && typeof tag.view === 'function')
-    res = tag.view(attrs, children);
-  else if(tag && typeof tag.render === 'function')
-    res = tag.render(attrs, children);
-  else
-    throw "JSX tag must be either a string, a function or an object with 'view' or 'render' methods";
-  res.key = attrs.key;
-  return res;
-}
-
-function flatten(nested, start, flat) {
-  for (var i = start, len = nested.length; i < len; i++) {
-    var item = nested[i];
-    if (Array.isArray(item)) {
-      flatten(item, 0, flat);
-    } else {
-      flat.push(item);
-    }
-  }
-}
-
-function maybeFlatten(array) {
-  if (array) {
-    for (var i = 0, len = array.length; i < len; i++) {
-      if (Array.isArray(array[i])) {
-        var flat = array.slice(0, i);
-        flatten(array, i, flat);
-        array = flat;
-        break;
-      }
-    }
-  }
-  return array;
-}
-
-function buildVnode(nsURI, defNS, modules, tag, attrs, children) {
-  attrs = attrs || {};
-  children = maybeFlatten(children);
-  if(typeof tag === 'string') {
-    return buildFromStringTag(nsURI, defNS, modules, tag, attrs, children)
-  } else {
-    return buildFromComponent(nsURI, defNS, modules, tag, attrs, children)
-  }
-}
-
-function JSX(nsURI, defNS, modules) {
-  return function jsxWithCustomNS(tag, attrs, children) {
-    if(arguments.length > 3 || !Array.isArray(children))
-      children = slice.call(arguments, 2);
-    return buildVnode(nsURI, defNS || 'props', modules || modulesNS, tag, attrs, children);
-  };
-}
-
-module.exports = {
-  html: JSX(undefined),
-  svg: JSX(SVGNS, 'attrs'),
-  JSX: JSX
-};
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-/**
- * Base class for all commands.
- */
-var Command = /** @class */ (function () {
-    function Command() {
-    }
-    return Command;
-}());
-exports.Command = Command;
-/**
- * A mergeable command can accumulate subsequent commands of the same kind.
- *
- * For example, multiple subsequent move commands can be merged to yield a
- * single command, such that undo will roll them back altogether. Otherwise
- * the user would have to push CTRL-Z for each mouse move element that
- * resuted in a command.
- */
-var MergeableCommand = /** @class */ (function (_super) {
-    __extends(MergeableCommand, _super);
-    function MergeableCommand() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Tries to merge the given command with this.
-     *
-     * @param command
-     * @param context
-     */
-    MergeableCommand.prototype.merge = function (command, context) {
-        return false;
-    };
-    return MergeableCommand;
-}(Command));
-exports.MergeableCommand = MergeableCommand;
-/**
- * A hidden command is used to trigger the rendering of a model on a
- * hidden canvas.
- *
- * Some graphical elements are styled using CSS, others have bounds that
- * require to layout their children before being computed. In such cases
- * we cannot tell about the size of elements without acutally rendering
- * the DOM. We render them to an invisible canvas. This can be achieved
- * using hidden commands.
- *
- * Hidden commands do not change the model directly, and are as such
- * neither undoable nor redoable. The command stack does not push them on
- * any stack and forwards the resulting model to the invisible viewer.
- */
-var HiddenCommand = /** @class */ (function (_super) {
-    __extends(HiddenCommand, _super);
-    function HiddenCommand() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    HiddenCommand.prototype.undo = function (context) {
-        context.logger.error(this, 'Cannot undo a hidden command');
-        return context.root;
-    };
-    HiddenCommand.prototype.redo = function (context) {
-        context.logger.error(this, 'Cannot redo a hidden command');
-        return context.root;
-    };
-    return HiddenCommand;
-}(Command));
-exports.HiddenCommand = HiddenCommand;
-var PopupCommand = /** @class */ (function (_super) {
-    __extends(PopupCommand, _super);
-    function PopupCommand() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return PopupCommand;
-}(Command));
-exports.PopupCommand = PopupCommand;
-/**
- * A system command is triggered by the system, e.g. in order to update bounds
- * in the model with data fetched from the DOM.
- *
- * As it is automatically triggered it should not count as a single command in
- * undo/redo operations. Into the bargain, such an automatic command could occur
- * after an undo and as such make the next redo command invalid because it is
- * based on a model state that has changed. The command stack handles system
- * commands in a special way to overcome these issues.
- */
-var SystemCommand = /** @class */ (function (_super) {
-    __extends(SystemCommand, _super);
-    function SystemCommand() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return SystemCommand;
-}(Command));
-exports.SystemCommand = SystemCommand;
-var CommandActionHandler = /** @class */ (function () {
-    function CommandActionHandler(commandType) {
-        this.commandType = commandType;
-    }
-    CommandActionHandler.prototype.handle = function (action) {
-        return new this.commandType(action);
-    };
-    return CommandActionHandler;
-}());
-exports.CommandActionHandler = CommandActionHandler;
-var CommandActionHandlerInitializer = /** @class */ (function () {
-    function CommandActionHandlerInitializer(commandCtrs) {
-        this.commandCtrs = commandCtrs;
-    }
-    CommandActionHandlerInitializer.prototype.initialize = function (registry) {
-        this.commandCtrs.forEach(function (commandCtr) { return registry.registerCommand(commandCtr); });
-    };
-    CommandActionHandlerInitializer = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.multiInject(types_1.TYPES.ICommand)), __param(0, inversify_1.optional()),
-        __metadata("design:paramtypes", [Array])
-    ], CommandActionHandlerInitializer);
-    return CommandActionHandlerInitializer;
-}());
-exports.CommandActionHandlerInitializer = CommandActionHandlerInitializer;
-//# sourceMappingURL=command.js.map
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var smodel_1 = __webpack_require__(2);
-var smodel_utils_1 = __webpack_require__(13);
-exports.boundsFeature = Symbol('boundsFeature');
-exports.layoutContainerFeature = Symbol('layoutContainerFeature');
-exports.layoutableChildFeature = Symbol('layoutableChildFeature');
-exports.alignFeature = Symbol('alignFeature');
-function isBoundsAware(element) {
-    return 'bounds' in element;
-}
-exports.isBoundsAware = isBoundsAware;
-function isLayoutContainer(element) {
-    return 'layout' in element
-        && isBoundsAware(element)
-        && element.hasFeature(exports.layoutContainerFeature);
-}
-exports.isLayoutContainer = isLayoutContainer;
-function isLayoutableChild(element) {
-    return isBoundsAware(element)
-        && element.hasFeature(exports.layoutableChildFeature);
-}
-exports.isLayoutableChild = isLayoutableChild;
-function isSizeable(element) {
-    return element.hasFeature(exports.boundsFeature) && isBoundsAware(element);
-}
-exports.isSizeable = isSizeable;
-function isAlignable(element) {
-    return 'alignment' in element
-        && element.hasFeature(exports.alignFeature);
-}
-exports.isAlignable = isAlignable;
-function getAbsoluteBounds(element) {
-    var boundsAware = smodel_utils_1.findParentByFeature(element, isBoundsAware);
-    if (boundsAware !== undefined) {
-        var bounds = boundsAware.bounds;
-        var current = boundsAware;
-        while (current instanceof smodel_1.SChildElement) {
-            var parent_1 = current.parent;
-            bounds = parent_1.localToParent(bounds);
-            current = parent_1;
-        }
-        return bounds;
-    }
-    else {
-        return geometry_1.EMPTY_BOUNDS;
-    }
-}
-exports.getAbsoluteBounds = getAbsoluteBounds;
-/**
- * Abstract class for elements with a position and a size.
- */
-var SShapeElement = /** @class */ (function (_super) {
-    __extends(SShapeElement, _super);
-    function SShapeElement() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.position = geometry_1.ORIGIN_POINT;
-        _this.size = geometry_1.EMPTY_DIMENSION;
-        return _this;
-    }
-    Object.defineProperty(SShapeElement.prototype, "bounds", {
-        get: function () {
-            return {
-                x: this.position.x,
-                y: this.position.y,
-                width: this.size.width,
-                height: this.size.height
-            };
-        },
-        set: function (newBounds) {
-            this.position = {
-                x: newBounds.x,
-                y: newBounds.y
-            };
-            this.size = {
-                width: newBounds.width,
-                height: newBounds.height
-            };
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SShapeElement.prototype.localToParent = function (point) {
-        var result = {
-            x: point.x + this.position.x,
-            y: point.y + this.position.y,
-            width: -1,
-            height: -1
-        };
-        if (geometry_1.isBounds(point)) {
-            result.width = point.width;
-            result.height = point.height;
-        }
-        return result;
-    };
-    SShapeElement.prototype.parentToLocal = function (point) {
-        var result = {
-            x: point.x - this.position.x,
-            y: point.y - this.position.y,
-            width: -1,
-            height: -1
-        };
-        if (geometry_1.isBounds(point)) {
-            result.width = point.width;
-            result.height = point.height;
-        }
-        return result;
-    };
-    return SShapeElement;
-}(smodel_1.SChildElement));
-exports.SShapeElement = SShapeElement;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(6);
-var core = __webpack_require__(20);
-var hide = __webpack_require__(26);
-var redefine = __webpack_require__(28);
-var ctx = __webpack_require__(37);
-var PROTOTYPE = 'prototype';
-
-var $export = function (type, name, source) {
-  var IS_FORCED = type & $export.F;
-  var IS_GLOBAL = type & $export.G;
-  var IS_STATIC = type & $export.S;
-  var IS_PROTO = type & $export.P;
-  var IS_BIND = type & $export.B;
-  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
-  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
-  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
-  var key, own, out, exp;
-  if (IS_GLOBAL) source = name;
-  for (key in source) {
-    // contains in native
-    own = !IS_FORCED && target && target[key] !== undefined;
-    // export native or passed
-    out = (own ? target : source)[key];
-    // bind timers to global for call from export context
-    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
-    // extend global
-    if (target) redefine(target, key, out, type & $export.U);
-    // export
-    if (exports[key] != out) hide(exports, key, exp);
-    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
-  }
-};
-global.core = core;
-// type bitmap
-$export.F = 1;   // forced
-$export.G = 2;   // global
-$export.S = 4;   // static
-$export.P = 8;   // proto
-$export.B = 16;  // bind
-$export.W = 32;  // wrap
-$export.U = 64;  // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export;
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(10);
-var fails = __webpack_require__(24);
-var defined = __webpack_require__(22);
-var quot = /"/g;
-// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
-var createHTML = function (string, tag, attribute, value) {
-  var S = String(defined(string));
-  var p1 = '<' + tag;
-  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
-  return p1 + '>' + S + '</' + tag + '>';
-};
-module.exports = function (NAME, exec) {
-  var O = {};
-  O[NAME] = exec(createHTML);
-  $export($export.P + $export.F * fails(function () {
-    var test = ''[NAME]('"');
-    return test !== test.toLowerCase() || test.split('"').length > 3;
-  }), 'String', O);
-};
-
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.DUPLICATED_INJECTABLE_DECORATOR = "Cannot apply @injectable decorator multiple times.";
-exports.DUPLICATED_METADATA = "Metadata key was used more than once in a parameter:";
-exports.NULL_ARGUMENT = "NULL argument";
-exports.KEY_NOT_FOUND = "Key Not Found";
-exports.AMBIGUOUS_MATCH = "Ambiguous match found for serviceIdentifier:";
-exports.CANNOT_UNBIND = "Could not unbind serviceIdentifier:";
-exports.NOT_REGISTERED = "No matching bindings found for serviceIdentifier:";
-exports.MISSING_INJECTABLE_ANNOTATION = "Missing required @injectable annotation in:";
-exports.MISSING_INJECT_ANNOTATION = "Missing required @inject or @multiInject annotation in:";
-exports.UNDEFINED_INJECT_ANNOTATION = function (name) {
-    return "@inject called with undefined this could mean that the class " + name + " has " +
-        "a circular dependency problem. You can use a LazyServiceIdentifer to  " +
-        "overcome this limitation.";
-};
-exports.CIRCULAR_DEPENDENCY = "Circular dependency found:";
-exports.NOT_IMPLEMENTED = "Sorry, this feature is not fully implemented yet.";
-exports.INVALID_BINDING_TYPE = "Invalid binding type:";
-exports.NO_MORE_SNAPSHOTS_AVAILABLE = "No snapshot available to restore.";
-exports.INVALID_MIDDLEWARE_RETURN = "Invalid return type in middleware. Middleware must return!";
-exports.INVALID_FUNCTION_BINDING = "Value provided to function binding must be a function!";
-exports.INVALID_TO_SELF_VALUE = "The toSelf function can only be applied when a constructor is " +
-    "used as service identifier";
-exports.INVALID_DECORATOR_OPERATION = "The @inject @multiInject @tagged and @named decorators " +
-    "must be applied to the parameters of a class constructor or a class property.";
-exports.ARGUMENTS_LENGTH_MISMATCH_1 = "The number of constructor arguments in the derived class ";
-exports.ARGUMENTS_LENGTH_MISMATCH_2 = " must be >= than the number of constructor arguments of its base class.";
-exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = "Invalid Container constructor argument. Container options " +
-    "must be an object.";
-exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = "Invalid Container option. Default scope must " +
-    "be a string ('singleton' or 'transient').";
-exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = "Invalid Container option. Auto bind injectable must " +
-    "be a boolean";
-exports.MULTIPLE_POST_CONSTRUCT_METHODS = "Cannot apply @postConstruct decorator multiple times in the same class";
-exports.POST_CONSTRUCT_ERROR = function () {
-    var values = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        values[_i] = arguments[_i];
-    }
-    return "@postConstruct error in class " + values[0] + ": " + values[1];
-};
-exports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {
-    var values = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        values[_i] = arguments[_i];
-    }
-    return "It looks like there is a circular dependency " +
-        ("in one of the '" + values[0] + "' bindings. Please investigate bindings with") +
-        ("service identifier '" + values[1] + "'.");
-};
-exports.STACK_OVERFLOW = "Maximum call stack size exceeded";
-
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-/**
- * Model element types can include a colon to separate the basic type and a sub-type. This function
- * extracts the basic type of a model element.
- */
-function getBasicType(schema) {
-    if (!schema.type)
-        return '';
-    var colonIndex = schema.type.indexOf(':');
-    if (colonIndex >= 0)
-        return schema.type.substring(0, colonIndex);
-    else
-        return schema.type;
-}
-exports.getBasicType = getBasicType;
-/**
- * Model element types can include a colon to separate the basic type and a sub-type. This function
- * extracts the sub-type of a model element.
- */
-function getSubType(schema) {
-    if (!schema.type)
-        return '';
-    var colonIndex = schema.type.indexOf(':');
-    if (colonIndex >= 0)
-        return schema.type.substring(colonIndex + 1);
-    else
-        return schema.type;
-}
-exports.getSubType = getSubType;
-/**
- * Find the element with the given identifier. If you need to find multiple elements, using an
- * SModelIndex might be more effective.
- */
-function findElement(parent, elementId) {
-    if (parent.id === elementId)
-        return parent;
-    if (parent.children !== undefined) {
-        for (var _i = 0, _a = parent.children; _i < _a.length; _i++) {
-            var child = _a[_i];
-            var result = findElement(child, elementId);
-            if (result !== undefined)
-                return result;
-        }
-    }
-    return undefined;
-}
-exports.findElement = findElement;
-/**
- * Find a parent element that satisfies the given predicate.
- */
-function findParent(element, predicate) {
-    var current = element;
-    while (current !== undefined) {
-        if (predicate(current))
-            return current;
-        else if (current instanceof smodel_1.SChildElement)
-            current = current.parent;
-        else
-            current = undefined;
-    }
-    return current;
-}
-exports.findParent = findParent;
-/**
- * Find a parent element that implements the feature identified with the given predicate.
- */
-function findParentByFeature(element, predicate) {
-    var current = element;
-    while (current !== undefined) {
-        if (predicate(current))
-            return current;
-        else if (current instanceof smodel_1.SChildElement)
-            current = current.parent;
-        else
-            current = undefined;
-    }
-    return current;
-}
-exports.findParentByFeature = findParentByFeature;
-/**
- * Translate a point from the coordinate system of the source element to the coordinate system
- * of the target element.
- */
-function translatePoint(point, source, target) {
-    if (source !== target) {
-        // Translate from the source to the root element
-        while (source instanceof smodel_1.SChildElement) {
-            point = source.localToParent(point);
-            source = source.parent;
-            if (source === target)
-                return point;
-        }
-        // Translate from the root to the target element
-        var targetTrace = [];
-        while (target instanceof smodel_1.SChildElement) {
-            targetTrace.push(target);
-            target = target.parent;
-        }
-        if (source !== target)
-            throw new Error("Incompatible source and target: " + source.id + ", " + target.id);
-        for (var i = targetTrace.length - 1; i >= 0; i--) {
-            point = targetTrace[i].parentToLocal(point);
-        }
-    }
-    return point;
-}
-exports.translatePoint = translatePoint;
-//# sourceMappingURL=smodel-utils.js.map
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports) {
-
-module.exports = function (it) {
-  return typeof it === 'object' ? it !== null : typeof it === 'function';
-};
-
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the 'License'); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-// ------------------ Base ------------------
-__export(__webpack_require__(86));
-__export(__webpack_require__(85));
-__export(__webpack_require__(38));
-__export(__webpack_require__(48));
-__export(__webpack_require__(39));
-__export(__webpack_require__(129));
-__export(__webpack_require__(247));
-__export(__webpack_require__(130));
-__export(__webpack_require__(8));
-__export(__webpack_require__(60));
-__export(__webpack_require__(49));
-__export(__webpack_require__(17));
-__export(__webpack_require__(87));
-__export(__webpack_require__(13));
-__export(__webpack_require__(2));
-__export(__webpack_require__(35));
-__export(__webpack_require__(30));
-__export(__webpack_require__(131));
-__export(__webpack_require__(132));
-__export(__webpack_require__(133));
-__export(__webpack_require__(250));
-__export(__webpack_require__(134));
-__export(__webpack_require__(135));
-__export(__webpack_require__(18));
-__export(__webpack_require__(1));
-var di_config_1 = __webpack_require__(248);
-exports.defaultModule = di_config_1.default;
-// ------------------ Features ------------------
-__export(__webpack_require__(50));
-__export(__webpack_require__(90));
-__export(__webpack_require__(9));
-__export(__webpack_require__(138));
-__export(__webpack_require__(136));
-__export(__webpack_require__(137));
-__export(__webpack_require__(91));
-__export(__webpack_require__(92));
-__export(__webpack_require__(61));
-__export(__webpack_require__(93));
-__export(__webpack_require__(256));
-__export(__webpack_require__(139));
-__export(__webpack_require__(62));
-__export(__webpack_require__(40));
-__export(__webpack_require__(94));
-__export(__webpack_require__(51));
-__export(__webpack_require__(52));
-__export(__webpack_require__(63));
-__export(__webpack_require__(41));
-__export(__webpack_require__(64));
-__export(__webpack_require__(95));
-__export(__webpack_require__(140));
-__export(__webpack_require__(31));
-__export(__webpack_require__(141));
-__export(__webpack_require__(96));
-__export(__webpack_require__(97));
-__export(__webpack_require__(98));
-__export(__webpack_require__(99));
-__export(__webpack_require__(32));
-__export(__webpack_require__(142));
-__export(__webpack_require__(100));
-__export(__webpack_require__(42));
-__export(__webpack_require__(143));
-var di_config_2 = __webpack_require__(262);
-exports.moveModule = di_config_2.default;
-var di_config_3 = __webpack_require__(251);
-exports.boundsModule = di_config_3.default;
-var di_config_4 = __webpack_require__(258);
-exports.fadeModule = di_config_4.default;
-var di_config_5 = __webpack_require__(264);
-exports.selectModule = di_config_5.default;
-var di_config_6 = __webpack_require__(265);
-exports.undoRedoModule = di_config_6.default;
-var di_config_7 = __webpack_require__(266);
-exports.viewportModule = di_config_7.default;
-var di_config_8 = __webpack_require__(259);
-exports.hoverModule = di_config_8.default;
-var di_config_9 = __webpack_require__(257);
-exports.exportModule = di_config_9.default;
-var di_config_10 = __webpack_require__(255);
-exports.expandModule = di_config_10.default;
-var di_config_11 = __webpack_require__(263);
-exports.openModule = di_config_11.default;
-var di_config_12 = __webpack_require__(254);
-exports.buttonModule = di_config_12.default;
-// ------------------ Graph ------------------
-__export(__webpack_require__(267));
-__export(__webpack_require__(101));
-__export(__webpack_require__(144));
-// ------------------ Library ------------------
-__export(__webpack_require__(268));
-__export(__webpack_require__(269));
-__export(__webpack_require__(270));
-__export(__webpack_require__(271));
-// ------------------ Model Source ------------------
-__export(__webpack_require__(145));
-__export(__webpack_require__(146));
-__export(__webpack_require__(273));
-__export(__webpack_require__(274));
-__export(__webpack_require__(102));
-__export(__webpack_require__(275));
-var di_config_13 = __webpack_require__(272);
-exports.modelSourceModule = di_config_13.default;
-// ------------------ Utilities ------------------
-__export(__webpack_require__(276));
-__export(__webpack_require__(3));
-__export(__webpack_require__(103));
-__export(__webpack_require__(53));
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var Metadata = (function () {
-    function Metadata(key, value) {
-        this.key = key;
-        this.value = value;
-    }
-    Metadata.prototype.toString = function () {
-        if (this.key === METADATA_KEY.NAMED_TAG) {
-            return "named: " + this.value.toString() + " ";
-        }
-        else {
-            return "tagged: { key:" + this.key.toString() + ", value: " + this.value + " }";
-        }
-    };
-    return Metadata;
-}());
-exports.Metadata = Metadata;
-
-
-/***/ }),
-/* 17 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var smodel_1 = __webpack_require__(2);
-/**
- * The default model factory creates SModelRoot for the root element and SChildElement for all other
- * model elements.
- */
-var SModelFactory = /** @class */ (function () {
-    function SModelFactory() {
-    }
-    SModelFactory.prototype.createElement = function (schema, parent) {
-        return this.initializeChild(new smodel_1.SChildElement(), schema, parent);
-    };
-    SModelFactory.prototype.createRoot = function (schema) {
-        return this.initializeRoot(new smodel_1.SModelRoot(), schema);
-    };
-    SModelFactory.prototype.createSchema = function (element) {
-        var _this = this;
-        var schema = {};
-        for (var key in element) {
-            if (!this.isReserved(element, key)) {
-                var value = element[key];
-                if (typeof value !== 'function')
-                    schema[key] = value;
-            }
-        }
-        if (element instanceof smodel_1.SParentElement)
-            schema['children'] = element.children.map(function (child) { return _this.createSchema(child); });
-        return schema;
-    };
-    SModelFactory.prototype.initializeElement = function (element, schema) {
-        for (var key in schema) {
-            if (!this.isReserved(element, key)) {
-                var value = schema[key];
-                if (typeof value !== 'function')
-                    element[key] = value;
-            }
-        }
-        return element;
-    };
-    SModelFactory.prototype.isReserved = function (element, propertyName) {
-        if (['children', 'parent', 'index'].indexOf(propertyName) >= 0)
-            return true;
-        var obj = element;
-        do {
-            var descriptor = Object.getOwnPropertyDescriptor(obj, propertyName);
-            if (descriptor !== undefined)
-                return descriptor.get !== undefined;
-            obj = Object.getPrototypeOf(obj);
-        } while (obj);
-        return false;
-    };
-    SModelFactory.prototype.initializeParent = function (parent, schema) {
-        var _this = this;
-        this.initializeElement(parent, schema);
-        if (schema.children !== undefined && schema.children.constructor === Array) {
-            parent.children = schema.children.map(function (childSchema) { return _this.createElement(childSchema, parent); });
-        }
-        return parent;
-    };
-    SModelFactory.prototype.initializeChild = function (child, schema, parent) {
-        this.initializeParent(child, schema);
-        if (parent !== undefined) {
-            child.parent = parent;
-        }
-        return child;
-    };
-    SModelFactory.prototype.initializeRoot = function (root, schema) {
-        this.initializeParent(root, schema);
-        root.index.add(root);
-        return root;
-    };
-    SModelFactory = __decorate([
-        inversify_1.injectable()
-    ], SModelFactory);
-    return SModelFactory;
-}());
-exports.SModelFactory = SModelFactory;
-exports.EMPTY_ROOT = Object.freeze({
-    type: 'NONE',
-    id: 'EMPTY'
-});
-//# sourceMappingURL=smodel-factory.js.map
-
-/***/ }),
-/* 18 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-function setAttr(vnode, name, value) {
-    getAttrs(vnode)[name] = value;
-}
-exports.setAttr = setAttr;
-function setClass(vnode, name, value) {
-    getClass(vnode)[name] = value;
-}
-exports.setClass = setClass;
-function copyClassesFromVNode(source, target) {
-    var classList = getClass(source);
-    for (var c in classList) {
-        setClass(target, c, true);
-    }
-}
-exports.copyClassesFromVNode = copyClassesFromVNode;
-function copyClassesFromElement(element, target) {
-    var classList = element.classList;
-    for (var i = 0; i < classList.length; i++) {
-        setClass(target, classList.item(i), true);
-    }
-}
-exports.copyClassesFromElement = copyClassesFromElement;
-function mergeStyle(vnode, style) {
-    getData(vnode).style = __assign({}, (getData(vnode).style || {}), style);
-}
-exports.mergeStyle = mergeStyle;
-function on(vnode, event, listener, element) {
-    var on = getOn(vnode);
-    if (on[event]) {
-        throw new Error('EventListener for ' + event + ' already registered on VNode');
-    }
-    on[event] = [listener, element];
-}
-exports.on = on;
-function getAttrs(vnode) {
-    var data = getData(vnode);
-    if (!data.attrs)
-        data.attrs = {};
-    return data.attrs;
-}
-exports.getAttrs = getAttrs;
-function getData(vnode) {
-    if (!vnode.data)
-        vnode.data = {};
-    return vnode.data;
-}
-function getClass(vnode) {
-    var data = getData(vnode);
-    if (!data.class)
-        data.class = {};
-    return data.class;
-}
-function getOn(vnode) {
-    var data = getData(vnode);
-    if (!data.on)
-        data.on = {};
-    return data.on;
-}
-//# sourceMappingURL=vnode-utils.js.map
-
-/***/ }),
-/* 19 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(14);
-module.exports = function (it) {
-  if (!isObject(it)) throw TypeError(it + ' is not an object!');
-  return it;
-};
-
-
-/***/ }),
-/* 20 */
-/***/ (function(module, exports) {
-
-var core = module.exports = { version: '2.5.3' };
-if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
-
-
-/***/ }),
-/* 21 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var BindingScopeEnum = {
-    Request: "Request",
-    Singleton: "Singleton",
-    Transient: "Transient"
-};
-exports.BindingScopeEnum = BindingScopeEnum;
-var BindingTypeEnum = {
-    ConstantValue: "ConstantValue",
-    Constructor: "Constructor",
-    DynamicValue: "DynamicValue",
-    Factory: "Factory",
-    Function: "Function",
-    Instance: "Instance",
-    Invalid: "Invalid",
-    Provider: "Provider"
-};
-exports.BindingTypeEnum = BindingTypeEnum;
-var TargetTypeEnum = {
-    ClassProperty: "ClassProperty",
-    ConstructorArgument: "ConstructorArgument",
-    Variable: "Variable"
-};
-exports.TargetTypeEnum = TargetTypeEnum;
-
-
-/***/ }),
-/* 22 */
-/***/ (function(module, exports) {
-
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function (it) {
-  if (it == undefined) throw TypeError("Can't call method on  " + it);
-  return it;
-};
-
-
-/***/ }),
-/* 23 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !__webpack_require__(24)(function () {
-  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-/***/ }),
-/* 24 */
-/***/ (function(module, exports) {
-
-module.exports = function (exec) {
-  try {
-    return !!exec();
-  } catch (e) {
-    return true;
-  }
-};
-
-
-/***/ }),
-/* 25 */
-/***/ (function(module, exports) {
-
-var hasOwnProperty = {}.hasOwnProperty;
-module.exports = function (it, key) {
-  return hasOwnProperty.call(it, key);
-};
-
-
-/***/ }),
-/* 26 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var dP = __webpack_require__(27);
-var createDesc = __webpack_require__(58);
-module.exports = __webpack_require__(23) ? function (object, key, value) {
-  return dP.f(object, key, createDesc(1, value));
-} : function (object, key, value) {
-  object[key] = value;
-  return object;
-};
-
-
-/***/ }),
-/* 27 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var anObject = __webpack_require__(19);
-var IE8_DOM_DEFINE = __webpack_require__(105);
-var toPrimitive = __webpack_require__(80);
-var dP = Object.defineProperty;
-
-exports.f = __webpack_require__(23) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
-  anObject(O);
-  P = toPrimitive(P, true);
-  anObject(Attributes);
-  if (IE8_DOM_DEFINE) try {
-    return dP(O, P, Attributes);
-  } catch (e) { /* empty */ }
-  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
-  if ('value' in Attributes) O[P] = Attributes.value;
-  return O;
-};
-
-
-/***/ }),
-/* 28 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(6);
-var hide = __webpack_require__(26);
-var has = __webpack_require__(25);
-var SRC = __webpack_require__(46)('src');
-var TO_STRING = 'toString';
-var $toString = Function[TO_STRING];
-var TPL = ('' + $toString).split(TO_STRING);
-
-__webpack_require__(20).inspectSource = function (it) {
-  return $toString.call(it);
-};
-
-(module.exports = function (O, key, val, safe) {
-  var isFunction = typeof val == 'function';
-  if (isFunction) has(val, 'name') || hide(val, 'name', key);
-  if (O[key] === val) return;
-  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
-  if (O === global) {
-    O[key] = val;
-  } else if (!safe) {
-    delete O[key];
-    hide(O, key, val);
-  } else if (O[key]) {
-    O[key] = val;
-  } else {
-    hide(O, key, val);
-  }
-// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
-})(Function.prototype, TO_STRING, function toString() {
-  return typeof this == 'function' && this[SRC] || $toString.call(this);
-});
-
-
-/***/ }),
-/* 29 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-var METADATA_KEY = __webpack_require__(5);
-function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {
-    var metadataKey = METADATA_KEY.TAGGED;
-    _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);
-}
-exports.tagParameter = tagParameter;
-function tagProperty(annotationTarget, propertyName, metadata) {
-    var metadataKey = METADATA_KEY.TAGGED_PROP;
-    _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);
-}
-exports.tagProperty = tagProperty;
-function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {
-    var paramsOrPropertiesMetadata = {};
-    var isParameterDecorator = (typeof parameterIndex === "number");
-    var key = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;
-    if (isParameterDecorator && propertyName !== undefined) {
-        throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);
-    }
-    if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {
-        paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);
-    }
-    var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];
-    if (!Array.isArray(paramOrPropertyMetadata)) {
-        paramOrPropertyMetadata = [];
-    }
-    else {
-        for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {
-            var m = paramOrPropertyMetadata_1[_i];
-            if (m.key === metadata.key) {
-                throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m.key);
-            }
-        }
-    }
-    paramOrPropertyMetadata.push(metadata);
-    paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;
-    Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);
-}
-function _decorate(decorators, target) {
-    Reflect.decorate(decorators, target);
-}
-function _param(paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); };
-}
-function decorate(decorator, target, parameterIndex) {
-    if (typeof parameterIndex === "number") {
-        _decorate([_param(parameterIndex, decorator)], target);
-    }
-    else if (typeof parameterIndex === "string") {
-        Reflect.decorate([decorator], target, parameterIndex);
-    }
-    else {
-        _decorate([decorator], target);
-    }
-}
-exports.decorate = decorate;
-
-
-/***/ }),
-/* 30 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_1 = __webpack_require__(2);
-var action_1 = __webpack_require__(86);
-var vnode_utils_1 = __webpack_require__(18);
-var dom_helper_1 = __webpack_require__(88);
-var MouseTool = /** @class */ (function () {
-    function MouseTool(actionDispatcher, domHelper, mouseListeners) {
-        if (mouseListeners === void 0) { mouseListeners = []; }
-        this.actionDispatcher = actionDispatcher;
-        this.domHelper = domHelper;
-        this.mouseListeners = mouseListeners;
-    }
-    MouseTool.prototype.register = function (mouseListener) {
-        this.mouseListeners.push(mouseListener);
-    };
-    MouseTool.prototype.deregister = function (mouseListener) {
-        var index = this.mouseListeners.indexOf(mouseListener);
-        if (index >= 0)
-            this.mouseListeners.splice(index, 1);
-    };
-    MouseTool.prototype.getTargetElement = function (model, event) {
-        var target = event.target;
-        var index = model.index;
-        while (target) {
-            if (target.id) {
-                var element = index.getById(this.domHelper.findSModelIdByDOMElement(target));
-                if (element !== undefined)
-                    return element;
-            }
-            target = target.parentNode;
-        }
-        return undefined;
-    };
-    MouseTool.prototype.handleEvent = function (methodName, model, event) {
-        var _this = this;
-        this.focusOnMouseEvent(methodName, model);
-        var element = this.getTargetElement(model, event);
-        if (!element)
-            return;
-        var actions = this.mouseListeners
-            .map(function (listener) { return listener[methodName].apply(listener, [element, event]); })
-            .reduce(function (a, b) { return a.concat(b); });
-        if (actions.length > 0) {
-            event.preventDefault();
-            for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {
-                var actionOrPromise = actions_1[_i];
-                if (action_1.isAction(actionOrPromise)) {
-                    this.actionDispatcher.dispatch(actionOrPromise);
-                }
-                else {
-                    actionOrPromise.then(function (action) {
-                        _this.actionDispatcher.dispatch(action);
-                    });
-                }
-            }
-        }
-    };
-    MouseTool.prototype.focusOnMouseEvent = function (methodName, model) {
-        if (document) {
-            var domElement = document.getElementById(this.domHelper.createUniqueDOMElementId(model));
-            if (methodName === 'mouseDown' && domElement !== null && typeof domElement.focus === 'function')
-                domElement.focus();
-        }
-    };
-    MouseTool.prototype.mouseOver = function (model, event) {
-        this.handleEvent('mouseOver', model, event);
-    };
-    MouseTool.prototype.mouseOut = function (model, event) {
-        this.handleEvent('mouseOut', model, event);
-    };
-    MouseTool.prototype.mouseEnter = function (model, event) {
-        this.handleEvent('mouseEnter', model, event);
-    };
-    MouseTool.prototype.mouseLeave = function (model, event) {
-        this.handleEvent('mouseLeave', model, event);
-    };
-    MouseTool.prototype.mouseDown = function (model, event) {
-        this.handleEvent('mouseDown', model, event);
-    };
-    MouseTool.prototype.mouseMove = function (model, event) {
-        this.handleEvent('mouseMove', model, event);
-    };
-    MouseTool.prototype.mouseUp = function (model, event) {
-        this.handleEvent('mouseUp', model, event);
-    };
-    MouseTool.prototype.wheel = function (model, event) {
-        this.handleEvent('wheel', model, event);
-    };
-    MouseTool.prototype.doubleClick = function (model, event) {
-        this.handleEvent('doubleClick', model, event);
-    };
-    MouseTool.prototype.decorate = function (vnode, element) {
-        if (element instanceof smodel_1.SModelRoot) {
-            vnode_utils_1.on(vnode, 'mouseover', this.mouseOver.bind(this), element);
-            vnode_utils_1.on(vnode, 'mouseout', this.mouseOut.bind(this), element);
-            vnode_utils_1.on(vnode, 'mouseenter', this.mouseEnter.bind(this), element);
-            vnode_utils_1.on(vnode, 'mouseleave', this.mouseLeave.bind(this), element);
-            vnode_utils_1.on(vnode, 'mousedown', this.mouseDown.bind(this), element);
-            vnode_utils_1.on(vnode, 'mouseup', this.mouseUp.bind(this), element);
-            vnode_utils_1.on(vnode, 'mousemove', this.mouseMove.bind(this), element);
-            vnode_utils_1.on(vnode, 'wheel', this.wheel.bind(this), element);
-            vnode_utils_1.on(vnode, 'contextmenu', function (target, event) {
-                event.preventDefault();
-            }, element);
-            vnode_utils_1.on(vnode, 'dblclick', this.doubleClick.bind(this), element);
-        }
-        vnode = this.mouseListeners.reduce(function (vnode, listener) { return listener.decorate(vnode, element); }, vnode);
-        return vnode;
-    };
-    MouseTool.prototype.postUpdate = function () {
-    };
-    MouseTool = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),
-        __param(2, inversify_1.multiInject(types_1.TYPES.MouseListener)), __param(2, inversify_1.optional()),
-        __metadata("design:paramtypes", [Object, dom_helper_1.DOMHelper, Array])
-    ], MouseTool);
-    return MouseTool;
-}());
-exports.MouseTool = MouseTool;
-var PopupMouseTool = /** @class */ (function (_super) {
-    __extends(PopupMouseTool, _super);
-    function PopupMouseTool(actionDispatcher, domHelper, mouseListeners) {
-        if (mouseListeners === void 0) { mouseListeners = []; }
-        var _this = _super.call(this, actionDispatcher, domHelper, mouseListeners) || this;
-        _this.actionDispatcher = actionDispatcher;
-        _this.domHelper = domHelper;
-        _this.mouseListeners = mouseListeners;
-        return _this;
-    }
-    PopupMouseTool = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),
-        __param(2, inversify_1.multiInject(types_1.TYPES.PopupMouseListener)), __param(2, inversify_1.optional()),
-        __metadata("design:paramtypes", [Object, dom_helper_1.DOMHelper, Array])
-    ], PopupMouseTool);
-    return PopupMouseTool;
-}(MouseTool));
-exports.PopupMouseTool = PopupMouseTool;
-var MouseListener = /** @class */ (function () {
-    function MouseListener() {
-    }
-    MouseListener.prototype.mouseOver = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseOut = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseEnter = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseLeave = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseDown = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseMove = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.mouseUp = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.wheel = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.doubleClick = function (target, event) {
-        return [];
-    };
-    MouseListener.prototype.decorate = function (vnode, element) {
-        return vnode;
-    };
-    MouseListener = __decorate([
-        inversify_1.injectable()
-    ], MouseListener);
-    return MouseListener;
-}());
-exports.MouseListener = MouseListener;
-//# sourceMappingURL=mouse-tool.js.map
-
-/***/ }),
-/* 31 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.selectFeature = Symbol('selectFeature');
-function isSelectable(element) {
-    return element.hasFeature(exports.selectFeature);
-}
-exports.isSelectable = isSelectable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 32 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-exports.viewportFeature = Symbol('viewportFeature');
-function isViewport(element) {
-    return element instanceof smodel_1.SModelRoot
-        && element.hasFeature(exports.viewportFeature)
-        && 'zoom' in element
-        && 'scroll' in element;
-}
-exports.isViewport = isViewport;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 33 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = __webpack_require__(163);
-var defined = __webpack_require__(22);
-module.exports = function (it) {
-  return IObject(defined(it));
-};
-
-
-/***/ }),
-/* 34 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-function guid() {
-    function s4() {
-        return Math.floor((Math.random() + 1) * 0x10000)
-            .toString(16)
-            .substring(1);
-    }
-    return s4() + s4() + "-" + s4() + "-" + s4() + "-" +
-        s4() + "-" + s4() + s4() + s4();
-}
-exports.guid = guid;
-
-
-/***/ }),
-/* 35 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_1 = __webpack_require__(2);
-var vnode_utils_1 = __webpack_require__(18);
-var KeyTool = /** @class */ (function () {
-    function KeyTool(actionDispatcher, keyListeners) {
-        if (keyListeners === void 0) { keyListeners = []; }
-        this.actionDispatcher = actionDispatcher;
-        this.keyListeners = keyListeners;
-    }
-    KeyTool.prototype.register = function (keyListener) {
-        this.keyListeners.push(keyListener);
-    };
-    KeyTool.prototype.deregister = function (keyListener) {
-        var index = this.keyListeners.indexOf(keyListener);
-        if (index >= 0)
-            this.keyListeners.splice(index, 1);
-    };
-    KeyTool.prototype.handleEvent = function (methodName, model, event) {
-        var actions = this.keyListeners
-            .map(function (listener) { return listener[methodName].apply(listener, [model, event]); })
-            .reduce(function (a, b) { return a.concat(b); });
-        if (actions.length > 0) {
-            event.preventDefault();
-            this.actionDispatcher.dispatchAll(actions);
-        }
-    };
-    KeyTool.prototype.keyDown = function (element, event) {
-        this.handleEvent('keyDown', element, event);
-    };
-    KeyTool.prototype.focus = function () { };
-    KeyTool.prototype.decorate = function (vnode, element) {
-        if (element instanceof smodel_1.SModelRoot) {
-            vnode_utils_1.on(vnode, 'focus', this.focus.bind(this), element);
-            vnode_utils_1.on(vnode, 'keydown', this.keyDown.bind(this), element);
-        }
-        return vnode;
-    };
-    KeyTool.prototype.postUpdate = function () {
-    };
-    KeyTool = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.multiInject(types_1.TYPES.KeyListener)), __param(1, inversify_1.optional()),
-        __metadata("design:paramtypes", [Object, Array])
-    ], KeyTool);
-    return KeyTool;
-}());
-exports.KeyTool = KeyTool;
-var KeyListener = /** @class */ (function () {
-    function KeyListener() {
-    }
-    KeyListener.prototype.keyDown = function (element, event) {
-        return [];
-    };
-    KeyListener = __decorate([
-        inversify_1.injectable()
-    ], KeyListener);
-    return KeyListener;
-}());
-exports.KeyListener = KeyListener;
-//# sourceMappingURL=key-tool.js.map
-
-/***/ }),
-/* 36 */
-/***/ (function(module, exports) {
-
-var toString = {}.toString;
-
-module.exports = function (it) {
-  return toString.call(it).slice(8, -1);
-};
-
-
-/***/ }),
-/* 37 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// optional / simple context binding
-var aFunction = __webpack_require__(54);
-module.exports = function (fn, that, length) {
-  aFunction(fn);
-  if (that === undefined) return fn;
-  switch (length) {
-    case 1: return function (a) {
-      return fn.call(that, a);
-    };
-    case 2: return function (a, b) {
-      return fn.call(that, a, b);
-    };
-    case 3: return function (a, b, c) {
-      return fn.call(that, a, b, c);
-    };
-  }
-  return function (/* ...args */) {
-    return fn.apply(that, arguments);
-  };
-};
-
-
-/***/ }),
-/* 38 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var registry_1 = __webpack_require__(53);
-var command_1 = __webpack_require__(8);
-/**
- * The action handler registry maps actions to their handlers using the Action.kind property.
- */
-var ActionHandlerRegistry = /** @class */ (function (_super) {
-    __extends(ActionHandlerRegistry, _super);
-    function ActionHandlerRegistry(initializers) {
-        var _this = _super.call(this) || this;
-        initializers.forEach(function (initializer) { return _this.initializeActionHandler(initializer); });
-        return _this;
-    }
-    ActionHandlerRegistry.prototype.registerCommand = function (commandType) {
-        this.register(commandType.KIND, new command_1.CommandActionHandler(commandType));
-    };
-    ActionHandlerRegistry.prototype.initializeActionHandler = function (initializer) {
-        initializer.initialize(this);
-    };
-    ActionHandlerRegistry = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.multiInject(types_1.TYPES.IActionHandlerInitializer)), __param(0, inversify_1.optional()),
-        __metadata("design:paramtypes", [Array])
-    ], ActionHandlerRegistry);
-    return ActionHandlerRegistry;
-}(registry_1.MultiInstanceRegistry));
-exports.ActionHandlerRegistry = ActionHandlerRegistry;
-//# sourceMappingURL=action-handler.js.map
-
-/***/ }),
-/* 39 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var easing_1 = __webpack_require__(129);
-/**
- * An animation uses the rendering loop of the browser to smoothly
- * calculate a transition between two states of a model element.
- */
-var Animation = /** @class */ (function () {
-    function Animation(context, ease) {
-        if (ease === void 0) { ease = easing_1.easeInOut; }
-        this.context = context;
-        this.ease = ease;
-    }
-    Animation.prototype.start = function () {
-        var _this = this;
-        return new Promise(function (resolve, reject) {
-            var start = undefined;
-            var frames = 0;
-            var lambda = function (time) {
-                frames++;
-                var dtime;
-                if (start === undefined) {
-                    start = time;
-                    dtime = 0;
-                }
-                else {
-                    dtime = time - start;
-                }
-                var t = Math.min(1, dtime / _this.context.duration);
-                var current = _this.tween(_this.ease(t), _this.context);
-                _this.context.modelChanged.update(current);
-                if (t === 1) {
-                    _this.context.logger.log(_this, (frames * 1000 / _this.context.duration) + ' fps');
-                    resolve(current);
-                }
-                else {
-                    _this.context.syncer.onNextFrame(lambda);
-                }
-            };
-            if (_this.context.syncer.isAvailable()) {
-                _this.context.syncer.onNextFrame(lambda);
-            }
-            else {
-                var finalModel = _this.tween(1, _this.context);
-                resolve(finalModel);
-            }
-        });
-    };
-    return Animation;
-}());
-exports.Animation = Animation;
-var CompoundAnimation = /** @class */ (function (_super) {
-    __extends(CompoundAnimation, _super);
-    function CompoundAnimation(model, context, components, ease) {
-        if (components === void 0) { components = []; }
-        if (ease === void 0) { ease = easing_1.easeInOut; }
-        var _this = _super.call(this, context, ease) || this;
-        _this.model = model;
-        _this.context = context;
-        _this.components = components;
-        _this.ease = ease;
-        return _this;
-    }
-    CompoundAnimation.prototype.include = function (animation) {
-        this.components.push(animation);
-        return this;
-    };
-    CompoundAnimation.prototype.tween = function (t, context) {
-        for (var _i = 0, _a = this.components; _i < _a.length; _i++) {
-            var a = _a[_i];
-            a.tween(t, context);
-        }
-        return this.model;
-    };
-    return CompoundAnimation;
-}(Animation));
-exports.CompoundAnimation = CompoundAnimation;
-//# sourceMappingURL=animation.js.map
-
-/***/ }),
-/* 40 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var model_1 = __webpack_require__(9);
-var action_dispatcher_1 = __webpack_require__(85);
-var types_1 = __webpack_require__(1);
-var geometry_1 = __webpack_require__(3);
-var inversify_1 = __webpack_require__(0);
-var ExportSvgAction = /** @class */ (function () {
-    function ExportSvgAction(svg) {
-        this.svg = svg;
-        this.kind = ExportSvgAction.KIND;
-    }
-    ExportSvgAction.KIND = 'exportSvg';
-    return ExportSvgAction;
-}());
-exports.ExportSvgAction = ExportSvgAction;
-var SvgExporter = /** @class */ (function () {
-    function SvgExporter(options, actionDispatcher, log) {
-        this.options = options;
-        this.actionDispatcher = actionDispatcher;
-        this.log = log;
-    }
-    SvgExporter.prototype.export = function (root) {
-        if (typeof document !== 'undefined') {
-            var div = document.getElementById(this.options.hiddenDiv);
-            if (div !== null && div.firstElementChild && div.firstElementChild.tagName === 'svg') {
-                var svgElement = div.firstElementChild;
-                var svg = this.createSvg(svgElement, root);
-                this.actionDispatcher.dispatch(new ExportSvgAction(svg));
-            }
-        }
-    };
-    SvgExporter.prototype.createSvg = function (svgElementOrig, root) {
-        var serializer = new XMLSerializer();
-        var svgCopy = serializer.serializeToString(svgElementOrig);
-        var iframe = document.createElement('iframe');
-        document.body.appendChild(iframe);
-        var docCopy = iframe.contentWindow.document;
-        docCopy.open();
-        docCopy.write(svgCopy);
-        docCopy.close();
-        var svgElementNew = docCopy.getElementById(svgElementOrig.id);
-        svgElementNew.removeAttribute('opacity');
-        this.copyStyles(svgElementOrig, svgElementNew, ['width', 'height', 'opacity']);
-        svgElementNew.setAttribute('version', '1.1');
-        var bounds = this.getBounds(root);
-        svgElementNew.setAttribute('viewBox', bounds.x + " " + bounds.y + " " + bounds.width + " " + bounds.height);
-        var svgCode = serializer.serializeToString(svgElementNew);
-        document.body.removeChild(iframe);
-        return svgCode;
-    };
-    SvgExporter.prototype.copyStyles = function (source, target, skipedProperties) {
-        var sourceStyle = getComputedStyle(source);
-        var targetStyle = getComputedStyle(target);
-        var diffStyle = '';
-        for (var i = 0; i < sourceStyle.length; i++) {
-            var key = sourceStyle[i];
-            if (skipedProperties.indexOf(key) === -1) {
-                var value = sourceStyle.getPropertyValue(key);
-                if (targetStyle.getPropertyValue(key) !== value) {
-                    diffStyle += key + ":" + value + ";";
-                }
-            }
-        }
-        if (diffStyle !== '')
-            target.setAttribute('style', diffStyle);
-        // IE doesn't retrun anything on source.children
-        for (var i = 0; i < source.childNodes.length; ++i) {
-            var sourceChild = source.childNodes[i];
-            var targetChild = target.childNodes[i];
-            if (sourceChild instanceof Element)
-                this.copyStyles(sourceChild, targetChild, []);
-        }
-    };
-    SvgExporter.prototype.getBounds = function (root) {
-        var allBounds = [geometry_1.EMPTY_BOUNDS];
-        root.children.forEach(function (element) {
-            if (model_1.isBoundsAware(element)) {
-                allBounds.push(element.bounds);
-            }
-        });
-        return allBounds.reduce(function (one, two) { return geometry_1.combine(one, two); });
-    };
-    SvgExporter = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __param(1, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),
-        __metadata("design:paramtypes", [Object, action_dispatcher_1.ActionDispatcher, Object])
-    ], SvgExporter);
-    return SvgExporter;
-}());
-exports.SvgExporter = SvgExporter;
-//# sourceMappingURL=svg-exporter.js.map
-
-/***/ }),
-/* 41 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.moveFeature = Symbol('moveFeature');
-function isLocateable(element) {
-    return element['position'] !== undefined;
-}
-exports.isLocateable = isLocateable;
-function isMoveable(element) {
-    return element.hasFeature(exports.moveFeature) && isLocateable(element);
-}
-exports.isMoveable = isMoveable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 42 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var command_1 = __webpack_require__(8);
-var animation_1 = __webpack_require__(39);
-var model_1 = __webpack_require__(32);
-var ViewportAction = /** @class */ (function () {
-    function ViewportAction(elementId, newViewport, animate) {
-        this.elementId = elementId;
-        this.newViewport = newViewport;
-        this.animate = animate;
-        this.kind = ViewportCommand.KIND;
-    }
-    return ViewportAction;
-}());
-exports.ViewportAction = ViewportAction;
-var ViewportCommand = /** @class */ (function (_super) {
-    __extends(ViewportCommand, _super);
-    function ViewportCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        _this.newViewport = action.newViewport;
-        return _this;
-    }
-    ViewportCommand.prototype.execute = function (context) {
-        var model = context.root;
-        var element = model.index.getById(this.action.elementId);
-        if (element && model_1.isViewport(element)) {
-            this.element = element;
-            this.oldViewport = {
-                scroll: this.element.scroll,
-                zoom: this.element.zoom,
-            };
-            if (this.action.animate)
-                return new ViewportAnimation(this.element, this.oldViewport, this.newViewport, context).start();
-            else {
-                this.element.scroll = this.newViewport.scroll;
-                this.element.zoom = this.newViewport.zoom;
-            }
-        }
-        return model;
-    };
-    ViewportCommand.prototype.undo = function (context) {
-        return new ViewportAnimation(this.element, this.newViewport, this.oldViewport, context).start();
-    };
-    ViewportCommand.prototype.redo = function (context) {
-        return new ViewportAnimation(this.element, this.oldViewport, this.newViewport, context).start();
-    };
-    ViewportCommand.prototype.merge = function (command, context) {
-        if (!this.action.animate && command instanceof ViewportCommand && this.element === command.element) {
-            this.newViewport = command.newViewport;
-            return true;
-        }
-        return false;
-    };
-    ViewportCommand.KIND = 'viewport';
-    return ViewportCommand;
-}(command_1.MergeableCommand));
-exports.ViewportCommand = ViewportCommand;
-var ViewportAnimation = /** @class */ (function (_super) {
-    __extends(ViewportAnimation, _super);
-    function ViewportAnimation(element, oldViewport, newViewport, context) {
-        var _this = _super.call(this, context) || this;
-        _this.element = element;
-        _this.oldViewport = oldViewport;
-        _this.newViewport = newViewport;
-        _this.context = context;
-        _this.zoomFactor = Math.log(newViewport.zoom / oldViewport.zoom);
-        return _this;
-    }
-    ViewportAnimation.prototype.tween = function (t, context) {
-        this.element.scroll = {
-            x: (1 - t) * this.oldViewport.scroll.x + t * this.newViewport.scroll.x,
-            y: (1 - t) * this.oldViewport.scroll.y + t * this.newViewport.scroll.y
-        };
-        this.element.zoom = this.oldViewport.zoom * Math.exp(t * this.zoomFactor);
-        return context.root;
-    };
-    return ViewportAnimation;
-}(animation_1.Animation));
-exports.ViewportAnimation = ViewportAnimation;
-//# sourceMappingURL=viewport.js.map
-
-/***/ }),
-/* 43 */
-/***/ (function(module, exports) {
-
-module.exports = {};
-
-
-/***/ }),
-/* 44 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var def = __webpack_require__(27).f;
-var has = __webpack_require__(25);
-var TAG = __webpack_require__(4)('toStringTag');
-
-module.exports = function (it, tag, stat) {
-  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
-};
-
-
-/***/ }),
-/* 45 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.15 ToLength
-var toInteger = __webpack_require__(59);
-var min = Math.min;
-module.exports = function (it) {
-  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-};
-
-
-/***/ }),
-/* 46 */
-/***/ (function(module, exports) {
-
-var id = 0;
-var px = Math.random();
-module.exports = function (key) {
-  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-};
-
-
-/***/ }),
-/* 47 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-function getServiceIdentifierAsString(serviceIdentifier) {
-    if (typeof serviceIdentifier === "function") {
-        var _serviceIdentifier = serviceIdentifier;
-        return _serviceIdentifier.name;
-    }
-    else if (typeof serviceIdentifier === "symbol") {
-        return serviceIdentifier.toString();
-    }
-    else {
-        var _serviceIdentifier = serviceIdentifier;
-        return _serviceIdentifier;
-    }
-}
-exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
-function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
-    var registeredBindingsList = "";
-    var registeredBindings = getBindings(container, serviceIdentifier);
-    if (registeredBindings.length !== 0) {
-        registeredBindingsList = "\nRegistered bindings:";
-        registeredBindings.forEach(function (binding) {
-            var name = "Object";
-            if (binding.implementationType !== null) {
-                name = getFunctionName(binding.implementationType);
-            }
-            registeredBindingsList = registeredBindingsList + "\n " + name;
-            if (binding.constraint.metaData) {
-                registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
-            }
-        });
-    }
-    return registeredBindingsList;
-}
-exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
-function alreadyDependencyChain(request, serviceIdentifier) {
-    if (request.parentRequest === null) {
-        return false;
-    }
-    else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
-        return true;
-    }
-    else {
-        return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
-    }
-}
-function dependencyChainToString(request) {
-    function _createStringArr(req, result) {
-        if (result === void 0) { result = []; }
-        var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
-        result.push(serviceIdentifier);
-        if (req.parentRequest !== null) {
-            return _createStringArr(req.parentRequest, result);
-        }
-        return result;
-    }
-    var stringArr = _createStringArr(request);
-    return stringArr.reverse().join(" --> ");
-}
-function circularDependencyToException(request) {
-    request.childRequests.forEach(function (childRequest) {
-        if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
-            var services = dependencyChainToString(childRequest);
-            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
-        }
-        else {
-            circularDependencyToException(childRequest);
-        }
-    });
-}
-exports.circularDependencyToException = circularDependencyToException;
-function listMetadataForTarget(serviceIdentifierString, target) {
-    if (target.isTagged() || target.isNamed()) {
-        var m_1 = "";
-        var namedTag = target.getNamedTag();
-        var otherTags = target.getCustomTags();
-        if (namedTag !== null) {
-            m_1 += namedTag.toString() + "\n";
-        }
-        if (otherTags !== null) {
-            otherTags.forEach(function (tag) {
-                m_1 += tag.toString() + "\n";
-            });
-        }
-        return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
-    }
-    else {
-        return " " + serviceIdentifierString;
-    }
-}
-exports.listMetadataForTarget = listMetadataForTarget;
-function getFunctionName(v) {
-    if (v.name) {
-        return v.name;
-    }
-    else {
-        var name_1 = v.toString();
-        var match = name_1.match(/^function\s*([^\s(]+)/);
-        return match ? match[1] : "Anonymous function: " + name_1;
-    }
-}
-exports.getFunctionName = getFunctionName;
-
-
-/***/ }),
-/* 48 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var AnimationFrameSyncer = /** @class */ (function () {
-    function AnimationFrameSyncer() {
-        this.tasks = [];
-        this.endTasks = [];
-        this.triggered = false;
-    }
-    AnimationFrameSyncer.prototype.isAvailable = function () {
-        return typeof requestAnimationFrame === "function";
-    };
-    AnimationFrameSyncer.prototype.onNextFrame = function (task) {
-        this.tasks.push(task);
-        this.trigger();
-    };
-    AnimationFrameSyncer.prototype.onEndOfNextFrame = function (task) {
-        this.endTasks.push(task);
-        this.trigger();
-    };
-    AnimationFrameSyncer.prototype.trigger = function () {
-        var _this = this;
-        if (!this.triggered) {
-            this.triggered = true;
-            if (this.isAvailable())
-                requestAnimationFrame(function (time) { return _this.run(time); });
-            else
-                setTimeout(function (time) { return _this.run(time); });
-        }
-    };
-    AnimationFrameSyncer.prototype.run = function (time) {
-        var tasks = this.tasks;
-        var endTasks = this.endTasks;
-        this.triggered = false;
-        this.tasks = [];
-        this.endTasks = [];
-        tasks.forEach(function (task) { return task.call(undefined, time); });
-        endTasks.forEach(function (task) { return task.call(undefined, time); });
-    };
-    AnimationFrameSyncer = __decorate([
-        inversify_1.injectable()
-    ], AnimationFrameSyncer);
-    return AnimationFrameSyncer;
-}());
-exports.AnimationFrameSyncer = AnimationFrameSyncer;
-//# sourceMappingURL=animation-frame-syncer.js.map
-
-/***/ }),
-/* 49 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var geometry_1 = __webpack_require__(3);
-var command_1 = __webpack_require__(8);
-var initialize_canvas_1 = __webpack_require__(60);
-/**
- * Sent from the client to the model source (e.g. a DiagramServer) in order to request a model. Usually this
- * is the first message that is sent to the source, so it is also used to initiate the communication.
- * The response is a SetModelAction or an UpdateModelAction.
- */
-var RequestModelAction = /** @class */ (function () {
-    function RequestModelAction(options) {
-        this.options = options;
-        this.kind = RequestModelAction.KIND;
-    }
-    RequestModelAction.KIND = 'requestModel';
-    return RequestModelAction;
-}());
-exports.RequestModelAction = RequestModelAction;
-/**
- * Sent from the model source to the client in order to set the model. If a model is already present, it is replaced.
- */
-var SetModelAction = /** @class */ (function () {
-    function SetModelAction(newRoot, isInitial) {
-        if (isInitial === void 0) { isInitial = false; }
-        this.newRoot = newRoot;
-        this.isInitial = isInitial;
-        this.kind = SetModelCommand.KIND;
-    }
-    return SetModelAction;
-}());
-exports.SetModelAction = SetModelAction;
-var SetModelCommand = /** @class */ (function (_super) {
-    __extends(SetModelCommand, _super);
-    function SetModelCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        return _this;
-    }
-    SetModelCommand.prototype.execute = function (context) {
-        this.oldRoot = context.modelFactory.createRoot(context.root);
-        this.newRoot = context.modelFactory.createRoot(this.action.newRoot);
-        if (geometry_1.isValidDimension(this.oldRoot.canvasBounds)) {
-            this.newRoot.canvasBounds = this.oldRoot.canvasBounds;
-        }
-        return this.newRoot;
-    };
-    SetModelCommand.prototype.undo = function (context) {
-        return this.oldRoot;
-    };
-    SetModelCommand.prototype.redo = function (context) {
-        return this.newRoot;
-    };
-    Object.defineProperty(SetModelCommand.prototype, "blockUntilActionKind", {
-        get: function () {
-            if (this.action.isInitial)
-                return initialize_canvas_1.InitializeCanvasBoundsCommand.KIND;
-            else
-                return undefined;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SetModelCommand.KIND = 'setModel';
-    SetModelCommand = __decorate([
-        inversify_1.injectable(),
-        __metadata("design:paramtypes", [SetModelAction])
-    ], SetModelCommand);
-    return SetModelCommand;
-}(command_1.Command));
-exports.SetModelCommand = SetModelCommand;
-//# sourceMappingURL=set-model.js.map
-
-/***/ }),
-/* 50 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var command_1 = __webpack_require__(8);
-var model_1 = __webpack_require__(9);
-/**
- * Sent from the model source (e.g. a DiagramServer) to the client to update the bounds of some
- * (or all) model elements.
- */
-var SetBoundsAction = /** @class */ (function () {
-    function SetBoundsAction(bounds) {
-        this.bounds = bounds;
-        this.kind = SetBoundsCommand.KIND;
-    }
-    return SetBoundsAction;
-}());
-exports.SetBoundsAction = SetBoundsAction;
-/**
- * Sent from the model source to the client to request bounds for the given model. The model is
- * rendered invisibly so the bounds can derived from the DOM. The response is a ComputedBoundsAction.
- * This hidden rendering round-trip is necessary if the client is responsible for parts of the layout
- * (see `needsClientLayout` viewer option).
- */
-var RequestBoundsAction = /** @class */ (function () {
-    function RequestBoundsAction(newRoot) {
-        this.newRoot = newRoot;
-        this.kind = RequestBoundsCommand.KIND;
-    }
-    return RequestBoundsAction;
-}());
-exports.RequestBoundsAction = RequestBoundsAction;
-/**
- * Sent from the client to the model source (e.g. a DiagramServer) to transmit the result of bounds
- * computation as a response to a RequestBoundsAction. If the server is responsible for parts of
- * the layout (see `needsServerLayout` viewer option), it can do so after applying the computed bounds
- * received with this action. Otherwise there is no need to send the computed bounds to the server,
- * so they can be processed locally by the client.
- */
-var ComputedBoundsAction = /** @class */ (function () {
-    function ComputedBoundsAction(bounds, revision, alignments) {
-        this.bounds = bounds;
-        this.revision = revision;
-        this.alignments = alignments;
-        this.kind = ComputedBoundsAction.KIND;
-    }
-    ComputedBoundsAction.KIND = 'computedBounds';
-    return ComputedBoundsAction;
-}());
-exports.ComputedBoundsAction = ComputedBoundsAction;
-var SetBoundsCommand = /** @class */ (function (_super) {
-    __extends(SetBoundsCommand, _super);
-    function SetBoundsCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        _this.bounds = [];
-        return _this;
-    }
-    SetBoundsCommand.prototype.execute = function (context) {
-        var _this = this;
-        this.action.bounds.forEach(function (b) {
-            var element = context.root.index.getById(b.elementId);
-            if (element && model_1.isBoundsAware(element)) {
-                _this.bounds.push({
-                    element: element,
-                    oldBounds: element.bounds,
-                    newBounds: b.newBounds,
-                });
-            }
-        });
-        return this.redo(context);
-    };
-    SetBoundsCommand.prototype.undo = function (context) {
-        this.bounds.forEach(function (b) { return b.element.bounds = b.oldBounds; });
-        return context.root;
-    };
-    SetBoundsCommand.prototype.redo = function (context) {
-        this.bounds.forEach(function (b) { return b.element.bounds = b.newBounds; });
-        return context.root;
-    };
-    SetBoundsCommand.KIND = 'setBounds';
-    return SetBoundsCommand;
-}(command_1.SystemCommand));
-exports.SetBoundsCommand = SetBoundsCommand;
-var RequestBoundsCommand = /** @class */ (function (_super) {
-    __extends(RequestBoundsCommand, _super);
-    function RequestBoundsCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        return _this;
-    }
-    RequestBoundsCommand.prototype.execute = function (context) {
-        return context.modelFactory.createRoot(this.action.newRoot);
-    };
-    Object.defineProperty(RequestBoundsCommand.prototype, "blockUntilActionKind", {
-        get: function () {
-            return ComputedBoundsAction.KIND;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    RequestBoundsCommand.KIND = 'requestBounds';
-    return RequestBoundsCommand;
-}(command_1.HiddenCommand));
-exports.RequestBoundsCommand = RequestBoundsCommand;
-//# sourceMappingURL=bounds-manipulation.js.map
-
-/***/ }),
-/* 51 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.fadeFeature = Symbol('fadeFeature');
-function isFadeable(element) {
-    return element.hasFeature(exports.fadeFeature) && element['opacity'] !== undefined;
-}
-exports.isFadeable = isFadeable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 52 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var mouse_tool_1 = __webpack_require__(30);
-var command_1 = __webpack_require__(8);
-var smodel_factory_1 = __webpack_require__(17);
-var geometry_1 = __webpack_require__(3);
-var key_tool_1 = __webpack_require__(35);
-var smodel_utils_1 = __webpack_require__(13);
-var model_1 = __webpack_require__(9);
-var model_2 = __webpack_require__(63);
-/**
- * Triggered when the user puts the mouse pointer over an element.
- */
-var HoverFeedbackAction = /** @class */ (function () {
-    function HoverFeedbackAction(mouseoverElement, mouseIsOver) {
-        this.mouseoverElement = mouseoverElement;
-        this.mouseIsOver = mouseIsOver;
-        this.kind = HoverFeedbackCommand.KIND;
-    }
-    return HoverFeedbackAction;
-}());
-exports.HoverFeedbackAction = HoverFeedbackAction;
-var HoverFeedbackCommand = /** @class */ (function (_super) {
-    __extends(HoverFeedbackCommand, _super);
-    function HoverFeedbackCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        return _this;
-    }
-    HoverFeedbackCommand.prototype.execute = function (context) {
-        var model = context.root;
-        var modelElement = model.index.getById(this.action.mouseoverElement);
-        if (modelElement) {
-            if (model_2.isHoverable(modelElement)) {
-                modelElement.hoverFeedback = this.action.mouseIsOver;
-            }
-        }
-        return this.redo(context);
-    };
-    HoverFeedbackCommand.prototype.undo = function (context) {
-        return context.root;
-    };
-    HoverFeedbackCommand.prototype.redo = function (context) {
-        return context.root;
-    };
-    HoverFeedbackCommand.KIND = 'hoverFeedback';
-    return HoverFeedbackCommand;
-}(command_1.Command));
-exports.HoverFeedbackCommand = HoverFeedbackCommand;
-/**
- * Triggered when the user hovers the mouse pointer over an element to get a popup with details on
- * that element. This action is sent from the client to the model source, e.g. a DiagramServer.
- * The response is a SetPopupModelAction.
- */
-var RequestPopupModelAction = /** @class */ (function () {
-    function RequestPopupModelAction(elementId, bounds) {
-        this.elementId = elementId;
-        this.bounds = bounds;
-        this.kind = RequestPopupModelAction.KIND;
-    }
-    RequestPopupModelAction.KIND = 'requestPopupModel';
-    return RequestPopupModelAction;
-}());
-exports.RequestPopupModelAction = RequestPopupModelAction;
-/**
- * Sent from the model source to the client to display a popup in response to a RequestPopupModelAction.
- * This action can also be used to remove any existing popup by choosing EMPTY_ROOT as root element.
- */
-var SetPopupModelAction = /** @class */ (function () {
-    function SetPopupModelAction(newRoot) {
-        this.newRoot = newRoot;
-        this.kind = SetPopupModelCommand.KIND;
-    }
-    return SetPopupModelAction;
-}());
-exports.SetPopupModelAction = SetPopupModelAction;
-var SetPopupModelCommand = /** @class */ (function (_super) {
-    __extends(SetPopupModelCommand, _super);
-    function SetPopupModelCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        return _this;
-    }
-    SetPopupModelCommand.prototype.execute = function (context) {
-        this.oldRoot = context.root;
-        this.newRoot = context.modelFactory.createRoot(this.action.newRoot);
-        return this.newRoot;
-    };
-    SetPopupModelCommand.prototype.undo = function (context) {
-        return this.oldRoot;
-    };
-    SetPopupModelCommand.prototype.redo = function (context) {
-        return this.newRoot;
-    };
-    SetPopupModelCommand.KIND = 'setPopupModel';
-    return SetPopupModelCommand;
-}(command_1.PopupCommand));
-exports.SetPopupModelCommand = SetPopupModelCommand;
-var AbstractHoverMouseListener = /** @class */ (function (_super) {
-    __extends(AbstractHoverMouseListener, _super);
-    function AbstractHoverMouseListener(options, state) {
-        var _this = _super.call(this) || this;
-        _this.options = options;
-        _this.state = state;
-        return _this;
-    }
-    AbstractHoverMouseListener.prototype.stopMouseOutTimer = function () {
-        if (this.state.mouseOutTimer !== undefined) {
-            window.clearTimeout(this.state.mouseOutTimer);
-            this.state.mouseOutTimer = undefined;
-        }
-    };
-    AbstractHoverMouseListener.prototype.startMouseOutTimer = function () {
-        var _this = this;
-        this.stopMouseOutTimer();
-        return new Promise(function (resolve) {
-            _this.state.mouseOutTimer = window.setTimeout(function () {
-                _this.state.popupOpen = false;
-                _this.state.previousPopupElement = undefined;
-                resolve(new SetPopupModelAction({ type: smodel_factory_1.EMPTY_ROOT.type, id: smodel_factory_1.EMPTY_ROOT.id }));
-            }, _this.options.popupCloseDelay);
-        });
-    };
-    AbstractHoverMouseListener.prototype.stopMouseOverTimer = function () {
-        if (this.state.mouseOverTimer !== undefined) {
-            window.clearTimeout(this.state.mouseOverTimer);
-            this.state.mouseOverTimer = undefined;
-        }
-    };
-    AbstractHoverMouseListener = __decorate([
-        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __param(1, inversify_1.inject(types_1.TYPES.HoverState)),
-        __metadata("design:paramtypes", [Object, Object])
-    ], AbstractHoverMouseListener);
-    return AbstractHoverMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.AbstractHoverMouseListener = AbstractHoverMouseListener;
-var HoverMouseListener = /** @class */ (function (_super) {
-    __extends(HoverMouseListener, _super);
-    function HoverMouseListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    HoverMouseListener.prototype.calculatePopupPosition = function (target, mousePosition) {
-        var offset = { x: -5, y: 20 };
-        var maxDist = 150;
-        var targetBounds = model_1.getAbsoluteBounds(target);
-        var canvasBounds = target.root.canvasBounds;
-        var boundsInWindow = geometry_1.translate(targetBounds, canvasBounds);
-        var distRight = boundsInWindow.x + boundsInWindow.width - mousePosition.x;
-        var distBottom = boundsInWindow.y + boundsInWindow.height - mousePosition.y;
-        if (distBottom <= distRight && distBottom < maxDist) {
-            offset = { x: -5, y: Math.round(distBottom + 5) };
-        }
-        else if (distRight <= distBottom && distRight < maxDist) {
-            offset = { x: Math.round(distRight + 5), y: -5 };
-        }
-        var leftPopupPosition = mousePosition.x + offset.x;
-        var canvasRightBorderPosition = canvasBounds.x + canvasBounds.width;
-        if (leftPopupPosition > canvasRightBorderPosition) {
-            leftPopupPosition = canvasRightBorderPosition;
-        }
-        var topPopupPosition = mousePosition.y + offset.y;
-        var canvasBottomBorderPosition = canvasBounds.y + canvasBounds.height;
-        if (topPopupPosition > canvasBottomBorderPosition) {
-            topPopupPosition = canvasBottomBorderPosition;
-        }
-        return { x: leftPopupPosition, y: topPopupPosition };
-    };
-    HoverMouseListener.prototype.startMouseOverTimer = function (target, event) {
-        var _this = this;
-        this.stopMouseOverTimer();
-        return new Promise(function (resolve) {
-            _this.state.mouseOverTimer = window.setTimeout(function () {
-                var popupPosition = _this.calculatePopupPosition(target, { x: event.pageX, y: event.pageY });
-                resolve(new RequestPopupModelAction(target.id, {
-                    x: popupPosition.x,
-                    y: popupPosition.y,
-                    width: -1,
-                    height: -1
-                }));
-                _this.state.popupOpen = true;
-                _this.state.previousPopupElement = target;
-            }, _this.options.popupOpenDelay);
-        });
-    };
-    HoverMouseListener.prototype.mouseOver = function (target, event) {
-        var state = this.state;
-        var result = [];
-        var popupTarget = smodel_utils_1.findParent(target, model_2.hasPopupFeature);
-        if (state.popupOpen && (popupTarget === undefined ||
-            state.previousPopupElement !== undefined && state.previousPopupElement.id !== popupTarget.id)) {
-            result.push(this.startMouseOutTimer());
-        }
-        else {
-            this.stopMouseOverTimer();
-            this.stopMouseOutTimer();
-        }
-        if (popupTarget !== undefined &&
-            (state.previousPopupElement === undefined || state.previousPopupElement.id !== popupTarget.id)) {
-            result.push(this.startMouseOverTimer(popupTarget, event));
-        }
-        var hoverTarget = smodel_utils_1.findParentByFeature(target, model_2.isHoverable);
-        if (hoverTarget !== undefined)
-            result.push(new HoverFeedbackAction(hoverTarget.id, true));
-        return result;
-    };
-    HoverMouseListener.prototype.mouseOut = function (target, event) {
-        var result = [];
-        if (!this.state.popupOpen)
-            this.stopMouseOverTimer();
-        var hoverTarget = smodel_utils_1.findParentByFeature(target, model_2.isHoverable);
-        if (hoverTarget !== undefined)
-            result.push(new HoverFeedbackAction(hoverTarget.id, false));
-        return result;
-    };
-    HoverMouseListener.prototype.mouseMove = function (target, event) {
-        var popupTarget = smodel_utils_1.findParent(target, model_2.hasPopupFeature);
-        return this.state.popupOpen || popupTarget === undefined ? [] : [this.startMouseOverTimer(popupTarget, event)];
-    };
-    HoverMouseListener = __decorate([
-        inversify_1.injectable()
-    ], HoverMouseListener);
-    return HoverMouseListener;
-}(AbstractHoverMouseListener));
-exports.HoverMouseListener = HoverMouseListener;
-var PopupHoverMouseListener = /** @class */ (function (_super) {
-    __extends(PopupHoverMouseListener, _super);
-    function PopupHoverMouseListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    PopupHoverMouseListener.prototype.mouseOut = function (target, event) {
-        return [this.startMouseOutTimer()];
-    };
-    PopupHoverMouseListener.prototype.mouseOver = function (target, event) {
-        this.stopMouseOutTimer();
-        this.stopMouseOverTimer();
-        return [];
-    };
-    PopupHoverMouseListener = __decorate([
-        inversify_1.injectable()
-    ], PopupHoverMouseListener);
-    return PopupHoverMouseListener;
-}(AbstractHoverMouseListener));
-exports.PopupHoverMouseListener = PopupHoverMouseListener;
-var HoverKeyListener = /** @class */ (function (_super) {
-    __extends(HoverKeyListener, _super);
-    function HoverKeyListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    HoverKeyListener.prototype.keyDown = function (element, event) {
-        if (event.keyCode === 27) {
-            return [new SetPopupModelAction({ type: smodel_factory_1.EMPTY_ROOT.type, id: smodel_factory_1.EMPTY_ROOT.id })];
-        }
-        return [];
-    };
-    return HoverKeyListener;
-}(key_tool_1.KeyListener));
-exports.HoverKeyListener = HoverKeyListener;
-//# sourceMappingURL=hover.js.map
-
-/***/ }),
-/* 53 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var ProviderRegistry = /** @class */ (function () {
-    function ProviderRegistry() {
-        this.elements = new Map;
-    }
-    ProviderRegistry.prototype.register = function (key, cstr) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        if (this.hasKey(key))
-            throw new Error('Key is already registered: ' + key);
-        this.elements.set(key, cstr);
-    };
-    ProviderRegistry.prototype.deregister = function (key) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        this.elements.delete(key);
-    };
-    ProviderRegistry.prototype.hasKey = function (key) {
-        return this.elements.has(key);
-    };
-    ProviderRegistry.prototype.get = function (key, arg) {
-        var existingCstr = this.elements.get(key);
-        if (existingCstr)
-            return new existingCstr(arg);
-        else
-            return this.missing(key, arg);
-    };
-    ProviderRegistry.prototype.missing = function (key, arg) {
-        throw new Error('Unknown registry key: ' + key);
-    };
-    ProviderRegistry = __decorate([
-        inversify_1.injectable()
-    ], ProviderRegistry);
-    return ProviderRegistry;
-}());
-exports.ProviderRegistry = ProviderRegistry;
-var InstanceRegistry = /** @class */ (function () {
-    function InstanceRegistry() {
-        this.elements = new Map;
-    }
-    InstanceRegistry.prototype.register = function (key, instance) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        if (this.hasKey(key))
-            throw new Error('Key is already registered: ' + key);
-        this.elements.set(key, instance);
-    };
-    InstanceRegistry.prototype.deregister = function (key) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        this.elements.delete(key);
-    };
-    InstanceRegistry.prototype.hasKey = function (key) {
-        return this.elements.has(key);
-    };
-    InstanceRegistry.prototype.get = function (key) {
-        var existingInstance = this.elements.get(key);
-        if (existingInstance)
-            return existingInstance;
-        else
-            return this.missing(key);
-    };
-    InstanceRegistry.prototype.missing = function (key) {
-        throw new Error('Unknown registry key: ' + key);
-    };
-    InstanceRegistry = __decorate([
-        inversify_1.injectable()
-    ], InstanceRegistry);
-    return InstanceRegistry;
-}());
-exports.InstanceRegistry = InstanceRegistry;
-var MultiInstanceRegistry = /** @class */ (function () {
-    function MultiInstanceRegistry() {
-        this.elements = new Map;
-    }
-    MultiInstanceRegistry.prototype.register = function (key, instance) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        var instances = this.elements.get(key);
-        if (instances !== undefined)
-            instances.push(instance);
-        else
-            this.elements.set(key, [instance]);
-    };
-    MultiInstanceRegistry.prototype.deregisterAll = function (key) {
-        if (key === undefined)
-            throw new Error('Key is undefined');
-        this.elements.delete(key);
-    };
-    MultiInstanceRegistry.prototype.get = function (key) {
-        var existingInstances = this.elements.get(key);
-        if (existingInstances !== undefined)
-            return existingInstances;
-        else
-            return [];
-    };
-    MultiInstanceRegistry = __decorate([
-        inversify_1.injectable()
-    ], MultiInstanceRegistry);
-    return MultiInstanceRegistry;
-}());
-exports.MultiInstanceRegistry = MultiInstanceRegistry;
-//# sourceMappingURL=registry.js.map
-
-/***/ }),
-/* 54 */
-/***/ (function(module, exports) {
-
-module.exports = function (it) {
-  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
-  return it;
-};
-
-
-/***/ }),
-/* 55 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var hide = __webpack_require__(26);
-var redefine = __webpack_require__(28);
-var fails = __webpack_require__(24);
-var defined = __webpack_require__(22);
-var wks = __webpack_require__(4);
-
-module.exports = function (KEY, length, exec) {
-  var SYMBOL = wks(KEY);
-  var fns = exec(defined, SYMBOL, ''[KEY]);
-  var strfn = fns[0];
-  var rxfn = fns[1];
-  if (fails(function () {
-    var O = {};
-    O[SYMBOL] = function () { return 7; };
-    return ''[KEY](O) != 7;
-  })) {
-    redefine(String.prototype, KEY, strfn);
-    hide(RegExp.prototype, SYMBOL, length == 2
-      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
-      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
-      ? function (string, arg) { return rxfn.call(string, this, arg); }
-      // 21.2.5.6 RegExp.prototype[@@match](string)
-      // 21.2.5.9 RegExp.prototype[@@search](string)
-      : function (string) { return rxfn.call(string, this); }
-    );
-  }
-};
-
-
-/***/ }),
-/* 56 */
-/***/ (function(module, exports) {
-
-module.exports = false;
-
-
-/***/ }),
-/* 57 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = __webpack_require__(113);
-var enumBugKeys = __webpack_require__(69);
-
-module.exports = Object.keys || function keys(O) {
-  return $keys(O, enumBugKeys);
-};
-
-
-/***/ }),
-/* 58 */
-/***/ (function(module, exports) {
-
-module.exports = function (bitmap, value) {
-  return {
-    enumerable: !(bitmap & 1),
-    configurable: !(bitmap & 2),
-    writable: !(bitmap & 4),
-    value: value
-  };
-};
-
-
-/***/ }),
-/* 59 */
-/***/ (function(module, exports) {
-
-// 7.1.4 ToInteger
-var ceil = Math.ceil;
-var floor = Math.floor;
-module.exports = function (it) {
-  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-};
-
-
-/***/ }),
-/* 60 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var geometry_1 = __webpack_require__(3);
-var smodel_1 = __webpack_require__(2);
-var command_1 = __webpack_require__(8);
-/**
- * Grabs the bounds from the root element in page coordinates and fires a
- * InitializeCanvasBoundsAction. This size is needed for other actions such
- * as FitToScreenAction.
- */
-var CanvasBoundsInitializer = /** @class */ (function () {
-    function CanvasBoundsInitializer(actionDispatcher) {
-        this.actionDispatcher = actionDispatcher;
-    }
-    CanvasBoundsInitializer.prototype.decorate = function (vnode, element) {
-        if (element instanceof smodel_1.SModelRoot && !geometry_1.isValidDimension(element.canvasBounds)) {
-            this.rootAndVnode = [element, vnode];
-        }
-        return vnode;
-    };
-    CanvasBoundsInitializer.prototype.postUpdate = function () {
-        if (this.rootAndVnode !== undefined) {
-            var domElement = this.rootAndVnode[1].elm;
-            var oldBounds = this.rootAndVnode[0].canvasBounds;
-            if (domElement !== undefined) {
-                var newBounds = this.getBoundsInPage(domElement);
-                if (!(geometry_1.almostEquals(newBounds.x, oldBounds.x)
-                    && geometry_1.almostEquals(newBounds.y, oldBounds.y)
-                    && geometry_1.almostEquals(newBounds.width, oldBounds.width)
-                    && geometry_1.almostEquals(newBounds.height, oldBounds.width)))
-                    this.actionDispatcher.dispatch(new InitializeCanvasBoundsAction(newBounds));
-            }
-            this.rootAndVnode = undefined;
-        }
-    };
-    CanvasBoundsInitializer.prototype.getBoundsInPage = function (element) {
-        var bounds = element.getBoundingClientRect();
-        var scroll = typeof window !== 'undefined' ? { x: window.scrollX, y: window.scrollY } : geometry_1.ORIGIN_POINT;
-        return {
-            x: bounds.left + scroll.x,
-            y: bounds.top + scroll.y,
-            width: bounds.width,
-            height: bounds.height
-        };
-    };
-    CanvasBoundsInitializer = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __metadata("design:paramtypes", [Object])
-    ], CanvasBoundsInitializer);
-    return CanvasBoundsInitializer;
-}());
-exports.CanvasBoundsInitializer = CanvasBoundsInitializer;
-var InitializeCanvasBoundsAction = /** @class */ (function () {
-    function InitializeCanvasBoundsAction(newCanvasBounds) {
-        this.newCanvasBounds = newCanvasBounds;
-        this.kind = InitializeCanvasBoundsCommand.KIND;
-    }
-    return InitializeCanvasBoundsAction;
-}());
-exports.InitializeCanvasBoundsAction = InitializeCanvasBoundsAction;
-var InitializeCanvasBoundsCommand = /** @class */ (function (_super) {
-    __extends(InitializeCanvasBoundsCommand, _super);
-    function InitializeCanvasBoundsCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        return _this;
-    }
-    InitializeCanvasBoundsCommand.prototype.execute = function (context) {
-        this.oldCanvasBounds = context.root.canvasBounds;
-        this.newCanvasBounds = this.action.newCanvasBounds;
-        context.root.canvasBounds = this.newCanvasBounds;
-        return context.root;
-    };
-    InitializeCanvasBoundsCommand.prototype.undo = function (context) {
-        return context.root;
-    };
-    InitializeCanvasBoundsCommand.prototype.redo = function (context) {
-        return context.root;
-    };
-    InitializeCanvasBoundsCommand.KIND = 'initializeCanvasBounds';
-    return InitializeCanvasBoundsCommand;
-}(command_1.SystemCommand));
-exports.InitializeCanvasBoundsCommand = InitializeCanvasBoundsCommand;
-//# sourceMappingURL=initialize-canvas.js.map
-
-/***/ }),
-/* 61 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
-* Copyright (C) 2017 TypeFox and others.
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-*/
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_utils_1 = __webpack_require__(13);
-var model_1 = __webpack_require__(93);
-var inversify_1 = __webpack_require__(0);
-/**
- * Sent from the client to the model source to recalculate a diagram when elements
- * are collapsed/expanded by the client.
- */
-var CollapseExpandAction = /** @class */ (function () {
-    function CollapseExpandAction(expandIds, collapseIds) {
-        this.expandIds = expandIds;
-        this.collapseIds = collapseIds;
-        this.kind = CollapseExpandAction.KIND;
-    }
-    CollapseExpandAction.KIND = 'collapseExpand';
-    return CollapseExpandAction;
-}());
-exports.CollapseExpandAction = CollapseExpandAction;
-/**
- * Programmatic action for expanding or collapsing all elements.
- */
-var CollapseExpandAllAction = /** @class */ (function () {
-    /**
-     * If `expand` is true, all elements are expanded, othewise they are collapsed.
-     */
-    function CollapseExpandAllAction(expand) {
-        if (expand === void 0) { expand = true; }
-        this.expand = expand;
-        this.kind = CollapseExpandAllAction.KIND;
-    }
-    CollapseExpandAllAction.KIND = 'collapseExpandAll';
-    return CollapseExpandAllAction;
-}());
-exports.CollapseExpandAllAction = CollapseExpandAllAction;
-var ExpandButtonHandler = /** @class */ (function () {
-    function ExpandButtonHandler() {
-    }
-    ExpandButtonHandler.prototype.buttonPressed = function (button) {
-        var expandable = smodel_utils_1.findParentByFeature(button, model_1.isExpandable);
-        if (expandable !== undefined) {
-            return [new CollapseExpandAction(expandable.expanded ? [] : [expandable.id], expandable.expanded ? [expandable.id] : [])];
-        }
-        else {
-            return [];
-        }
-    };
-    ExpandButtonHandler.TYPE = 'button:expand';
-    ExpandButtonHandler = __decorate([
-        inversify_1.injectable()
-    ], ExpandButtonHandler);
-    return ExpandButtonHandler;
-}());
-exports.ExpandButtonHandler = ExpandButtonHandler;
-//# sourceMappingURL=expand.js.map
-
-/***/ }),
-/* 62 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.exportFeature = Symbol('exportFeature');
-function isExportable(element) {
-    return element.hasFeature(exports.exportFeature) && element['export'] !== undefined;
-}
-exports.isExportable = isExportable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 63 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.hoverFeedbackFeature = Symbol('hoverFeedbackFeature');
-function isHoverable(element) {
-    return element.hasFeature(exports.hoverFeedbackFeature);
-}
-exports.isHoverable = isHoverable;
-exports.popupFeature = Symbol('popupFeature');
-function hasPopupFeature(element) {
-    return element.hasFeature(exports.popupFeature);
-}
-exports.hasPopupFeature = hasPopupFeature;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 64 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-var smodel_2 = __webpack_require__(2);
-var smodel_utils_1 = __webpack_require__(13);
-var command_1 = __webpack_require__(8);
-var animation_1 = __webpack_require__(39);
-var mouse_tool_1 = __webpack_require__(30);
-var vnode_utils_1 = __webpack_require__(18);
-var model_1 = __webpack_require__(32);
-var model_2 = __webpack_require__(31);
-var model_3 = __webpack_require__(41);
-var model_4 = __webpack_require__(9);
-var inversify_1 = __webpack_require__(0);
-var MoveAction = /** @class */ (function () {
-    function MoveAction(moves, animate) {
-        if (animate === void 0) { animate = true; }
-        this.moves = moves;
-        this.animate = animate;
-        this.kind = MoveCommand.KIND;
-    }
-    return MoveAction;
-}());
-exports.MoveAction = MoveAction;
-var MoveCommand = /** @class */ (function (_super) {
-    __extends(MoveCommand, _super);
-    function MoveCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        _this.resolvedMoves = new Map;
-        return _this;
-    }
-    MoveCommand.prototype.execute = function (context) {
-        var _this = this;
-        var model = context.root;
-        this.action.moves.forEach(function (move) {
-            var resolvedMove = _this.resolve(move, model.index);
-            if (resolvedMove) {
-                _this.resolvedMoves.set(resolvedMove.elementId, resolvedMove);
-                if (!_this.action.animate) {
-                    resolvedMove.element.position = move.toPosition;
-                }
-            }
-        });
-        if (this.action.animate)
-            return new MoveAnimation(model, this.resolvedMoves, context, false).start();
-        else
-            return model;
-    };
-    MoveCommand.prototype.resolve = function (move, index) {
-        var element = index.getById(move.elementId);
-        if (element) {
-            var fromPosition = move.fromPosition || { x: element.position.x, y: element.position.y };
-            return {
-                fromPosition: fromPosition,
-                elementId: move.elementId,
-                element: element,
-                toPosition: move.toPosition
-            };
-        }
-        return undefined;
-    };
-    MoveCommand.prototype.undo = function (context) {
-        return new MoveAnimation(context.root, this.resolvedMoves, context, true).start();
-    };
-    MoveCommand.prototype.redo = function (context) {
-        return new MoveAnimation(context.root, this.resolvedMoves, context, false).start();
-    };
-    MoveCommand.prototype.merge = function (command, context) {
-        var _this = this;
-        if (!this.action.animate && command instanceof MoveCommand) {
-            command.action.moves.forEach(function (otherMove) {
-                var existingMove = _this.resolvedMoves.get(otherMove.elementId);
-                if (existingMove) {
-                    existingMove.toPosition = otherMove.toPosition;
-                }
-                else {
-                    var resolvedMove = _this.resolve(otherMove, context.root.index);
-                    if (resolvedMove)
-                        _this.resolvedMoves.set(resolvedMove.elementId, resolvedMove);
-                }
-            });
-            return true;
-        }
-        return false;
-    };
-    MoveCommand.KIND = 'move';
-    return MoveCommand;
-}(command_1.MergeableCommand));
-exports.MoveCommand = MoveCommand;
-var MoveAnimation = /** @class */ (function (_super) {
-    __extends(MoveAnimation, _super);
-    function MoveAnimation(model, elementMoves, context, reverse) {
-        if (reverse === void 0) { reverse = false; }
-        var _this = _super.call(this, context) || this;
-        _this.model = model;
-        _this.elementMoves = elementMoves;
-        _this.reverse = reverse;
-        return _this;
-    }
-    MoveAnimation.prototype.tween = function (t) {
-        var _this = this;
-        this.elementMoves.forEach(function (elementMove) {
-            if (_this.reverse) {
-                elementMove.element.position = {
-                    x: (1 - t) * elementMove.toPosition.x + t * elementMove.fromPosition.x,
-                    y: (1 - t) * elementMove.toPosition.y + t * elementMove.fromPosition.y
-                };
-            }
-            else {
-                elementMove.element.position = {
-                    x: (1 - t) * elementMove.fromPosition.x + t * elementMove.toPosition.x,
-                    y: (1 - t) * elementMove.fromPosition.y + t * elementMove.toPosition.y
-                };
-            }
-        });
-        return this.model;
-    };
-    return MoveAnimation;
-}(animation_1.Animation));
-exports.MoveAnimation = MoveAnimation;
-var MoveMouseListener = /** @class */ (function (_super) {
-    __extends(MoveMouseListener, _super);
-    function MoveMouseListener() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.hasDragged = false;
-        return _this;
-    }
-    MoveMouseListener.prototype.mouseDown = function (target, event) {
-        if (event.button === 0) {
-            if (model_3.isMoveable(target)) {
-                this.lastDragPosition = { x: event.pageX, y: event.pageY };
-            }
-            else {
-                this.lastDragPosition = undefined;
-            }
-            this.hasDragged = false;
-        }
-        return [];
-    };
-    MoveMouseListener.prototype.mouseMove = function (target, event) {
-        if (event.buttons === 0)
-            this.mouseUp(target, event);
-        else if (this.lastDragPosition) {
-            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);
-            this.hasDragged = true;
-            var zoom = viewport ? viewport.zoom : 1;
-            var dx_1 = (event.pageX - this.lastDragPosition.x) / zoom;
-            var dy_1 = (event.pageY - this.lastDragPosition.y) / zoom;
-            var root = target.root;
-            var nodeMoves_1 = [];
-            root
-                .index
-                .all()
-                .filter(function (element) { return model_2.isSelectable(element) && element.selected; })
-                .forEach(function (element) {
-                if (model_3.isMoveable(element)) {
-                    nodeMoves_1.push({
-                        elementId: element.id,
-                        toPosition: {
-                            x: element.position.x + dx_1,
-                            y: element.position.y + dy_1
-                        }
-                    });
-                }
-            });
-            this.lastDragPosition = { x: event.pageX, y: event.pageY };
-            if (nodeMoves_1.length > 0)
-                return [new MoveAction(nodeMoves_1, false)];
-        }
-        return [];
-    };
-    MoveMouseListener.prototype.mouseEnter = function (target, event) {
-        if (target instanceof smodel_2.SModelRoot && event.buttons === 0)
-            this.mouseUp(target, event);
-        return [];
-    };
-    MoveMouseListener.prototype.mouseUp = function (target, event) {
-        this.hasDragged = false;
-        this.lastDragPosition = undefined;
-        return [];
-    };
-    MoveMouseListener.prototype.decorate = function (vnode, element) {
-        return vnode;
-    };
-    return MoveMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.MoveMouseListener = MoveMouseListener;
-var LocationDecorator = /** @class */ (function () {
-    function LocationDecorator() {
-    }
-    LocationDecorator.prototype.decorate = function (vnode, element) {
-        var translate = '';
-        if (model_3.isLocateable(element) && element instanceof smodel_1.SChildElement && element.parent !== undefined) {
-            translate = 'translate(' + element.position.x + ', ' + element.position.y + ')';
-        }
-        if (model_4.isAlignable(element)) {
-            if (translate.length > 0)
-                translate += ' ';
-            translate += 'translate(' + element.alignment.x + ', ' + element.alignment.y + ')';
-        }
-        if (translate.length > 0)
-            vnode_utils_1.setAttr(vnode, 'transform', translate);
-        return vnode;
-    };
-    LocationDecorator.prototype.postUpdate = function () {
-    };
-    LocationDecorator = __decorate([
-        inversify_1.injectable()
-    ], LocationDecorator);
-    return LocationDecorator;
-}());
-exports.LocationDecorator = LocationDecorator;
-//# sourceMappingURL=move.js.map
-
-/***/ }),
-/* 65 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Returns whether the mouse or keyboard event includes the CMD key
- * on Mac or CTRL key on Linux / others
- */
-function isCtrlOrCmd(event) {
-    if (isMac())
-        return event.metaKey;
-    else
-        return event.ctrlKey;
-}
-exports.isCtrlOrCmd = isCtrlOrCmd;
-function isMac() {
-    return window.navigator.userAgent.indexOf("Mac") !== -1;
-}
-exports.isMac = isMac;
-function isCrossSite(url) {
-    if (url && typeof window !== 'undefined' && window.location) {
-        var baseURL = '';
-        if (window.location.protocol)
-            baseURL += window.location.protocol + '//';
-        if (window.location.host)
-            baseURL += window.location.host;
-        return baseURL.length > 0 && !url.startsWith(baseURL);
-    }
-    return false;
-}
-exports.isCrossSite = isCrossSite;
-//# sourceMappingURL=browser.js.map
-
-/***/ }),
-/* 66 */
-/***/ (function(module, exports) {
-
-module.exports = function (it, Constructor, name, forbiddenField) {
-  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
-    throw TypeError(name + ': incorrect invocation!');
-  } return it;
-};
-
-
-/***/ }),
-/* 67 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = __webpack_require__(36);
-var TAG = __webpack_require__(4)('toStringTag');
-// ES3 wrong here
-var ARG = cof(function () { return arguments; }()) == 'Arguments';
-
-// fallback for IE11 Script Access Denied error
-var tryGet = function (it, key) {
-  try {
-    return it[key];
-  } catch (e) { /* empty */ }
-};
-
-module.exports = function (it) {
-  var O, T, B;
-  return it === undefined ? 'Undefined' : it === null ? 'Null'
-    // @@toStringTag case
-    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
-    // builtinTag case
-    : ARG ? cof(O)
-    // ES3 arguments fallback
-    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-};
-
-
-/***/ }),
-/* 68 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(14);
-var document = __webpack_require__(6).document;
-// typeof document.createElement is 'object' in old IE
-var is = isObject(document) && isObject(document.createElement);
-module.exports = function (it) {
-  return is ? document.createElement(it) : {};
-};
-
-
-/***/ }),
-/* 69 */
-/***/ (function(module, exports) {
-
-// IE 8- don't enum bug keys
-module.exports = (
-  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-).split(',');
-
-
-/***/ }),
-/* 70 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var MATCH = __webpack_require__(4)('match');
-module.exports = function (KEY) {
-  var re = /./;
-  try {
-    '/./'[KEY](re);
-  } catch (e) {
-    try {
-      re[MATCH] = false;
-      return !'/./'[KEY](re);
-    } catch (f) { /* empty */ }
-  } return true;
-};
-
-
-/***/ }),
-/* 71 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var ctx = __webpack_require__(37);
-var call = __webpack_require__(166);
-var isArrayIter = __webpack_require__(164);
-var anObject = __webpack_require__(19);
-var toLength = __webpack_require__(45);
-var getIterFn = __webpack_require__(181);
-var BREAK = {};
-var RETURN = {};
-var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
-  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
-  var f = ctx(fn, that, entries ? 2 : 1);
-  var index = 0;
-  var length, step, iterator, result;
-  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
-  // fast case for arrays with default iterator
-  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
-    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
-    if (result === BREAK || result === RETURN) return result;
-  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
-    result = call(iterator, f, step.value, entries);
-    if (result === BREAK || result === RETURN) return result;
-  }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN;
-
-
-/***/ }),
-/* 72 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var LIBRARY = __webpack_require__(56);
-var $export = __webpack_require__(10);
-var redefine = __webpack_require__(28);
-var hide = __webpack_require__(26);
-var has = __webpack_require__(25);
-var Iterators = __webpack_require__(43);
-var $iterCreate = __webpack_require__(167);
-var setToStringTag = __webpack_require__(44);
-var getPrototypeOf = __webpack_require__(171);
-var ITERATOR = __webpack_require__(4)('iterator');
-var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
-var FF_ITERATOR = '@@iterator';
-var KEYS = 'keys';
-var VALUES = 'values';
-
-var returnThis = function () { return this; };
-
-module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
-  $iterCreate(Constructor, NAME, next);
-  var getMethod = function (kind) {
-    if (!BUGGY && kind in proto) return proto[kind];
-    switch (kind) {
-      case KEYS: return function keys() { return new Constructor(this, kind); };
-      case VALUES: return function values() { return new Constructor(this, kind); };
-    } return function entries() { return new Constructor(this, kind); };
-  };
-  var TAG = NAME + ' Iterator';
-  var DEF_VALUES = DEFAULT == VALUES;
-  var VALUES_BUG = false;
-  var proto = Base.prototype;
-  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
-  var $default = (!BUGGY && $native) || getMethod(DEFAULT);
-  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
-  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
-  var methods, key, IteratorPrototype;
-  // Fix native
-  if ($anyNative) {
-    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
-    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
-      // Set @@toStringTag to native iterators
-      setToStringTag(IteratorPrototype, TAG, true);
-      // fix for some old engines
-      if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
-    }
-  }
-  // fix Array#{values, @@iterator}.name in V8 / FF
-  if (DEF_VALUES && $native && $native.name !== VALUES) {
-    VALUES_BUG = true;
-    $default = function values() { return $native.call(this); };
-  }
-  // Define iterator
-  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
-    hide(proto, ITERATOR, $default);
-  }
-  // Plug for library
-  Iterators[NAME] = $default;
-  Iterators[TAG] = returnThis;
-  if (DEFAULT) {
-    methods = {
-      values: DEF_VALUES ? $default : getMethod(VALUES),
-      keys: IS_SET ? $default : getMethod(KEYS),
-      entries: $entries
-    };
-    if (FORCED) for (key in methods) {
-      if (!(key in proto)) redefine(proto, key, methods[key]);
-    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
-  }
-  return methods;
-};
-
-
-/***/ }),
-/* 73 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var META = __webpack_require__(46)('meta');
-var isObject = __webpack_require__(14);
-var has = __webpack_require__(25);
-var setDesc = __webpack_require__(27).f;
-var id = 0;
-var isExtensible = Object.isExtensible || function () {
-  return true;
-};
-var FREEZE = !__webpack_require__(24)(function () {
-  return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function (it) {
-  setDesc(it, META, { value: {
-    i: 'O' + ++id, // object ID
-    w: {}          // weak collections IDs
-  } });
-};
-var fastKey = function (it, create) {
-  // return primitive with prefix
-  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return 'F';
-    // not necessary to add metadata
-    if (!create) return 'E';
-    // add missing metadata
-    setMeta(it);
-  // return object ID
-  } return it[META].i;
-};
-var getWeak = function (it, create) {
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return true;
-    // not necessary to add metadata
-    if (!create) return false;
-    // add missing metadata
-    setMeta(it);
-  // return hash weak collections IDs
-  } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function (it) {
-  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
-  return it;
-};
-var meta = module.exports = {
-  KEY: META,
-  NEED: false,
-  fastKey: fastKey,
-  getWeak: getWeak,
-  onFreeze: onFreeze
-};
-
-
-/***/ }),
-/* 74 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject = __webpack_require__(19);
-var dPs = __webpack_require__(169);
-var enumBugKeys = __webpack_require__(69);
-var IE_PROTO = __webpack_require__(77)('IE_PROTO');
-var Empty = function () { /* empty */ };
-var PROTOTYPE = 'prototype';
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var createDict = function () {
-  // Thrash, waste and sodomy: IE GC bug
-  var iframe = __webpack_require__(68)('iframe');
-  var i = enumBugKeys.length;
-  var lt = '<';
-  var gt = '>';
-  var iframeDocument;
-  iframe.style.display = 'none';
-  __webpack_require__(104).appendChild(iframe);
-  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
-  // createDict = iframe.contentWindow.Object;
-  // html.removeChild(iframe);
-  iframeDocument = iframe.contentWindow.document;
-  iframeDocument.open();
-  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
-  iframeDocument.close();
-  createDict = iframeDocument.F;
-  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
-  return createDict();
-};
-
-module.exports = Object.create || function create(O, Properties) {
-  var result;
-  if (O !== null) {
-    Empty[PROTOTYPE] = anObject(O);
-    result = new Empty();
-    Empty[PROTOTYPE] = null;
-    // add "__proto__" for Object.getPrototypeOf polyfill
-    result[IE_PROTO] = O;
-  } else result = createDict();
-  return Properties === undefined ? result : dPs(result, Properties);
-};
-
-
-/***/ }),
-/* 75 */
-/***/ (function(module, exports) {
-
-exports.f = {}.propertyIsEnumerable;
-
-
-/***/ }),
-/* 76 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var redefine = __webpack_require__(28);
-module.exports = function (target, src, safe) {
-  for (var key in src) redefine(target, key, src[key], safe);
-  return target;
-};
-
-
-/***/ }),
-/* 77 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var shared = __webpack_require__(78)('keys');
-var uid = __webpack_require__(46);
-module.exports = function (key) {
-  return shared[key] || (shared[key] = uid(key));
-};
-
-
-/***/ }),
-/* 78 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(6);
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || (global[SHARED] = {});
-module.exports = function (key) {
-  return store[key] || (store[key] = {});
-};
-
-
-/***/ }),
-/* 79 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// helper for String#{startsWith, endsWith, includes}
-var isRegExp = __webpack_require__(106);
-var defined = __webpack_require__(22);
-
-module.exports = function (that, searchString, NAME) {
-  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
-  return String(defined(that));
-};
-
-
-/***/ }),
-/* 80 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = __webpack_require__(14);
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function (it, S) {
-  if (!isObject(it)) return it;
-  var fn, val;
-  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
-  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
-  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
-  throw TypeError("Can't convert object to primitive value");
-};
-
-
-/***/ }),
-/* 81 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// 19.1.3.6 Object.prototype.toString()
-var classof = __webpack_require__(67);
-var test = {};
-test[__webpack_require__(4)('toStringTag')] = 'z';
-if (test + '' != '[object z]') {
-  __webpack_require__(28)(Object.prototype, 'toString', function toString() {
-    return '[object ' + classof(this) + ']';
-  }, true);
-}
-
-
-/***/ }),
-/* 82 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var $at = __webpack_require__(115)(true);
-
-// 21.1.3.27 String.prototype[@@iterator]()
-__webpack_require__(72)(String, 'String', function (iterated) {
-  this._t = String(iterated); // target
-  this._i = 0;                // next index
-// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function () {
-  var O = this._t;
-  var index = this._i;
-  var point;
-  if (index >= O.length) return { value: undefined, done: true };
-  point = $at(O, index);
-  this._i += point.length;
-  return { value: point, done: false };
-});
-
-
-/***/ }),
-/* 83 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_when_syntax_1 = __webpack_require__(84);
-var BindingOnSyntax = (function () {
-    function BindingOnSyntax(binding) {
-        this._binding = binding;
-    }
-    BindingOnSyntax.prototype.onActivation = function (handler) {
-        this._binding.onActivation = handler;
-        return new binding_when_syntax_1.BindingWhenSyntax(this._binding);
-    };
-    return BindingOnSyntax;
-}());
-exports.BindingOnSyntax = BindingOnSyntax;
-
-
-/***/ }),
-/* 84 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_on_syntax_1 = __webpack_require__(83);
-var constraint_helpers_1 = __webpack_require__(126);
-var BindingWhenSyntax = (function () {
-    function BindingWhenSyntax(binding) {
-        this._binding = binding;
-    }
-    BindingWhenSyntax.prototype.when = function (constraint) {
-        this._binding.constraint = constraint;
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
-        this._binding.constraint = constraint_helpers_1.namedConstraint(name);
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
-        this._binding.constraint = function (request) {
-            var targetIsDefault = (request.target !== null) &&
-                (!request.target.isNamed()) &&
-                (!request.target.isTagged());
-            return targetIsDefault;
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
-        this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenParentNamed = function (name) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.namedConstraint(name)(request.parentRequest);
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
-        this._binding.constraint = function (request) {
-            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
-        this._binding.constraint = function (request) {
-            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
-        this._binding.constraint = function (request) {
-            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
-        this._binding.constraint = function (request) {
-            return constraint_helpers_1.traverseAncerstors(request, constraint);
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
-        this._binding.constraint = function (request) {
-            return !constraint_helpers_1.traverseAncerstors(request, constraint);
-        };
-        return new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    };
-    return BindingWhenSyntax;
-}());
-exports.BindingWhenSyntax = BindingWhenSyntax;
-
-
-/***/ }),
-/* 85 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_factory_1 = __webpack_require__(17);
-var animation_frame_syncer_1 = __webpack_require__(48);
-var set_model_1 = __webpack_require__(49);
-var undo_redo_1 = __webpack_require__(96);
-var action_1 = __webpack_require__(86);
-var action_handler_1 = __webpack_require__(38);
-/**
- * Collects actions, converts them to commands and dispatches them.
- * Also acts as the proxy to model sources such as diagram servers.
- */
-var ActionDispatcher = /** @class */ (function () {
-    function ActionDispatcher(actionHandlerRegistry, commandStack, logger, syncer) {
-        this.actionHandlerRegistry = actionHandlerRegistry;
-        this.commandStack = commandStack;
-        this.logger = logger;
-        this.syncer = syncer;
-        this.postponedActions = [];
-        var initialCommand = new set_model_1.SetModelCommand(new set_model_1.SetModelAction(smodel_factory_1.EMPTY_ROOT, true));
-        this.blockUntilActionKind = initialCommand.blockUntilActionKind;
-        this.commandStack.execute(initialCommand);
-    }
-    ActionDispatcher.prototype.dispatchAll = function (actions) {
-        var _this = this;
-        actions.forEach(function (action) { return _this.dispatch(action); });
-    };
-    ActionDispatcher.prototype.dispatch = function (action, onExecute) {
-        var _this = this;
-        if (action.kind === this.blockUntilActionKind) {
-            this.blockUntilActionKind = undefined;
-            this.handleAction(action);
-            var actions = this.postponedActions;
-            this.postponedActions = [];
-            actions.forEach(function (a) { return _this.dispatch(a.action, a.onExecute); });
-            return;
-        }
-        if (this.blockUntilActionKind !== undefined) {
-            this.logger.log(this, 'waiting for ' + this.blockUntilActionKind + '. postponing', action);
-            this.postponedActions.push({
-                action: action,
-                onExecute: onExecute
-            });
-            return;
-        }
-        if (onExecute !== undefined)
-            onExecute.call(null, action);
-        if (action.kind === undo_redo_1.UndoAction.KIND) {
-            this.commandStack.undo();
-        }
-        else if (action.kind === undo_redo_1.RedoAction.KIND) {
-            this.commandStack.redo();
-        }
-        else {
-            this.handleAction(action);
-        }
-    };
-    ActionDispatcher.prototype.handleAction = function (action) {
-        this.logger.log(this, 'handle', action);
-        var handlers = this.actionHandlerRegistry.get(action.kind);
-        if (handlers.length > 0) {
-            for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {
-                var handler = handlers_1[_i];
-                var result = handler.handle(action);
-                if (action_1.isAction(result))
-                    this.dispatch(result);
-                else if (result !== undefined) {
-                    this.commandStack.execute(result);
-                    this.blockUntilActionKind = result.blockUntilActionKind;
-                }
-            }
-        }
-        else {
-            this.logger.warn(this, 'missing handler for action', action);
-        }
-    };
-    ActionDispatcher = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),
-        __param(1, inversify_1.inject(types_1.TYPES.ICommandStack)),
-        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),
-        __param(3, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),
-        __metadata("design:paramtypes", [action_handler_1.ActionHandlerRegistry, Object, Object, animation_frame_syncer_1.AnimationFrameSyncer])
-    ], ActionDispatcher);
-    return ActionDispatcher;
-}());
-exports.ActionDispatcher = ActionDispatcher;
-//# sourceMappingURL=action-dispatcher.js.map
-
-/***/ }),
-/* 86 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-function isAction(object) {
-    return object !== undefined && object.hasOwnProperty('kind') && typeof (object['kind']) === 'string';
-}
-exports.isAction = isAction;
-//# sourceMappingURL=action.js.map
-
-/***/ }),
-/* 87 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_factory_1 = __webpack_require__(17);
-var SModelStorage = /** @class */ (function () {
-    function SModelStorage() {
-        this.localCache = new Map;
-    }
-    SModelStorage.prototype.store = function (root) {
-        if (this.isLocalStorageAvailable())
-            localStorage.setItem(this.key, JSON.stringify(root));
-        else
-            this.localCache.set(this.key, JSON.stringify(root));
-    };
-    SModelStorage.prototype.load = function () {
-        var schema = (this.isLocalStorageAvailable())
-            ? localStorage.getItem(this.key)
-            : this.localCache.get(this.key);
-        if (schema)
-            return JSON.parse(schema);
-        else
-            return smodel_factory_1.EMPTY_ROOT;
-    };
-    SModelStorage.prototype.isLocalStorageAvailable = function () {
-        try {
-            return typeof localStorage === 'object' && localStorage !== null;
-        }
-        catch (e) {
-            return false;
-        }
-    };
-    Object.defineProperty(SModelStorage.prototype, "key", {
-        get: function () {
-            return this.viewerOptions.baseDiv;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    __decorate([
-        inversify_1.inject(types_1.TYPES.ViewerOptions),
-        __metadata("design:type", Object)
-    ], SModelStorage.prototype, "viewerOptions", void 0);
-    SModelStorage = __decorate([
-        inversify_1.injectable()
-    ], SModelStorage);
-    return SModelStorage;
-}());
-exports.SModelStorage = SModelStorage;
-//# sourceMappingURL=smodel-storage.js.map
-
-/***/ }),
-/* 88 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var DOMHelper = /** @class */ (function () {
-    function DOMHelper(viewerOptions) {
-        this.viewerOptions = viewerOptions;
-    }
-    DOMHelper.prototype.getPrefix = function () {
-        var prefix = this.viewerOptions !== undefined && this.viewerOptions.baseDiv !== undefined ?
-            this.viewerOptions.baseDiv + "_" : "";
-        return prefix;
-    };
-    DOMHelper.prototype.createUniqueDOMElementId = function (element) {
-        return this.getPrefix() + element.id;
-    };
-    DOMHelper.prototype.findSModelIdByDOMElement = function (element) {
-        return element.id.replace(this.getPrefix(), '');
-    };
-    DOMHelper = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __metadata("design:paramtypes", [Object])
-    ], DOMHelper);
-    return DOMHelper;
-}());
-exports.DOMHelper = DOMHelper;
-//# sourceMappingURL=dom-helper.js.map
-
-/***/ }),
-/* 89 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var smodel_1 = __webpack_require__(2);
-var model_1 = __webpack_require__(9);
-var AbstractLayout = /** @class */ (function () {
-    function AbstractLayout() {
-    }
-    AbstractLayout.prototype.layout = function (container, layouter) {
-        var boundsData = layouter.getBoundsData(container);
-        var options = this.getLayoutOptions(container);
-        var childrenSize = this.getChildrenSize(container, options, layouter);
-        var maxWidth = options.paddingFactor * (options.resizeContainer
-            ? childrenSize.width
-            : Math.max(0, this.getFixedContainerBounds(container, options, layouter).width) - options.paddingLeft - options.paddingRight);
-        var maxHeight = options.paddingFactor * (options.resizeContainer
-            ? childrenSize.height
-            : Math.max(0, this.getFixedContainerBounds(container, options, layouter).height) - options.paddingTop - options.paddingBottom);
-        if (maxWidth > 0 && maxHeight > 0) {
-            var offset = this.layoutChildren(container, layouter, options, maxWidth, maxHeight);
-            boundsData.bounds = this.getFinalContainerBounds(container, offset, options, maxWidth, maxHeight);
-            boundsData.boundsChanged = true;
-        }
-    };
-    AbstractLayout.prototype.getFinalContainerBounds = function (container, lastOffset, options, maxWidth, maxHeight) {
-        return {
-            x: container.bounds.x,
-            y: container.bounds.y,
-            width: maxWidth + options.paddingLeft + options.paddingRight,
-            height: maxHeight + options.paddingTop + options.paddingBottom
-        };
-    };
-    AbstractLayout.prototype.getFixedContainerBounds = function (container, layoutOptions, layouter) {
-        var currentContainer = container;
-        while (true) {
-            if (model_1.isBoundsAware(currentContainer)) {
-                var bounds = currentContainer.bounds;
-                if (model_1.isLayoutContainer(currentContainer) && layoutOptions.resizeContainer)
-                    layouter.log.error(currentContainer, 'Resizable container found while detecting fixed bounds');
-                if (geometry_1.isValidDimension(bounds))
-                    return bounds;
-            }
-            if (currentContainer instanceof smodel_1.SChildElement) {
-                currentContainer = currentContainer.parent;
-            }
-            else {
-                layouter.log.error(currentContainer, 'Cannot detect fixed bounds');
-                return geometry_1.EMPTY_BOUNDS;
-            }
-        }
-    };
-    AbstractLayout.prototype.layoutChildren = function (container, layouter, containerOptions, maxWidth, maxHeight) {
-        var _this = this;
-        var currentOffset = {
-            x: containerOptions.paddingLeft + 0.5 * (maxWidth - (maxWidth / containerOptions.paddingFactor)),
-            y: containerOptions.paddingTop + 0.5 * (maxHeight - (maxHeight / containerOptions.paddingFactor))
-        };
-        container.children.forEach(function (child) {
-            if (model_1.isLayoutableChild(child)) {
-                var boundsData = layouter.getBoundsData(child);
-                var bounds = boundsData.bounds;
-                var childOptions = _this.getChildLayoutOptions(child, containerOptions);
-                if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {
-                    currentOffset = _this.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);
-                }
-            }
-        });
-        return currentOffset;
-    };
-    AbstractLayout.prototype.getDx = function (hAlign, bounds, maxWidth) {
-        switch (hAlign) {
-            case 'left':
-                return 0;
-            case 'center':
-                return 0.5 * (maxWidth - bounds.width);
-            case 'right':
-                return maxWidth - bounds.width;
-        }
-    };
-    AbstractLayout.prototype.getDy = function (vAlign, bounds, maxHeight) {
-        switch (vAlign) {
-            case 'top':
-                return 0;
-            case 'center':
-                return 0.5 * (maxHeight - bounds.height);
-            case 'bottom':
-                return maxHeight - bounds.height;
-        }
-    };
-    AbstractLayout.prototype.getChildLayoutOptions = function (child, containerOptions) {
-        var layoutOptions = child.layoutOptions;
-        if (layoutOptions === undefined)
-            return containerOptions;
-        else
-            return this.spread(containerOptions, layoutOptions);
-    };
-    AbstractLayout.prototype.getLayoutOptions = function (element) {
-        var _this = this;
-        var current = element;
-        var allOptions = [];
-        while (current !== undefined) {
-            var layoutOptions = current.layoutOptions;
-            if (layoutOptions !== undefined)
-                allOptions.push(layoutOptions);
-            if (current instanceof smodel_1.SChildElement)
-                current = current.parent;
-            else
-                break;
-        }
-        return allOptions.reverse().reduce(function (a, b) { return _this.spread(a, b); }, this.getDefaultLayoutOptions());
-    };
-    return AbstractLayout;
-}());
-exports.AbstractLayout = AbstractLayout;
-//# sourceMappingURL=abstract-layout.js.map
-
-/***/ }),
-/* 90 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var registry_1 = __webpack_require__(53);
-var geometry_1 = __webpack_require__(3);
-var model_1 = __webpack_require__(9);
-var vbox_layout_1 = __webpack_require__(138);
-var hbox_layout_1 = __webpack_require__(136);
-var stack_layout_1 = __webpack_require__(137);
-var LayoutRegistry = /** @class */ (function (_super) {
-    __extends(LayoutRegistry, _super);
-    function LayoutRegistry() {
-        var _this = _super.call(this) || this;
-        _this.register(vbox_layout_1.VBoxLayouter.KIND, new vbox_layout_1.VBoxLayouter());
-        _this.register(hbox_layout_1.HBoxLayouter.KIND, new hbox_layout_1.HBoxLayouter());
-        _this.register(stack_layout_1.StackLayouter.KIND, new stack_layout_1.StackLayouter());
-        return _this;
-    }
-    return LayoutRegistry;
-}(registry_1.InstanceRegistry));
-exports.LayoutRegistry = LayoutRegistry;
-var Layouter = /** @class */ (function () {
-    function Layouter(layoutRegistry, logger) {
-        this.layoutRegistry = layoutRegistry;
-        this.logger = logger;
-    }
-    Layouter.prototype.layout = function (element2boundsData) {
-        new StatefulLayouter(element2boundsData, this.layoutRegistry, this.logger).layout();
-    };
-    Layouter = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.LayoutRegistry)),
-        __param(1, inversify_1.inject(types_1.TYPES.ILogger)),
-        __metadata("design:paramtypes", [LayoutRegistry, Object])
-    ], Layouter);
-    return Layouter;
-}());
-exports.Layouter = Layouter;
-var StatefulLayouter = /** @class */ (function () {
-    function StatefulLayouter(element2boundsData, layoutRegistry, log) {
-        var _this = this;
-        this.element2boundsData = element2boundsData;
-        this.layoutRegistry = layoutRegistry;
-        this.log = log;
-        this.toBeLayouted = [];
-        element2boundsData.forEach(function (data, element) {
-            if (model_1.isLayoutContainer(element))
-                _this.toBeLayouted.push(element);
-        });
-    }
-    StatefulLayouter.prototype.getBoundsData = function (element) {
-        var boundsData = this.element2boundsData.get(element);
-        var bounds = element.bounds;
-        if (model_1.isLayoutContainer(element) && this.toBeLayouted.indexOf(element) >= 0) {
-            bounds = this.doLayout(element);
-        }
-        if (!boundsData) {
-            boundsData = {
-                bounds: bounds,
-                boundsChanged: false,
-                alignmentChanged: false
-            };
-            this.element2boundsData.set(element, boundsData);
-        }
-        return boundsData;
-    };
-    StatefulLayouter.prototype.layout = function () {
-        while (this.toBeLayouted.length > 0) {
-            var element = this.toBeLayouted[0];
-            this.doLayout(element);
-        }
-    };
-    StatefulLayouter.prototype.doLayout = function (element) {
-        var index = this.toBeLayouted.indexOf(element);
-        if (index >= 0)
-            this.toBeLayouted.splice(index, 1);
-        var layout = this.layoutRegistry.get(element.layout);
-        if (layout)
-            layout.layout(element, this);
-        var boundsData = this.element2boundsData.get(element);
-        if (boundsData !== undefined && boundsData.bounds !== undefined) {
-            return boundsData.bounds;
-        }
-        else {
-            this.log.error(element, 'Layout failed');
-            return geometry_1.EMPTY_BOUNDS;
-        }
-    };
-    return StatefulLayouter;
-}());
-exports.StatefulLayouter = StatefulLayouter;
-//# sourceMappingURL=layout.js.map
-
-/***/ }),
-/* 91 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
-* Copyright (C) 2017 TypeFox and others.
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-*/
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var registry_1 = __webpack_require__(53);
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var ButtonHandlerRegistry = /** @class */ (function (_super) {
-    __extends(ButtonHandlerRegistry, _super);
-    function ButtonHandlerRegistry(buttonHandlerFactories) {
-        var _this = _super.call(this) || this;
-        buttonHandlerFactories.forEach(function (factory) { return _this.register(factory.TYPE, new factory()); });
-        return _this;
-    }
-    ButtonHandlerRegistry = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.multiInject(types_1.TYPES.IButtonHandler)), __param(0, inversify_1.optional()),
-        __metadata("design:paramtypes", [Array])
-    ], ButtonHandlerRegistry);
-    return ButtonHandlerRegistry;
-}(registry_1.InstanceRegistry));
-exports.ButtonHandlerRegistry = ButtonHandlerRegistry;
-//# sourceMappingURL=button-handler.js.map
-
-/***/ }),
-/* 92 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var model_1 = __webpack_require__(9);
-var model_2 = __webpack_require__(51);
-var SButton = /** @class */ (function (_super) {
-    __extends(SButton, _super);
-    function SButton() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.enabled = true;
-        return _this;
-    }
-    SButton.prototype.hasFeature = function (feature) {
-        return feature === model_1.boundsFeature || feature === model_2.fadeFeature || feature === model_1.layoutableChildFeature;
-    };
-    return SButton;
-}(model_1.SShapeElement));
-exports.SButton = SButton;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 93 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.expandFeature = Symbol('expandFeature');
-function isExpandable(element) {
-    return 'expanded' in element && element.hasFeature(exports.expandFeature);
-}
-exports.isExpandable = isExpandable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 94 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var animation_1 = __webpack_require__(39);
-var smodel_1 = __webpack_require__(2);
-var vnode_utils_1 = __webpack_require__(18);
-var model_1 = __webpack_require__(51);
-var FadeAnimation = /** @class */ (function (_super) {
-    __extends(FadeAnimation, _super);
-    function FadeAnimation(model, elementFades, context, removeAfterFadeOut) {
-        if (removeAfterFadeOut === void 0) { removeAfterFadeOut = false; }
-        var _this = _super.call(this, context) || this;
-        _this.model = model;
-        _this.elementFades = elementFades;
-        _this.removeAfterFadeOut = removeAfterFadeOut;
-        return _this;
-    }
-    FadeAnimation.prototype.tween = function (t, context) {
-        for (var _i = 0, _a = this.elementFades; _i < _a.length; _i++) {
-            var elementFade = _a[_i];
-            var element = elementFade.element;
-            if (elementFade.type === 'in') {
-                element.opacity = t;
-            }
-            else if (elementFade.type === 'out') {
-                element.opacity = 1 - t;
-                if (t === 1 && this.removeAfterFadeOut && element instanceof smodel_1.SChildElement) {
-                    element.parent.remove(element);
-                }
-            }
-        }
-        return this.model;
-    };
-    return FadeAnimation;
-}(animation_1.Animation));
-exports.FadeAnimation = FadeAnimation;
-var ElementFader = /** @class */ (function () {
-    function ElementFader() {
-    }
-    ElementFader.prototype.decorate = function (vnode, element) {
-        if (model_1.isFadeable(element)) {
-            vnode_utils_1.setAttr(vnode, 'opacity', element.opacity);
-        }
-        return vnode;
-    };
-    ElementFader.prototype.postUpdate = function () {
-    };
-    ElementFader = __decorate([
-        inversify_1.injectable()
-    ], ElementFader);
-    return ElementFader;
-}());
-exports.ElementFader = ElementFader;
-//# sourceMappingURL=fade.js.map
-
-/***/ }),
-/* 95 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
-* Copyright (C) 2017 TypeFox and others.
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-*/
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var mouse_tool_1 = __webpack_require__(30);
-var smodel_utils_1 = __webpack_require__(13);
-var model_1 = __webpack_require__(140);
-var OpenAction = /** @class */ (function () {
-    function OpenAction(elementId) {
-        this.elementId = elementId;
-        this.kind = OpenAction.KIND;
-    }
-    OpenAction.KIND = 'open';
-    return OpenAction;
-}());
-exports.OpenAction = OpenAction;
-var OpenMouseListener = /** @class */ (function (_super) {
-    __extends(OpenMouseListener, _super);
-    function OpenMouseListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    OpenMouseListener.prototype.doubleClick = function (target, event) {
-        var openableTarget = smodel_utils_1.findParentByFeature(target, model_1.isOpenable);
-        if (openableTarget !== undefined) {
-            return [new OpenAction(openableTarget.id)];
-        }
-        return [];
-    };
-    return OpenMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.OpenMouseListener = OpenMouseListener;
-//# sourceMappingURL=open.js.map
-
-/***/ }),
-/* 96 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var browser_1 = __webpack_require__(65);
-var key_tool_1 = __webpack_require__(35);
-var UndoAction = /** @class */ (function () {
-    function UndoAction() {
-        this.kind = UndoAction.KIND;
-    }
-    UndoAction.KIND = 'undo';
-    return UndoAction;
-}());
-exports.UndoAction = UndoAction;
-var RedoAction = /** @class */ (function () {
-    function RedoAction() {
-        this.kind = RedoAction.KIND;
-    }
-    RedoAction.KIND = 'redo';
-    return RedoAction;
-}());
-exports.RedoAction = RedoAction;
-var UndoRedoKeyListener = /** @class */ (function (_super) {
-    __extends(UndoRedoKeyListener, _super);
-    function UndoRedoKeyListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    UndoRedoKeyListener.prototype.keyDown = function (element, event) {
-        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 90) {
-            if (event.shiftKey)
-                return [new RedoAction];
-            else
-                return [new UndoAction];
-        }
-        return [];
-    };
-    return UndoRedoKeyListener;
-}(key_tool_1.KeyListener));
-exports.UndoRedoKeyListener = UndoRedoKeyListener;
-//# sourceMappingURL=undo-redo.js.map
-
-/***/ }),
-/* 97 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-var ModelMatcher = /** @class */ (function () {
-    function ModelMatcher() {
-    }
-    ModelMatcher.prototype.match = function (left, right) {
-        var result = {};
-        this.matchLeft(left, result);
-        this.matchRight(right, result);
-        return result;
-    };
-    ModelMatcher.prototype.matchLeft = function (element, result, parentId) {
-        var match = result[element.id];
-        if (match !== undefined) {
-            match.left = element;
-            match.leftParentId = parentId;
-        }
-        else {
-            match = {
-                left: element,
-                leftParentId: parentId
-            };
-            result[element.id] = match;
-        }
-        if (element.children !== undefined) {
-            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {
-                var child = _a[_i];
-                this.matchLeft(child, result, element.id);
-            }
-        }
-    };
-    ModelMatcher.prototype.matchRight = function (element, result, parentId) {
-        var match = result[element.id];
-        if (match !== undefined) {
-            match.right = element;
-            match.rightParentId = parentId;
-        }
-        else {
-            match = {
-                right: element,
-                rightParentId: parentId
-            };
-            result[element.id] = match;
-        }
-        if (element.children !== undefined) {
-            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {
-                var child = _a[_i];
-                this.matchRight(child, result, element.id);
-            }
-        }
-    };
-    return ModelMatcher;
-}());
-exports.ModelMatcher = ModelMatcher;
-function applyMatches(root, matches) {
-    var index;
-    if (root instanceof smodel_1.SModelRoot) {
-        index = root.index;
-    }
-    else {
-        index = new smodel_1.SModelIndex();
-        index.add(root);
-    }
-    for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {
-        var match = matches_1[_i];
-        var newElementInserted = false;
-        if (match.left !== undefined && match.leftParentId !== undefined) {
-            var parent_1 = index.getById(match.leftParentId);
-            if (parent_1 !== undefined && parent_1.children !== undefined) {
-                var i = parent_1.children.indexOf(match.left);
-                if (i >= 0) {
-                    if (match.right !== undefined && match.leftParentId === match.rightParentId) {
-                        parent_1.children.splice(i, 1, match.right);
-                        newElementInserted = true;
-                    }
-                    else {
-                        parent_1.children.splice(i, 1);
-                    }
-                }
-                index.remove(match.left);
-            }
-        }
-        if (!newElementInserted && match.right !== undefined && match.rightParentId !== undefined) {
-            var parent_2 = index.getById(match.rightParentId);
-            if (parent_2 !== undefined) {
-                if (parent_2.children === undefined)
-                    parent_2.children = [];
-                parent_2.children.push(match.right);
-            }
-        }
-    }
-}
-exports.applyMatches = applyMatches;
-//# sourceMappingURL=model-matching.js.map
-
-/***/ }),
-/* 98 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var geometry_1 = __webpack_require__(3);
-var animation_1 = __webpack_require__(39);
-var command_1 = __webpack_require__(8);
-var fade_1 = __webpack_require__(94);
-var smodel_1 = __webpack_require__(2);
-var move_1 = __webpack_require__(64);
-var model_1 = __webpack_require__(51);
-var model_2 = __webpack_require__(41);
-var model_3 = __webpack_require__(9);
-var viewport_root_1 = __webpack_require__(100);
-var model_4 = __webpack_require__(31);
-var model_matching_1 = __webpack_require__(97);
-var resize_1 = __webpack_require__(253);
-/**
- * Sent from the model source to the client in order to update the model. If no model is present yet,
- * this behaves the same as a SetModelAction. The transition from the old model to the new one can be animated.
- */
-var UpdateModelAction = /** @class */ (function () {
-    function UpdateModelAction(newRoot) {
-        this.newRoot = newRoot;
-        this.kind = UpdateModelCommand.KIND;
-        this.animate = true;
-    }
-    return UpdateModelAction;
-}());
-exports.UpdateModelAction = UpdateModelAction;
-var UpdateModelCommand = /** @class */ (function (_super) {
-    __extends(UpdateModelCommand, _super);
-    function UpdateModelCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        if (action.animate === undefined)
-            action.animate = true;
-        return _this;
-    }
-    UpdateModelCommand.prototype.execute = function (context) {
-        var newRoot;
-        if (this.action.newRoot !== undefined) {
-            newRoot = context.modelFactory.createRoot(this.action.newRoot);
-        }
-        else {
-            newRoot = context.modelFactory.createRoot(context.root);
-            if (this.action.matches !== undefined)
-                this.applyMatches(newRoot, this.action.matches, context);
-        }
-        this.oldRoot = context.root;
-        this.newRoot = newRoot;
-        return this.performUpdate(this.oldRoot, this.newRoot, context);
-    };
-    UpdateModelCommand.prototype.performUpdate = function (oldRoot, newRoot, context) {
-        if (this.action.animate && oldRoot.id === newRoot.id) {
-            var matchResult = void 0;
-            if (this.action.matches === undefined) {
-                var matcher = new model_matching_1.ModelMatcher();
-                matchResult = matcher.match(oldRoot, newRoot);
-            }
-            else {
-                matchResult = this.convertToMatchResult(this.action.matches, oldRoot, newRoot);
-            }
-            var animationOrRoot = this.computeAnimation(newRoot, matchResult, context);
-            if (animationOrRoot instanceof animation_1.Animation)
-                return animationOrRoot.start();
-            else
-                return animationOrRoot;
-        }
-        else {
-            newRoot.canvasBounds = oldRoot.canvasBounds;
-            return newRoot;
-        }
-    };
-    UpdateModelCommand.prototype.applyMatches = function (root, matches, context) {
-        var index = root.index;
-        for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {
-            var match = matches_1[_i];
-            if (match.left !== undefined) {
-                var element = index.getById(match.left.id);
-                if (element instanceof smodel_1.SChildElement)
-                    element.parent.remove(element);
-            }
-            if (match.right !== undefined) {
-                var element = context.modelFactory.createElement(match.right);
-                var parent_1 = void 0;
-                if (match.rightParentId !== undefined)
-                    parent_1 = index.getById(match.rightParentId);
-                if (parent_1 instanceof smodel_1.SParentElement)
-                    parent_1.add(element);
-                else
-                    root.add(element);
-            }
-        }
-    };
-    UpdateModelCommand.prototype.convertToMatchResult = function (matches, leftRoot, rightRoot) {
-        var result = {};
-        for (var _i = 0, matches_2 = matches; _i < matches_2.length; _i++) {
-            var match = matches_2[_i];
-            var converted = {};
-            var id = undefined;
-            if (match.left !== undefined) {
-                id = match.left.id;
-                converted.left = leftRoot.index.getById(id);
-                converted.leftParentId = match.leftParentId;
-            }
-            if (match.right !== undefined) {
-                id = match.right.id;
-                converted.right = rightRoot.index.getById(id);
-                converted.rightParentId = match.rightParentId;
-            }
-            if (id !== undefined)
-                result[id] = converted;
-        }
-        return result;
-    };
-    UpdateModelCommand.prototype.computeAnimation = function (newRoot, matchResult, context) {
-        var animationData = {
-            fades: []
-        };
-        for (var id in matchResult) {
-            var match = matchResult[id];
-            if (match.left !== undefined && match.right !== undefined) {
-                // The element is still there, but may have been moved
-                this.updateElement(match.left, match.right, animationData);
-            }
-            else if (match.right !== undefined) {
-                // An element has been added
-                var right = match.right;
-                if (model_1.isFadeable(right)) {
-                    right.opacity = 0;
-                    animationData.fades.push({
-                        element: right,
-                        type: 'in'
-                    });
-                }
-            }
-            else if (match.left instanceof smodel_1.SChildElement) {
-                // An element has been removed
-                var left = match.left;
-                if (model_1.isFadeable(left) && match.leftParentId !== undefined) {
-                    if (newRoot.index.getById(left.id) === undefined) {
-                        var parent_2 = newRoot.index.getById(match.leftParentId);
-                        if (parent_2 instanceof smodel_1.SParentElement) {
-                            var leftCopy = context.modelFactory.createElement(left);
-                            parent_2.add(leftCopy);
-                            animationData.fades.push({
-                                element: leftCopy,
-                                type: 'out'
-                            });
-                        }
-                    }
-                }
-            }
-        }
-        var animations = this.createAnimations(animationData, newRoot, context);
-        if (animations.length >= 2) {
-            return new animation_1.CompoundAnimation(newRoot, context, animations);
-        }
-        else if (animations.length === 1) {
-            return animations[0];
-        }
-        else {
-            return newRoot;
-        }
-    };
-    UpdateModelCommand.prototype.updateElement = function (left, right, animationData) {
-        if (model_2.isLocateable(left) && model_2.isLocateable(right)) {
-            var leftPos = left.position;
-            var rightPos = right.position;
-            if (!geometry_1.almostEquals(leftPos.x, rightPos.x) || !geometry_1.almostEquals(leftPos.y, rightPos.y)) {
-                if (animationData.moves === undefined)
-                    animationData.moves = [];
-                animationData.moves.push({
-                    element: right,
-                    elementId: right.id,
-                    fromPosition: leftPos,
-                    toPosition: rightPos
-                });
-                right.position = leftPos;
-            }
-        }
-        if (model_3.isBoundsAware(left) && model_3.isBoundsAware(right)) {
-            if (!geometry_1.isValidDimension(right.bounds)) {
-                right.bounds = {
-                    x: right.bounds.x,
-                    y: right.bounds.y,
-                    width: left.bounds.width,
-                    height: left.bounds.height
-                };
-            }
-            else if (!geometry_1.almostEquals(left.bounds.width, right.bounds.width)
-                || !geometry_1.almostEquals(left.bounds.height, right.bounds.height)) {
-                if (animationData.resizes === undefined)
-                    animationData.resizes = [];
-                animationData.resizes.push({
-                    element: right,
-                    fromDimension: {
-                        width: left.bounds.width,
-                        height: left.bounds.height,
-                    },
-                    toDimension: {
-                        width: right.bounds.width,
-                        height: right.bounds.height,
-                    }
-                });
-            }
-        }
-        if (model_4.isSelectable(left) && model_4.isSelectable(right)) {
-            right.selected = left.selected;
-        }
-        if (left instanceof smodel_1.SModelRoot && right instanceof smodel_1.SModelRoot) {
-            right.canvasBounds = left.canvasBounds;
-        }
-        if (left instanceof viewport_root_1.ViewportRootElement && right instanceof viewport_root_1.ViewportRootElement) {
-            right.scroll = left.scroll;
-            right.zoom = left.zoom;
-        }
-    };
-    UpdateModelCommand.prototype.createAnimations = function (data, root, context) {
-        var animations = [];
-        if (data.fades.length > 0) {
-            animations.push(new fade_1.FadeAnimation(root, data.fades, context, true));
-        }
-        if (data.moves !== undefined && data.moves.length > 0) {
-            var movesMap = new Map;
-            for (var _i = 0, _a = data.moves; _i < _a.length; _i++) {
-                var move = _a[_i];
-                movesMap.set(move.elementId, move);
-            }
-            animations.push(new move_1.MoveAnimation(root, movesMap, context, false));
-        }
-        if (data.resizes !== undefined && data.resizes.length > 0) {
-            var resizesMap = new Map;
-            for (var _b = 0, _c = data.resizes; _b < _c.length; _b++) {
-                var resize = _c[_b];
-                resizesMap.set(resize.element.id, resize);
-            }
-            animations.push(new resize_1.ResizeAnimation(root, resizesMap, context, false));
-        }
-        return animations;
-    };
-    UpdateModelCommand.prototype.undo = function (context) {
-        return this.performUpdate(this.newRoot, this.oldRoot, context);
-    };
-    UpdateModelCommand.prototype.redo = function (context) {
-        return this.performUpdate(this.oldRoot, this.newRoot, context);
-    };
-    UpdateModelCommand.KIND = 'updateModel';
-    UpdateModelCommand = __decorate([
-        inversify_1.injectable(),
-        __metadata("design:paramtypes", [UpdateModelAction])
-    ], UpdateModelCommand);
-    return UpdateModelCommand;
-}(command_1.Command));
-exports.UpdateModelCommand = UpdateModelCommand;
-//# sourceMappingURL=update-model.js.map
-
-/***/ }),
-/* 99 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var browser_1 = __webpack_require__(65);
-var smodel_1 = __webpack_require__(2);
-var command_1 = __webpack_require__(8);
-var key_tool_1 = __webpack_require__(35);
-var model_1 = __webpack_require__(9);
-var model_2 = __webpack_require__(31);
-var viewport_1 = __webpack_require__(42);
-var model_3 = __webpack_require__(32);
-/**
- * Triggered when the user requests the viewer to center on the current model. The resulting
- * CenterCommand changes the scroll setting of the viewport accordingly and resets the zoom to its default.
- * This action can also be sent from the model source to the client in order to perform such a
- * viewport change programmatically.
- */
-var CenterAction = /** @class */ (function () {
-    function CenterAction(elementIds, animate) {
-        if (animate === void 0) { animate = true; }
-        this.elementIds = elementIds;
-        this.animate = animate;
-        this.kind = CenterCommand.KIND;
-    }
-    return CenterAction;
-}());
-exports.CenterAction = CenterAction;
-/**
- * Triggered when the user requests the viewer to fit its content to the available drawing area.
- * The resulting FitToScreenCommand changes the zoom and scroll settings of the viewport so the model
- * can be shown completely. This action can also be sent from the model source to the client in order
- * to perform such a viewport change programmatically.
- */
-var FitToScreenAction = /** @class */ (function () {
-    function FitToScreenAction(elementIds, padding, maxZoom, animate) {
-        if (animate === void 0) { animate = true; }
-        this.elementIds = elementIds;
-        this.padding = padding;
-        this.maxZoom = maxZoom;
-        this.animate = animate;
-        this.kind = FitToScreenCommand.KIND;
-    }
-    return FitToScreenAction;
-}());
-exports.FitToScreenAction = FitToScreenAction;
-var BoundsAwareViewportCommand = /** @class */ (function (_super) {
-    __extends(BoundsAwareViewportCommand, _super);
-    function BoundsAwareViewportCommand(animate) {
-        var _this = _super.call(this) || this;
-        _this.animate = animate;
-        return _this;
-    }
-    BoundsAwareViewportCommand.prototype.initialize = function (model) {
-        var _this = this;
-        if (model_3.isViewport(model)) {
-            this.oldViewport = {
-                scroll: model.scroll,
-                zoom: model.zoom
-            };
-            var allBounds_1 = [];
-            this.getElementIds().forEach(function (id) {
-                var element = model.index.getById(id);
-                if (element && model_1.isBoundsAware(element))
-                    allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));
-            });
-            if (allBounds_1.length === 0) {
-                model.index.all().forEach(function (element) {
-                    if (model_2.isSelectable(element) && element.selected && model_1.isBoundsAware(element))
-                        allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));
-                });
-            }
-            if (allBounds_1.length === 0) {
-                model.index.all().forEach(function (element) {
-                    if (model_1.isBoundsAware(element))
-                        allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));
-                });
-            }
-            var bounds = allBounds_1.reduce(function (b0, b1) { return b0 === undefined ? b1 : geometry_1.combine(b0, b1); }, undefined);
-            if (geometry_1.isValidDimension(bounds))
-                this.newViewport = this.getNewViewport(bounds, model);
-        }
-    };
-    BoundsAwareViewportCommand.prototype.boundsInViewport = function (element, bounds, viewport) {
-        if (element instanceof smodel_1.SChildElement && element.parent !== viewport)
-            return this.boundsInViewport(element.parent, element.parent.localToParent(bounds), viewport);
-        else
-            return bounds;
-    };
-    BoundsAwareViewportCommand.prototype.execute = function (context) {
-        this.initialize(context.root);
-        return this.redo(context);
-    };
-    BoundsAwareViewportCommand.prototype.undo = function (context) {
-        var model = context.root;
-        if (model_3.isViewport(model) && this.newViewport && !this.equal(this.newViewport, this.oldViewport)) {
-            if (this.animate)
-                return new viewport_1.ViewportAnimation(model, this.newViewport, this.oldViewport, context).start();
-            else {
-                model.scroll = this.oldViewport.scroll;
-                model.zoom = this.oldViewport.zoom;
-            }
-        }
-        return model;
-    };
-    BoundsAwareViewportCommand.prototype.redo = function (context) {
-        var model = context.root;
-        if (model_3.isViewport(model) && this.newViewport && !this.equal(this.newViewport, this.oldViewport)) {
-            if (this.animate) {
-                return new viewport_1.ViewportAnimation(model, this.oldViewport, this.newViewport, context).start();
-            }
-            else {
-                model.scroll = this.newViewport.scroll;
-                model.zoom = this.newViewport.zoom;
-            }
-        }
-        return model;
-    };
-    BoundsAwareViewportCommand.prototype.equal = function (vp1, vp2) {
-        return vp1.zoom === vp2.zoom && vp1.scroll.x === vp2.scroll.x && vp1.scroll.y === vp2.scroll.y;
-    };
-    return BoundsAwareViewportCommand;
-}(command_1.Command));
-exports.BoundsAwareViewportCommand = BoundsAwareViewportCommand;
-var CenterCommand = /** @class */ (function (_super) {
-    __extends(CenterCommand, _super);
-    function CenterCommand(action) {
-        var _this = _super.call(this, action.animate) || this;
-        _this.action = action;
-        return _this;
-    }
-    CenterCommand.prototype.getElementIds = function () {
-        return this.action.elementIds;
-    };
-    CenterCommand.prototype.getNewViewport = function (bounds, model) {
-        var c = geometry_1.center(bounds);
-        return {
-            scroll: {
-                x: c.x - 0.5 * model.canvasBounds.width,
-                y: c.y - 0.5 * model.canvasBounds.height
-            },
-            zoom: 1
-        };
-    };
-    CenterCommand.KIND = 'center';
-    return CenterCommand;
-}(BoundsAwareViewportCommand));
-exports.CenterCommand = CenterCommand;
-var FitToScreenCommand = /** @class */ (function (_super) {
-    __extends(FitToScreenCommand, _super);
-    function FitToScreenCommand(action) {
-        var _this = _super.call(this, action.animate) || this;
-        _this.action = action;
-        return _this;
-    }
-    FitToScreenCommand.prototype.getElementIds = function () {
-        return this.action.elementIds;
-    };
-    FitToScreenCommand.prototype.getNewViewport = function (bounds, model) {
-        var c = geometry_1.center(bounds);
-        var delta = this.action.padding === undefined
-            ? 0
-            : 2 * this.action.padding;
-        var zoom = Math.min(model.canvasBounds.width / (bounds.width + delta), model.canvasBounds.height / bounds.height + delta);
-        if (this.action.maxZoom !== undefined)
-            zoom = Math.min(zoom, this.action.maxZoom);
-        return {
-            scroll: {
-                x: c.x - 0.5 * model.canvasBounds.width / zoom,
-                y: c.y - 0.5 * model.canvasBounds.height / zoom
-            },
-            zoom: zoom
-        };
-    };
-    FitToScreenCommand.KIND = 'fit';
-    return FitToScreenCommand;
-}(BoundsAwareViewportCommand));
-exports.FitToScreenCommand = FitToScreenCommand;
-var CenterKeyboardListener = /** @class */ (function (_super) {
-    __extends(CenterKeyboardListener, _super);
-    function CenterKeyboardListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    CenterKeyboardListener.prototype.keyDown = function (element, event) {
-        if (browser_1.isCtrlOrCmd(event)) {
-            switch (event.keyCode) {
-                case 67:
-                    return [new CenterAction([])];
-                case 70:
-                    return [new FitToScreenAction([])];
-            }
-        }
-        return [];
-    };
-    return CenterKeyboardListener;
-}(key_tool_1.KeyListener));
-exports.CenterKeyboardListener = CenterKeyboardListener;
-//# sourceMappingURL=center-fit.js.map
-
-/***/ }),
-/* 100 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var smodel_1 = __webpack_require__(2);
-var model_1 = __webpack_require__(32);
-var model_2 = __webpack_require__(62);
-/**
- * Model root element that defines a viewport, so it transforms the coordinate system with
- * a `scroll` translation and a `zoom` scaling.
- */
-var ViewportRootElement = /** @class */ (function (_super) {
-    __extends(ViewportRootElement, _super);
-    function ViewportRootElement() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.scroll = { x: 0, y: 0 };
-        _this.zoom = 1;
-        _this.export = false;
-        return _this;
-    }
-    ViewportRootElement.prototype.hasFeature = function (feature) {
-        return feature === model_1.viewportFeature || feature === model_2.exportFeature;
-    };
-    ViewportRootElement.prototype.localToParent = function (point) {
-        var result = {
-            x: (point.x - this.scroll.x) * this.zoom,
-            y: (point.y - this.scroll.y) * this.zoom,
-            width: -1,
-            height: -1
-        };
-        if (geometry_1.isBounds(point)) {
-            result.width = point.width * this.zoom;
-            result.height = point.height * this.zoom;
-        }
-        return result;
-    };
-    ViewportRootElement.prototype.parentToLocal = function (point) {
-        var result = {
-            x: (point.x / this.zoom) + this.scroll.x,
-            y: (point.y / this.zoom) + this.scroll.y,
-            width: -1,
-            height: -1
-        };
-        if (geometry_1.isBounds(point) && geometry_1.isValidDimension(point)) {
-            result.width = point.width / this.zoom;
-            result.height = point.height / this.zoom;
-        }
-        return result;
-    };
-    return ViewportRootElement;
-}(smodel_1.SModelRoot));
-exports.ViewportRootElement = ViewportRootElement;
-//# sourceMappingURL=viewport-root.js.map
-
-/***/ }),
-/* 101 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-var model_1 = __webpack_require__(9);
-var model_2 = __webpack_require__(51);
-var model_3 = __webpack_require__(63);
-var model_4 = __webpack_require__(41);
-var model_5 = __webpack_require__(31);
-var viewport_root_1 = __webpack_require__(100);
-var geometry_1 = __webpack_require__(3);
-var model_6 = __webpack_require__(9);
-/**
- * Root element for graph-like models.
- */
-var SGraph = /** @class */ (function (_super) {
-    __extends(SGraph, _super);
-    function SGraph() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return SGraph;
-}(viewport_root_1.ViewportRootElement));
-exports.SGraph = SGraph;
-/**
- * Model element class for nodes, which are connectable entities in a graph. A node can be connected to
- * another node via an SEdge. Such a connection can be direct, i.e. the node is the source or target of
- * the edge, or indirect through a port, i.e. it contains an SPort which is the source or target of the edge.
- */
-var SNode = /** @class */ (function (_super) {
-    __extends(SNode, _super);
-    function SNode() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.hoverFeedback = false;
-        _this.selected = false;
-        _this.opacity = 1;
-        return _this;
-    }
-    SNode.prototype.hasFeature = function (feature) {
-        return feature === model_5.selectFeature || feature === model_4.moveFeature || feature === model_1.boundsFeature
-            || feature === model_1.layoutContainerFeature || feature === model_2.fadeFeature || feature === model_3.hoverFeedbackFeature
-            || feature === model_3.popupFeature;
-    };
-    return SNode;
-}(model_6.SShapeElement));
-exports.SNode = SNode;
-/**
- * A port is a connection point for edges. It should always be contained in an SNode.
- */
-var SPort = /** @class */ (function (_super) {
-    __extends(SPort, _super);
-    function SPort() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.hoverFeedback = false;
-        _this.selected = false;
-        _this.opacity = 1;
-        return _this;
-    }
-    SPort.prototype.hasFeature = function (feature) {
-        return feature === model_5.selectFeature || feature === model_1.boundsFeature || feature === model_2.fadeFeature
-            || feature === model_3.hoverFeedbackFeature;
-    };
-    return SPort;
-}(model_6.SShapeElement));
-exports.SPort = SPort;
-/**
- * Model element class for edges, which are the connectors in a graph. An edge has a source and a target,
- * each of which can be either a node or a port. The source and target elements are referenced via their
- * ids and can be resolved with the index stored in the root element.
- */
-var SEdge = /** @class */ (function (_super) {
-    __extends(SEdge, _super);
-    function SEdge() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.routingPoints = [];
-        _this.opacity = 1;
-        return _this;
-    }
-    Object.defineProperty(SEdge.prototype, "source", {
-        get: function () {
-            return this.index.getById(this.sourceId);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(SEdge.prototype, "target", {
-        get: function () {
-            return this.index.getById(this.targetId);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    SEdge.prototype.hasFeature = function (feature) {
-        return feature === model_2.fadeFeature;
-    };
-    return SEdge;
-}(smodel_1.SChildElement));
-exports.SEdge = SEdge;
-/**
- * A label can be attached to a node, edge, or port, and contains some text to be rendered in its view.
- */
-var SLabel = /** @class */ (function (_super) {
-    __extends(SLabel, _super);
-    function SLabel() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.selected = false;
-        _this.alignment = geometry_1.ORIGIN_POINT;
-        _this.opacity = 1;
-        return _this;
-    }
-    SLabel.prototype.hasFeature = function (feature) {
-        return feature === model_1.boundsFeature || feature === model_1.alignFeature || feature === model_2.fadeFeature || feature === model_1.layoutableChildFeature;
-    };
-    return SLabel;
-}(model_6.SShapeElement));
-exports.SLabel = SLabel;
-/**
- * A compartment is used to group multiple child elements such as labels of a node. Usually a `vbox`
- * or `hbox` layout is used to arrange these children.
- */
-var SCompartment = /** @class */ (function (_super) {
-    __extends(SCompartment, _super);
-    function SCompartment() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.opacity = 1;
-        return _this;
-    }
-    SCompartment.prototype.hasFeature = function (feature) {
-        return feature === model_1.boundsFeature || feature === model_1.layoutContainerFeature || feature === model_1.layoutableChildFeature || feature === model_2.fadeFeature;
-    };
-    return SCompartment;
-}(model_6.SShapeElement));
-exports.SCompartment = SCompartment;
-//# sourceMappingURL=sgraph.js.map
-
-/***/ }),
-/* 102 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var action_handler_1 = __webpack_require__(38);
-var set_model_1 = __webpack_require__(49);
-var svg_exporter_1 = __webpack_require__(40);
-/**
- * A model source is serving the model to the event cycle. It represents
- * the entry point to the client for external sources, such as model
- * editors.
- *
- * As an IActionHandler it listens to actions in and reacts to them with
- * commands or actions if necessary. This way, you can implement action
- * protocols between the client and the outside world.
- *
- * There are two default implementations for a ModelSource:
- * <ul>
- * <li>the LocalModelSource handles the actions to calculate bounds and
- * set/update the model</li>
- * <li>the DiagramServer connects via websocket to a remote source. It
- * can be used to connect to a model editor that provides the model,
- * layouts diagrams, transfers selection and answers model queries from
- * the client.</li>
- */
-var ModelSource = /** @class */ (function () {
-    function ModelSource(actionDispatcher, actionHandlerRegistry, viewerOptions) {
-        this.actionDispatcher = actionDispatcher;
-        this.viewerOptions = viewerOptions;
-        this.initialize(actionHandlerRegistry);
-    }
-    ModelSource.prototype.initialize = function (registry) {
-        // Register model manipulation commands
-        registry.registerCommand(set_model_1.SetModelCommand);
-        // Register this model source
-        registry.register(set_model_1.RequestModelAction.KIND, this);
-        registry.register(svg_exporter_1.ExportSvgAction.KIND, this);
-    };
-    ModelSource = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),
-        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __metadata("design:paramtypes", [Object, action_handler_1.ActionHandlerRegistry, Object])
-    ], ModelSource);
-    return ModelSource;
-}());
-exports.ModelSource = ModelSource;
-//# sourceMappingURL=model-source.js.map
-
-/***/ }),
-/* 103 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var LogLevel;
-(function (LogLevel) {
-    LogLevel[LogLevel["none"] = 0] = "none";
-    LogLevel[LogLevel["error"] = 1] = "error";
-    LogLevel[LogLevel["warn"] = 2] = "warn";
-    LogLevel[LogLevel["info"] = 3] = "info";
-    LogLevel[LogLevel["log"] = 4] = "log";
-})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
-var NullLogger = /** @class */ (function () {
-    function NullLogger() {
-        this.logLevel = LogLevel.none;
-    }
-    NullLogger.prototype.error = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-    };
-    NullLogger.prototype.warn = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-    };
-    NullLogger.prototype.info = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-    };
-    NullLogger.prototype.log = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-    };
-    NullLogger = __decorate([
-        inversify_1.injectable()
-    ], NullLogger);
-    return NullLogger;
-}());
-exports.NullLogger = NullLogger;
-var ConsoleLogger = /** @class */ (function () {
-    function ConsoleLogger(logLevel, viewOptions) {
-        if (logLevel === void 0) { logLevel = LogLevel.log; }
-        if (viewOptions === void 0) { viewOptions = { baseDiv: '' }; }
-        this.logLevel = logLevel;
-        this.viewOptions = viewOptions;
-    }
-    ConsoleLogger.prototype.error = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= LogLevel.error)
-            try {
-                console.error.apply(thisArg, this.consoleArguments(thisArg, message, params));
-            }
-            catch (error) { }
-    };
-    ConsoleLogger.prototype.warn = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= LogLevel.warn)
-            try {
-                console.warn.apply(thisArg, this.consoleArguments(thisArg, message, params));
-            }
-            catch (error) { }
-    };
-    ConsoleLogger.prototype.info = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= LogLevel.info)
-            try {
-                console.info.apply(thisArg, this.consoleArguments(thisArg, message, params));
-            }
-            catch (error) { }
-    };
-    ConsoleLogger.prototype.log = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= LogLevel.log)
-            try {
-                console.log.apply(thisArg, this.consoleArguments(thisArg, message, params));
-            }
-            catch (error) { }
-    };
-    ConsoleLogger.prototype.consoleArguments = function (thisArg, message, params) {
-        var caller;
-        if (typeof thisArg === 'object')
-            caller = thisArg.constructor.name;
-        else
-            caller = thisArg;
-        var date = new Date();
-        return [date.toLocaleTimeString() + ' ' + this.viewOptions.baseDiv + ' ' + caller + ': ' + message].concat(params);
-    };
-    ConsoleLogger = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.LogLevel)),
-        __param(1, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __metadata("design:paramtypes", [Number, Object])
-    ], ConsoleLogger);
-    return ConsoleLogger;
-}());
-exports.ConsoleLogger = ConsoleLogger;
-//# sourceMappingURL=logging.js.map
-
-/***/ }),
-/* 104 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var document = __webpack_require__(6).document;
-module.exports = document && document.documentElement;
-
-
-/***/ }),
-/* 105 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = !__webpack_require__(23) && !__webpack_require__(24)(function () {
-  return Object.defineProperty(__webpack_require__(68)('div'), 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-/***/ }),
-/* 106 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.2.8 IsRegExp(argument)
-var isObject = __webpack_require__(14);
-var cof = __webpack_require__(36);
-var MATCH = __webpack_require__(4)('match');
-module.exports = function (it) {
-  var isRegExp;
-  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-};
-
-
-/***/ }),
-/* 107 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var ITERATOR = __webpack_require__(4)('iterator');
-var SAFE_CLOSING = false;
-
-try {
-  var riter = [7][ITERATOR]();
-  riter['return'] = function () { SAFE_CLOSING = true; };
-  // eslint-disable-next-line no-throw-literal
-  Array.from(riter, function () { throw 2; });
-} catch (e) { /* empty */ }
-
-module.exports = function (exec, skipClosing) {
-  if (!skipClosing && !SAFE_CLOSING) return false;
-  var safe = false;
-  try {
-    var arr = [7];
-    var iter = arr[ITERATOR]();
-    iter.next = function () { return { done: safe = true }; };
-    arr[ITERATOR] = function () { return iter; };
-    exec(arr);
-  } catch (e) { /* empty */ }
-  return safe;
-};
-
-
-/***/ }),
-/* 108 */
-/***/ (function(module, exports) {
-
-module.exports = function (done, value) {
-  return { value: value, done: !!done };
-};
-
-
-/***/ }),
-/* 109 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// 25.4.1.5 NewPromiseCapability(C)
-var aFunction = __webpack_require__(54);
-
-function PromiseCapability(C) {
-  var resolve, reject;
-  this.promise = new C(function ($$resolve, $$reject) {
-    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
-    resolve = $$resolve;
-    reject = $$reject;
-  });
-  this.resolve = aFunction(resolve);
-  this.reject = aFunction(reject);
-}
-
-module.exports.f = function (C) {
-  return new PromiseCapability(C);
-};
-
-
-/***/ }),
-/* 110 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var pIE = __webpack_require__(75);
-var createDesc = __webpack_require__(58);
-var toIObject = __webpack_require__(33);
-var toPrimitive = __webpack_require__(80);
-var has = __webpack_require__(25);
-var IE8_DOM_DEFINE = __webpack_require__(105);
-var gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = __webpack_require__(23) ? gOPD : function getOwnPropertyDescriptor(O, P) {
-  O = toIObject(O);
-  P = toPrimitive(P, true);
-  if (IE8_DOM_DEFINE) try {
-    return gOPD(O, P);
-  } catch (e) { /* empty */ }
-  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
-};
-
-
-/***/ }),
-/* 111 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = __webpack_require__(113);
-var hiddenKeys = __webpack_require__(69).concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
-  return $keys(O, hiddenKeys);
-};
-
-
-/***/ }),
-/* 112 */
-/***/ (function(module, exports) {
-
-exports.f = Object.getOwnPropertySymbols;
-
-
-/***/ }),
-/* 113 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var has = __webpack_require__(25);
-var toIObject = __webpack_require__(33);
-var arrayIndexOf = __webpack_require__(157)(false);
-var IE_PROTO = __webpack_require__(77)('IE_PROTO');
-
-module.exports = function (object, names) {
-  var O = toIObject(object);
-  var i = 0;
-  var result = [];
-  var key;
-  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
-  // Don't enum bug & hidden keys
-  while (names.length > i) if (has(O, key = names[i++])) {
-    ~arrayIndexOf(result, key) || result.push(key);
-  }
-  return result;
-};
-
-
-/***/ }),
-/* 114 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var global = __webpack_require__(6);
-var dP = __webpack_require__(27);
-var DESCRIPTORS = __webpack_require__(23);
-var SPECIES = __webpack_require__(4)('species');
-
-module.exports = function (KEY) {
-  var C = global[KEY];
-  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
-    configurable: true,
-    get: function () { return this; }
-  });
-};
-
-
-/***/ }),
-/* 115 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var toInteger = __webpack_require__(59);
-var defined = __webpack_require__(22);
-// true  -> String#at
-// false -> String#codePointAt
-module.exports = function (TO_STRING) {
-  return function (that, pos) {
-    var s = String(defined(that));
-    var i = toInteger(pos);
-    var l = s.length;
-    var a, b;
-    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
-    a = s.charCodeAt(i);
-    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
-      ? TO_STRING ? s.charAt(i) : a
-      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
-  };
-};
-
-
-/***/ }),
-/* 116 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var ctx = __webpack_require__(37);
-var invoke = __webpack_require__(162);
-var html = __webpack_require__(104);
-var cel = __webpack_require__(68);
-var global = __webpack_require__(6);
-var process = global.process;
-var setTask = global.setImmediate;
-var clearTask = global.clearImmediate;
-var MessageChannel = global.MessageChannel;
-var Dispatch = global.Dispatch;
-var counter = 0;
-var queue = {};
-var ONREADYSTATECHANGE = 'onreadystatechange';
-var defer, channel, port;
-var run = function () {
-  var id = +this;
-  // eslint-disable-next-line no-prototype-builtins
-  if (queue.hasOwnProperty(id)) {
-    var fn = queue[id];
-    delete queue[id];
-    fn();
-  }
-};
-var listener = function (event) {
-  run.call(event.data);
-};
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if (!setTask || !clearTask) {
-  setTask = function setImmediate(fn) {
-    var args = [];
-    var i = 1;
-    while (arguments.length > i) args.push(arguments[i++]);
-    queue[++counter] = function () {
-      // eslint-disable-next-line no-new-func
-      invoke(typeof fn == 'function' ? fn : Function(fn), args);
-    };
-    defer(counter);
-    return counter;
-  };
-  clearTask = function clearImmediate(id) {
-    delete queue[id];
-  };
-  // Node.js 0.8-
-  if (__webpack_require__(36)(process) == 'process') {
-    defer = function (id) {
-      process.nextTick(ctx(run, id, 1));
-    };
-  // Sphere (JS game engine) Dispatch API
-  } else if (Dispatch && Dispatch.now) {
-    defer = function (id) {
-      Dispatch.now(ctx(run, id, 1));
-    };
-  // Browsers with MessageChannel, includes WebWorkers
-  } else if (MessageChannel) {
-    channel = new MessageChannel();
-    port = channel.port2;
-    channel.port1.onmessage = listener;
-    defer = ctx(port.postMessage, port, 1);
-  // Browsers with postMessage, skip WebWorkers
-  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
-  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
-    defer = function (id) {
-      global.postMessage(id + '', '*');
-    };
-    global.addEventListener('message', listener, false);
-  // IE8-
-  } else if (ONREADYSTATECHANGE in cel('script')) {
-    defer = function (id) {
-      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
-        html.removeChild(this);
-        run.call(id);
-      };
-    };
-  // Rest old browsers
-  } else {
-    defer = function (id) {
-      setTimeout(ctx(run, id, 1), 0);
-    };
-  }
-}
-module.exports = {
-  set: setTask,
-  clear: clearTask
-};
-
-
-/***/ }),
-/* 117 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var toInteger = __webpack_require__(59);
-var max = Math.max;
-var min = Math.min;
-module.exports = function (index, length) {
-  index = toInteger(index);
-  return index < 0 ? max(index + length, 0) : min(index, length);
-};
-
-
-/***/ }),
-/* 118 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(14);
-module.exports = function (it, TYPE) {
-  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
-  return it;
-};
-
-
-/***/ }),
-/* 119 */
-/***/ (function(module, exports, __webpack_require__) {
-
-exports.f = __webpack_require__(4);
-
-
-/***/ }),
-/* 120 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $iterators = __webpack_require__(182);
-var getKeys = __webpack_require__(57);
-var redefine = __webpack_require__(28);
-var global = __webpack_require__(6);
-var hide = __webpack_require__(26);
-var Iterators = __webpack_require__(43);
-var wks = __webpack_require__(4);
-var ITERATOR = wks('iterator');
-var TO_STRING_TAG = wks('toStringTag');
-var ArrayValues = Iterators.Array;
-
-var DOMIterables = {
-  CSSRuleList: true, // TODO: Not spec compliant, should be false.
-  CSSStyleDeclaration: false,
-  CSSValueList: false,
-  ClientRectList: false,
-  DOMRectList: false,
-  DOMStringList: false,
-  DOMTokenList: true,
-  DataTransferItemList: false,
-  FileList: false,
-  HTMLAllCollection: false,
-  HTMLCollection: false,
-  HTMLFormElement: false,
-  HTMLSelectElement: false,
-  MediaList: true, // TODO: Not spec compliant, should be false.
-  MimeTypeArray: false,
-  NamedNodeMap: false,
-  NodeList: true,
-  PaintRequestList: false,
-  Plugin: false,
-  PluginArray: false,
-  SVGLengthList: false,
-  SVGNumberList: false,
-  SVGPathSegList: false,
-  SVGPointList: false,
-  SVGStringList: false,
-  SVGTransformList: false,
-  SourceBufferList: false,
-  StyleSheetList: true, // TODO: Not spec compliant, should be false.
-  TextTrackCueList: false,
-  TextTrackList: false,
-  TouchList: false
-};
-
-for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
-  var NAME = collections[i];
-  var explicit = DOMIterables[NAME];
-  var Collection = global[NAME];
-  var proto = Collection && Collection.prototype;
-  var key;
-  if (proto) {
-    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
-    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
-    Iterators[NAME] = ArrayValues;
-    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
-  }
-}
-
-
-/***/ }),
-/* 121 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var __WEBPACK_AMD_DEFINE_RESULT__;/* FileSaver.js
- * A saveAs() FileSaver implementation.
- * 1.3.2
- * 2016-06-16 18:25:19
- *
- * By Eli Grey, http://eligrey.com
- * License: MIT
- *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
- */
-
-/*global self */
-/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
-
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-
-var saveAs = saveAs || (function(view) {
-	"use strict";
-	// IE <10 is explicitly unsupported
-	if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
-		return;
-	}
-	var
-		  doc = view.document
-		  // only get URL when necessary in case Blob.js hasn't overridden it yet
-		, get_URL = function() {
-			return view.URL || view.webkitURL || view;
-		}
-		, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
-		, can_use_save_link = "download" in save_link
-		, click = function(node) {
-			var event = new MouseEvent("click");
-			node.dispatchEvent(event);
-		}
-		, is_safari = /constructor/i.test(view.HTMLElement) || view.safari
-		, is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
-		, throw_outside = function(ex) {
-			(view.setImmediate || view.setTimeout)(function() {
-				throw ex;
-			}, 0);
-		}
-		, force_saveable_type = "application/octet-stream"
-		// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
-		, arbitrary_revoke_timeout = 1000 * 40 // in ms
-		, revoke = function(file) {
-			var revoker = function() {
-				if (typeof file === "string") { // file is an object URL
-					get_URL().revokeObjectURL(file);
-				} else { // file is a File
-					file.remove();
-				}
-			};
-			setTimeout(revoker, arbitrary_revoke_timeout);
-		}
-		, dispatch = function(filesaver, event_types, event) {
-			event_types = [].concat(event_types);
-			var i = event_types.length;
-			while (i--) {
-				var listener = filesaver["on" + event_types[i]];
-				if (typeof listener === "function") {
-					try {
-						listener.call(filesaver, event || filesaver);
-					} catch (ex) {
-						throw_outside(ex);
-					}
-				}
-			}
-		}
-		, auto_bom = function(blob) {
-			// prepend BOM for UTF-8 XML and text/* types (including HTML)
-			// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
-			if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
-				return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
-			}
-			return blob;
-		}
-		, FileSaver = function(blob, name, no_auto_bom) {
-			if (!no_auto_bom) {
-				blob = auto_bom(blob);
-			}
-			// First try a.download, then web filesystem, then object URLs
-			var
-				  filesaver = this
-				, type = blob.type
-				, force = type === force_saveable_type
-				, object_url
-				, dispatch_all = function() {
-					dispatch(filesaver, "writestart progress write writeend".split(" "));
-				}
-				// on any filesys errors revert to saving with object URLs
-				, fs_error = function() {
-					if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
-						// Safari doesn't allow downloading of blob urls
-						var reader = new FileReader();
-						reader.onloadend = function() {
-							var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
-							var popup = view.open(url, '_blank');
-							if(!popup) view.location.href = url;
-							url=undefined; // release reference before dispatching
-							filesaver.readyState = filesaver.DONE;
-							dispatch_all();
-						};
-						reader.readAsDataURL(blob);
-						filesaver.readyState = filesaver.INIT;
-						return;
-					}
-					// don't create more object URLs than needed
-					if (!object_url) {
-						object_url = get_URL().createObjectURL(blob);
-					}
-					if (force) {
-						view.location.href = object_url;
-					} else {
-						var opened = view.open(object_url, "_blank");
-						if (!opened) {
-							// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
-							view.location.href = object_url;
-						}
-					}
-					filesaver.readyState = filesaver.DONE;
-					dispatch_all();
-					revoke(object_url);
-				}
-			;
-			filesaver.readyState = filesaver.INIT;
-
-			if (can_use_save_link) {
-				object_url = get_URL().createObjectURL(blob);
-				setTimeout(function() {
-					save_link.href = object_url;
-					save_link.download = name;
-					click(save_link);
-					dispatch_all();
-					revoke(object_url);
-					filesaver.readyState = filesaver.DONE;
-				});
-				return;
-			}
-
-			fs_error();
-		}
-		, FS_proto = FileSaver.prototype
-		, saveAs = function(blob, name, no_auto_bom) {
-			return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
-		}
-	;
-	// IE 10+ (native saveAs)
-	if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
-		return function(blob, name, no_auto_bom) {
-			name = name || blob.name || "download";
-
-			if (!no_auto_bom) {
-				blob = auto_bom(blob);
-			}
-			return navigator.msSaveOrOpenBlob(blob, name);
-		};
-	}
-
-	FS_proto.abort = function(){};
-	FS_proto.readyState = FS_proto.INIT = 0;
-	FS_proto.WRITING = 1;
-	FS_proto.DONE = 2;
-
-	FS_proto.error =
-	FS_proto.onwritestart =
-	FS_proto.onprogress =
-	FS_proto.onwrite =
-	FS_proto.onabort =
-	FS_proto.onerror =
-	FS_proto.onwriteend =
-		null;
-
-	return saveAs;
-}(
-	   typeof self !== "undefined" && self
-	|| typeof window !== "undefined" && window
-	|| this.content
-));
-// `self` is undefined in Firefox for Android content script context
-// while `this` is nsIContentFrameMessageManager
-// with an attribute `content` that corresponds to the window
-
-if (typeof module !== "undefined" && module.exports) {
-  module.exports.saveAs = saveAs;
-} else if (("function" !== "undefined" && __webpack_require__(307) !== null) && (__webpack_require__(308) !== null)) {
-  !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
-    return saveAs;
-  }.call(exports, __webpack_require__, exports, module),
-				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
-}
-
-
-/***/ }),
-/* 122 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var error_msgs_1 = __webpack_require__(12);
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-var LazyServiceIdentifer = (function () {
-    function LazyServiceIdentifer(cb) {
-        this._cb = cb;
-    }
-    LazyServiceIdentifer.prototype.unwrap = function () {
-        return this._cb();
-    };
-    return LazyServiceIdentifer;
-}());
-exports.LazyServiceIdentifer = LazyServiceIdentifer;
-function inject(serviceIdentifier) {
-    return function (target, targetKey, index) {
-        if (serviceIdentifier === undefined) {
-            throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));
-        }
-        var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);
-        if (typeof index === "number") {
-            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-        }
-        else {
-            decorator_utils_1.tagProperty(target, targetKey, metadata);
-        }
-    };
-}
-exports.inject = inject;
-
-
-/***/ }),
-/* 123 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var MetadataReader = (function () {
-    function MetadataReader() {
-    }
-    MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {
-        var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);
-        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);
-        return {
-            compilerGeneratedMetadata: compilerGeneratedMetadata,
-            userGeneratedMetadata: userGeneratedMetadata || {}
-        };
-    };
-    MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {
-        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];
-        return userGeneratedMetadata;
-    };
-    return MetadataReader;
-}());
-exports.MetadataReader = MetadataReader;
-
-
-/***/ }),
-/* 124 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var guid_1 = __webpack_require__(34);
-var metadata_1 = __webpack_require__(16);
-var queryable_string_1 = __webpack_require__(230);
-var Target = (function () {
-    function Target(type, name, serviceIdentifier, namedOrTagged) {
-        this.guid = guid_1.guid();
-        this.type = type;
-        this.serviceIdentifier = serviceIdentifier;
-        this.name = new queryable_string_1.QueryableString(name || "");
-        this.metadata = new Array();
-        var metadataItem = null;
-        if (typeof namedOrTagged === "string") {
-            metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);
-        }
-        else if (namedOrTagged instanceof metadata_1.Metadata) {
-            metadataItem = namedOrTagged;
-        }
-        if (metadataItem !== null) {
-            this.metadata.push(metadataItem);
-        }
-    }
-    Target.prototype.hasTag = function (key) {
-        for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {
-            var m = _a[_i];
-            if (m.key === key) {
-                return true;
-            }
-        }
-        return false;
-    };
-    Target.prototype.isArray = function () {
-        return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);
-    };
-    Target.prototype.matchesArray = function (name) {
-        return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);
-    };
-    Target.prototype.isNamed = function () {
-        return this.hasTag(METADATA_KEY.NAMED_TAG);
-    };
-    Target.prototype.isTagged = function () {
-        return this.metadata.some(function (m) {
-            return (m.key !== METADATA_KEY.INJECT_TAG) &&
-                (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&
-                (m.key !== METADATA_KEY.NAME_TAG) &&
-                (m.key !== METADATA_KEY.UNMANAGED_TAG) &&
-                (m.key !== METADATA_KEY.NAMED_TAG);
-        });
-    };
-    Target.prototype.isOptional = function () {
-        return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
-    };
-    Target.prototype.getNamedTag = function () {
-        if (this.isNamed()) {
-            return this.metadata.filter(function (m) { return m.key === METADATA_KEY.NAMED_TAG; })[0];
-        }
-        return null;
-    };
-    Target.prototype.getCustomTags = function () {
-        if (this.isTagged()) {
-            return this.metadata.filter(function (m) {
-                return (m.key !== METADATA_KEY.INJECT_TAG) &&
-                    (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&
-                    (m.key !== METADATA_KEY.NAME_TAG) &&
-                    (m.key !== METADATA_KEY.UNMANAGED_TAG) &&
-                    (m.key !== METADATA_KEY.NAMED_TAG);
-            });
-        }
-        return null;
-    };
-    Target.prototype.matchesNamedTag = function (name) {
-        return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);
-    };
-    Target.prototype.matchesTag = function (key) {
-        var _this = this;
-        return function (value) {
-            for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {
-                var m = _a[_i];
-                if (m.key === key && m.value === value) {
-                    return true;
-                }
-            }
-            return false;
-        };
-    };
-    return Target;
-}());
-exports.Target = Target;
-
-
-/***/ }),
-/* 125 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_on_syntax_1 = __webpack_require__(83);
-var binding_when_syntax_1 = __webpack_require__(84);
-var BindingWhenOnSyntax = (function () {
-    function BindingWhenOnSyntax(binding) {
-        this._binding = binding;
-        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
-        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
-    }
-    BindingWhenOnSyntax.prototype.when = function (constraint) {
-        return this._bindingWhenSyntax.when(constraint);
-    };
-    BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {
-        return this._bindingWhenSyntax.whenTargetNamed(name);
-    };
-    BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {
-        return this._bindingWhenSyntax.whenTargetIsDefault();
-    };
-    BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenTargetTagged(tag, value);
-    };
-    BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
-        return this._bindingWhenSyntax.whenInjectedInto(parent);
-    };
-    BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {
-        return this._bindingWhenSyntax.whenParentNamed(name);
-    };
-    BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenParentTagged(tag, value);
-    };
-    BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
-        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
-    };
-    BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
-        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
-    };
-    BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
-        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
-    };
-    BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
-    };
-    BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
-        return this._bindingWhenSyntax.whenNoAncestorNamed(name);
-    };
-    BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
-    };
-    BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
-        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
-    };
-    BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
-        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
-    };
-    BindingWhenOnSyntax.prototype.onActivation = function (handler) {
-        return this._bindingOnSyntax.onActivation(handler);
-    };
-    return BindingWhenOnSyntax;
-}());
-exports.BindingWhenOnSyntax = BindingWhenOnSyntax;
-
-
-/***/ }),
-/* 126 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var traverseAncerstors = function (request, constraint) {
-    var parent = request.parentRequest;
-    if (parent !== null) {
-        return constraint(parent) ? true : traverseAncerstors(parent, constraint);
-    }
-    else {
-        return false;
-    }
-};
-exports.traverseAncerstors = traverseAncerstors;
-var taggedConstraint = function (key) { return function (value) {
-    var constraint = function (request) {
-        return request !== null && request.target !== null && request.target.matchesTag(key)(value);
-    };
-    constraint.metaData = new metadata_1.Metadata(key, value);
-    return constraint;
-}; };
-exports.taggedConstraint = taggedConstraint;
-var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
-exports.namedConstraint = namedConstraint;
-var typeConstraint = function (type) { return function (request) {
-    var binding = null;
-    if (request !== null) {
-        binding = request.bindings[0];
-        if (typeof type === "string") {
-            var serviceIdentifier = binding.serviceIdentifier;
-            return serviceIdentifier === type;
-        }
-        else {
-            var constructor = request.bindings[0].implementationType;
-            return type === constructor;
-        }
-    }
-    return false;
-}; };
-exports.typeConstraint = typeConstraint;
-
-
-/***/ }),
-/* 127 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-function isStackOverflowExeption(error) {
-    return (error instanceof RangeError ||
-        error.message === ERROR_MSGS.STACK_OVERFLOW);
-}
-exports.isStackOverflowExeption = isStackOverflowExeption;
-
-
-/***/ }),
-/* 128 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-function vnode(sel, data, children, text, elm) {
-    var key = data === undefined ? undefined : data.key;
-    return { sel: sel, data: data, children: children,
-        text: text, elm: elm, key: key };
-}
-exports.vnode = vnode;
-exports.default = vnode;
-//# sourceMappingURL=vnode.js.map
-
-/***/ }),
-/* 129 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Slows down animations towards the begin and the end.
- *
- * @param x the value between 0 (start of animation) and 1 (end of
- *     animation) linearly interpolated in time.
- * @returns {number} the eased value between 0 and 1
- */
-function easeInOut(x) {
-    if (x < 0.5)
-        return x * x * 2;
-    else
-        return 1 - (1 - x) * (1 - x) * 2;
-}
-exports.easeInOut = easeInOut;
-//# sourceMappingURL=easing.js.map
-
-/***/ }),
-/* 130 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_factory_1 = __webpack_require__(17);
-var animation_frame_syncer_1 = __webpack_require__(48);
-var command_1 = __webpack_require__(8);
-/**
- * The implementation of the ICommandStack. Clients should not use this
- * class directly.
- *
- * The command stack holds the current model as the result of the current
- * promise. When a new command is executed/undone/redone, its execution is
- * chained using <code>Promise#then()</code> to the current Promise. This
- * way we can handle long running commands without blocking the current
- * thread.
- *
- * The command stack also does the special handling for special commands:
- *
- * System commands should be transparent to the user and as such be
- * automatically undone/redone with the next plain command. Additional care
- * must be taken that system commands that are executed after undo don't
- * break the correspondence between the topmost commands on the undo and
- * redo stacks.
- *
- * Hidden commands only tell the viewer to render a hidden model such that
- * its bounds can be extracted from the DOM and forwarded as separate actions.
- * Hidden commands should not leave any trace on the undo/redo/off stacks.
- *
- * Mergeable commands should be merged with their predecessor if possible,
- * such that e.g. multiple subsequent moves of the smae element can be undone
- * in one single step.
- */
-var CommandStack = /** @class */ (function () {
-    function CommandStack(modelFactory, viewerProvider, logger, syncer, options) {
-        this.modelFactory = modelFactory;
-        this.viewerProvider = viewerProvider;
-        this.logger = logger;
-        this.syncer = syncer;
-        this.options = options;
-        this.undoStack = [];
-        this.redoStack = [];
-        /**
-         * System commands should be transparent to the user in undo/redo
-         * operations. When a system command is executed when the redo
-         * stack is not empty, it is pushed to offStack instead.
-         *
-         * On redo, all commands form this stack are undone such that the
-         * redo operation gets the exact same model as when it was executed
-         * first.
-         *
-         * On undo, all commands form this stack are undone as well as
-         * system ommands should be transparent to the user.
-         */
-        this.offStack = [];
-        this.currentPromise = Promise.resolve({
-            root: modelFactory.createRoot(smodel_factory_1.EMPTY_ROOT),
-            hiddenRoot: undefined,
-            popupRoot: undefined,
-            rootChanged: false,
-            hiddenRootChanged: false,
-            popupChanged: false
-        });
-    }
-    CommandStack.prototype.executeAll = function (commands) {
-        var _this = this;
-        commands.forEach(function (command) {
-            _this.logger.log(_this, 'Executing', command);
-            _this.handleCommand(command, command.execute, _this.mergeOrPush);
-        });
-        return this.thenUpdate();
-    };
-    CommandStack.prototype.execute = function (command) {
-        this.logger.log(this, 'Executing', command);
-        this.handleCommand(command, command.execute, this.mergeOrPush);
-        return this.thenUpdate();
-    };
-    CommandStack.prototype.undo = function () {
-        var _this = this;
-        this.undoOffStackSystemCommands();
-        this.undoPreceedingSystemCommands();
-        var command = this.undoStack.pop();
-        if (command !== undefined) {
-            this.logger.log(this, 'Undoing', command);
-            this.handleCommand(command, command.undo, function (command, context) {
-                _this.redoStack.push(command);
-            });
-        }
-        return this.thenUpdate();
-    };
-    CommandStack.prototype.redo = function () {
-        var _this = this;
-        this.undoOffStackSystemCommands();
-        var command = this.redoStack.pop();
-        if (command !== undefined) {
-            this.logger.log(this, 'Redoing', command);
-            this.handleCommand(command, command.redo, function (command, context) {
-                _this.pushToUndoStack(command);
-            });
-        }
-        this.redoFollowingSystemCommands();
-        return this.thenUpdate();
-    };
-    /**
-     * Chains the current promise with another Promise that performs the
-     * given operation on the given command.
-     *
-     * @param beforeResolve a function that is called directly before
-     * resolving the Promise to return the new model. Usually puts the
-     * command on the appropriate stack.
-     */
-    CommandStack.prototype.handleCommand = function (command, operation, beforeResolve) {
-        var _this = this;
-        this.currentPromise = this.currentPromise.then(function (state) {
-            var promise = new Promise(function (resolve, reject) {
-                var context = _this.createContext(state.root);
-                var newResult;
-                try {
-                    newResult = operation.call(command, context);
-                }
-                catch (error) {
-                    _this.logger.error(_this, "Failed to execute command:", error);
-                    newResult = state.root;
-                }
-                if (command instanceof command_1.HiddenCommand) {
-                    resolve(__assign({}, state, {
-                        hiddenRoot: newResult,
-                        hiddenRootChanged: true
-                    }));
-                }
-                else if (command instanceof command_1.PopupCommand) {
-                    resolve(__assign({}, state, {
-                        popupRoot: newResult,
-                        popupChanged: true
-                    }));
-                }
-                else if (newResult instanceof Promise) {
-                    newResult.then(function (newModel) {
-                        beforeResolve.call(_this, command, context);
-                        resolve(__assign({}, state, {
-                            root: newModel,
-                            rootChanged: true
-                        }));
-                    });
-                }
-                else {
-                    beforeResolve.call(_this, command, context);
-                    resolve(__assign({}, state, {
-                        root: newResult,
-                        rootChanged: true
-                    }));
-                }
-            });
-            return promise;
-        });
-    };
-    CommandStack.prototype.pushToUndoStack = function (command) {
-        this.undoStack.push(command);
-        if (this.options.undoHistoryLimit >= 0 && this.undoStack.length > this.options.undoHistoryLimit)
-            this.undoStack.splice(0, this.undoStack.length - this.options.undoHistoryLimit);
-    };
-    /**
-     * Notifies the Viewer to render the new model and/or the new hidden model
-     * and returns a Promise for the new model.
-     */
-    CommandStack.prototype.thenUpdate = function () {
-        var _this = this;
-        this.currentPromise = this.currentPromise.then(function (state) {
-            if (state.hiddenRootChanged && state.hiddenRoot !== undefined)
-                _this.updateHidden(state.hiddenRoot);
-            if (state.rootChanged)
-                _this.update(state.root);
-            if (state.popupChanged && state.popupRoot !== undefined)
-                _this.updatePopup(state.popupRoot);
-            return {
-                root: state.root,
-                hiddenRoot: undefined,
-                popupRoot: undefined,
-                rootChanged: false,
-                hiddenRootChanged: false,
-                popupChanged: false
-            };
-        });
-        return this.currentPromise.then(function (state) { return state.root; });
-    };
-    /**
-     * Notify the <code>Viewer</code> that the model has changed.
-     */
-    CommandStack.prototype.updatePopup = function (model) {
-        var _this = this;
-        if (this.viewer) {
-            this.viewer.updatePopup(model);
-            return;
-        }
-        this.viewerProvider().then(function (viewer) {
-            _this.viewer = viewer;
-            _this.updatePopup(model);
-        });
-    };
-    /**
-     * Notify the <code>Viewer</code> that the model has changed.
-     */
-    CommandStack.prototype.update = function (model) {
-        var _this = this;
-        if (this.viewer) {
-            this.viewer.update(model);
-            return;
-        }
-        this.viewerProvider().then(function (viewer) {
-            _this.viewer = viewer;
-            _this.update(model);
-        });
-    };
-    /**
-     * Notify the <code>Viewer</code> that the hidden model has changed.
-     */
-    CommandStack.prototype.updateHidden = function (model) {
-        var _this = this;
-        if (this.viewer) {
-            this.viewer.updateHidden(model);
-            return;
-        }
-        this.viewerProvider().then(function (viewer) {
-            _this.viewer = viewer;
-            _this.updateHidden(model);
-        });
-    };
-    /**
-     * Handling of commands after their execution.
-     *
-     * Hidden commands are not pushed to any stack.
-     *
-     * System commands are pushed to the <code>offStack</code> when the redo
-     * stack is not empty, allowing to undo the before a redo to keep the chain
-     * of commands consistent.
-     *
-     * Mergable commands are merged if possible.
-     */
-    CommandStack.prototype.mergeOrPush = function (command, context) {
-        var _this = this;
-        if (command instanceof command_1.HiddenCommand)
-            return;
-        if (command instanceof command_1.SystemCommand && this.redoStack.length > 0) {
-            this.offStack.push(command);
-        }
-        else {
-            this.offStack.forEach(function (command) { return _this.undoStack.push(command); });
-            this.offStack = [];
-            this.redoStack = [];
-            if (this.undoStack.length > 0) {
-                var lastCommand = this.undoStack[this.undoStack.length - 1];
-                if (lastCommand instanceof command_1.MergeableCommand && lastCommand.merge(command, context))
-                    return;
-            }
-            this.pushToUndoStack(command);
-        }
-    };
-    /**
-     * Reverts all system commands on the offStack.
-     */
-    CommandStack.prototype.undoOffStackSystemCommands = function () {
-        var command = this.offStack.pop();
-        while (command !== undefined) {
-            this.logger.log(this, 'Undoing off-stack', command);
-            this.handleCommand(command, command.undo, function () { });
-            command = this.offStack.pop();
-        }
-    };
-    /**
-     * System commands should be transparent to the user, so this method
-     * is called from <code>undo()</code> to revert all system commands
-     * at the top of the undoStack.
-     */
-    CommandStack.prototype.undoPreceedingSystemCommands = function () {
-        var _this = this;
-        var command = this.undoStack[this.undoStack.length - 1];
-        while (command !== undefined && command instanceof command_1.SystemCommand) {
-            this.undoStack.pop();
-            this.logger.log(this, 'Undoing', command);
-            this.handleCommand(command, command.undo, function (command, context) {
-                _this.redoStack.push(command);
-            });
-            command = this.undoStack[this.undoStack.length - 1];
-        }
-    };
-    /**
-     * System commands should be transparent to the user, so this method
-     * is called from <code>redo()</code> to re-execute all system commands
-     * at the top of the redoStack.
-     */
-    CommandStack.prototype.redoFollowingSystemCommands = function () {
-        var _this = this;
-        var command = this.redoStack[this.redoStack.length - 1];
-        while (command !== undefined && command instanceof command_1.SystemCommand) {
-            this.redoStack.pop();
-            this.logger.log(this, 'Redoing ', command);
-            this.handleCommand(command, command.redo, function (command, context) {
-                _this.pushToUndoStack(command);
-            });
-            command = this.redoStack[this.redoStack.length - 1];
-        }
-    };
-    /**
-     * Assembles the context object that is passed to the commands execution method.
-     */
-    CommandStack.prototype.createContext = function (currentModel) {
-        var context = {
-            root: currentModel,
-            modelChanged: this,
-            modelFactory: this.modelFactory,
-            duration: this.options.defaultDuration,
-            logger: this.logger,
-            syncer: this.syncer
-        };
-        return context;
-    };
-    CommandStack = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IModelFactory)),
-        __param(1, inversify_1.inject(types_1.TYPES.IViewerProvider)),
-        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),
-        __param(3, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),
-        __param(4, inversify_1.inject(types_1.TYPES.CommandStackOptions)),
-        __metadata("design:paramtypes", [Object, Function, Object, animation_frame_syncer_1.AnimationFrameSyncer, Object])
-    ], CommandStack);
-    return CommandStack;
-}());
-exports.CommandStack = CommandStack;
-//# sourceMappingURL=command-stack.js.map
-
-/***/ }),
-/* 131 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom_1 = __webpack_require__(149);
-/**
- * An view that avoids calculation and patching of VNodes unless some model properties have changed.
- * Based on snabbdom's thunks.
- */
-var ThunkView = /** @class */ (function () {
-    function ThunkView() {
-    }
-    ThunkView.prototype.render = function (model, context) {
-        var _this = this;
-        return snabbdom_1.h(this.selector(model), {
-            key: model.id,
-            hook: {
-                init: this.init.bind(this),
-                prepatch: this.prepatch.bind(this)
-            },
-            fn: function () { return _this.renderAndDecorate(model, context); },
-            args: this.watchedArgs(model),
-            thunk: true
-        });
-    };
-    ThunkView.prototype.renderAndDecorate = function (model, context) {
-        var vnode = this.doRender(model, context);
-        context.decorate(vnode, model);
-        return vnode;
-    };
-    ThunkView.prototype.copyToThunk = function (vnode, thunk) {
-        thunk.elm = vnode.elm;
-        vnode.data.fn = thunk.data.fn;
-        vnode.data.args = thunk.data.args;
-        thunk.data = vnode.data;
-        thunk.children = vnode.children;
-        thunk.text = vnode.text;
-        thunk.elm = vnode.elm;
-    };
-    ThunkView.prototype.init = function (thunk) {
-        var cur = thunk.data;
-        var vnode = cur.fn.apply(undefined, cur.args);
-        this.copyToThunk(vnode, thunk);
-    };
-    ThunkView.prototype.prepatch = function (oldVnode, thunk) {
-        var old = oldVnode.data, cur = thunk.data;
-        if (!this.equals(old.args, cur.args))
-            this.copyToThunk(cur.fn.apply(undefined, cur.args), thunk);
-        else
-            this.copyToThunk(oldVnode, thunk);
-    };
-    ThunkView.prototype.equals = function (oldArg, newArg) {
-        if (Array.isArray(oldArg) && Array.isArray(newArg)) {
-            if (oldArg.length !== newArg.length)
-                return false;
-            for (var i = 0; i < newArg.length; ++i) {
-                if (!this.equals(oldArg[i], newArg[i]))
-                    return false;
-            }
-        }
-        else if (typeof oldArg === 'object' && typeof newArg === 'object') {
-            if (Object.keys(oldArg).length !== Object.keys(newArg).length)
-                return false;
-            for (var key in oldArg) {
-                if (key !== 'parent' && key !== 'root' && (!(key in newArg) || !this.equals(oldArg[key], newArg[key])))
-                    return false;
-            }
-        }
-        else if (oldArg !== newArg) {
-            return false;
-        }
-        return true;
-    };
-    return ThunkView;
-}());
-exports.ThunkView = ThunkView;
-function isThunk(vnode) {
-    return 'thunk' in vnode;
-}
-exports.isThunk = isThunk;
-//# sourceMappingURL=thunk-view.js.map
-
-/***/ }),
-/* 132 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var inversify_1 = __webpack_require__(0);
-var smodel_factory_1 = __webpack_require__(17);
-var registry_1 = __webpack_require__(53);
-var geometry_1 = __webpack_require__(3);
-var JSX = { createElement: snabbdom.svg };
-/**
- * Allows to look up the IView for a given SModelElement based on its type.
- */
-var ViewRegistry = /** @class */ (function (_super) {
-    __extends(ViewRegistry, _super);
-    function ViewRegistry() {
-        var _this = _super.call(this) || this;
-        _this.registerDefaults();
-        return _this;
-    }
-    ViewRegistry.prototype.registerDefaults = function () {
-        this.register(smodel_factory_1.EMPTY_ROOT.type, EmptyView);
-    };
-    ViewRegistry.prototype.missing = function (key, element) {
-        return new MissingView();
-    };
-    ViewRegistry = __decorate([
-        inversify_1.injectable(),
-        __metadata("design:paramtypes", [])
-    ], ViewRegistry);
-    return ViewRegistry;
-}(registry_1.ProviderRegistry));
-exports.ViewRegistry = ViewRegistry;
-var EmptyView = /** @class */ (function () {
-    function EmptyView() {
-    }
-    EmptyView.prototype.render = function (model, context) {
-        return JSX.createElement("svg", { "class-sprotty-empty": true });
-    };
-    return EmptyView;
-}());
-exports.EmptyView = EmptyView;
-var MissingView = /** @class */ (function () {
-    function MissingView() {
-    }
-    MissingView.prototype.render = function (model, context) {
-        var position = model.position || geometry_1.ORIGIN_POINT;
-        return JSX.createElement("text", { "class-sprotty-missing": true, x: position.x, y: position.y },
-            "?",
-            model.id,
-            "?");
-    };
-    return MissingView;
-}());
-exports.MissingView = MissingView;
-//# sourceMappingURL=view.js.map
-
-/***/ }),
-/* 133 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var animation_frame_syncer_1 = __webpack_require__(48);
-/**
- * Updating the view is rather expensive, and it doesn't make sense to calculate
- * more then one update per animation (rendering) frame. So this class batches
- * all incoming model changes and only renders the last one when the next animation
- * frame comes.
- */
-var ViewerCache = /** @class */ (function () {
-    function ViewerCache(delegate, syncer) {
-        this.delegate = delegate;
-        this.syncer = syncer;
-    }
-    ViewerCache.prototype.isCacheEmpty = function () {
-        return this.cachedModelRoot === undefined && this.cachedHiddenModelRoot === undefined &&
-            this.cachedPopup === undefined;
-    };
-    ViewerCache.prototype.updatePopup = function (model) {
-        var isCacheEmpty = this.isCacheEmpty();
-        this.cachedPopup = model;
-        if (isCacheEmpty)
-            this.scheduleUpdate();
-    };
-    ViewerCache.prototype.update = function (model) {
-        var isCacheEmpty = this.isCacheEmpty();
-        this.cachedModelRoot = model;
-        if (isCacheEmpty)
-            this.scheduleUpdate();
-    };
-    ViewerCache.prototype.updateHidden = function (hiddenModel) {
-        var isCacheEmpty = this.isCacheEmpty();
-        this.cachedHiddenModelRoot = hiddenModel;
-        if (isCacheEmpty)
-            this.scheduleUpdate();
-    };
-    ViewerCache.prototype.scheduleUpdate = function () {
-        var _this = this;
-        this.syncer.onEndOfNextFrame(function () {
-            if (_this.cachedHiddenModelRoot) {
-                var nextHiddenModelRoot = _this.cachedHiddenModelRoot;
-                _this.delegate.updateHidden(nextHiddenModelRoot);
-                _this.cachedHiddenModelRoot = undefined;
-            }
-            if (_this.cachedModelRoot) {
-                var nextModelRoot = _this.cachedModelRoot;
-                _this.delegate.update(nextModelRoot);
-                _this.cachedModelRoot = undefined;
-            }
-            if (_this.cachedPopup) {
-                var nextModelRoot = _this.cachedPopup;
-                _this.delegate.updatePopup(nextModelRoot);
-                _this.cachedPopup = undefined;
-            }
-        });
-    };
-    ViewerCache = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IViewer)), __param(0, inversify_1.named('delegate')),
-        __param(1, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),
-        __metadata("design:paramtypes", [Object, animation_frame_syncer_1.AnimationFrameSyncer])
-    ], ViewerCache);
-    return ViewerCache;
-}());
-exports.ViewerCache = ViewerCache;
-//# sourceMappingURL=viewer-cache.js.map
-
-/***/ }),
-/* 134 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var snabbdom_1 = __webpack_require__(149);
-var props_1 = __webpack_require__(282);
-var attributes_1 = __webpack_require__(279);
-var style_1 = __webpack_require__(283);
-var eventlisteners_1 = __webpack_require__(281);
-var class_1 = __webpack_require__(280);
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var geometry_1 = __webpack_require__(3);
-var initialize_canvas_1 = __webpack_require__(60);
-var vnode_utils_1 = __webpack_require__(18);
-var thunk_view_1 = __webpack_require__(131);
-var smodel_factory_1 = __webpack_require__(17);
-var JSX = { createElement: snabbdom.html }; // must be html here, as we're creating a div
-var ModelRenderer = /** @class */ (function () {
-    function ModelRenderer(viewRegistry, decorators) {
-        this.viewRegistry = viewRegistry;
-        this.decorators = decorators;
-    }
-    ModelRenderer.prototype.decorate = function (vnode, element) {
-        if (thunk_view_1.isThunk(vnode))
-            return vnode;
-        return this.decorators.reduce(function (n, decorator) { return decorator.decorate(n, element); }, vnode);
-    };
-    ModelRenderer.prototype.renderElement = function (element) {
-        var vNode = this.viewRegistry.get(element.type, element).render(element, this);
-        return this.decorate(vNode, element);
-    };
-    ModelRenderer.prototype.renderChildren = function (element) {
-        var _this = this;
-        return element.children.map(function (child) { return _this.renderElement(child); });
-    };
-    ModelRenderer.prototype.postUpdate = function () {
-        this.decorators.forEach(function (decorator) { return decorator.postUpdate(); });
-    };
-    return ModelRenderer;
-}());
-exports.ModelRenderer = ModelRenderer;
-/**
- * The component that turns the model into an SVG DOM.
- * Uses a VDOM based on snabbdom.js for performance.
- */
-var Viewer = /** @class */ (function () {
-    function Viewer(modelRendererFactory, decorators, hiddenDecorators, popupDecorators, options, logger, actiondispatcher) {
-        var _this = this;
-        this.decorators = decorators;
-        this.hiddenDecorators = hiddenDecorators;
-        this.popupDecorators = popupDecorators;
-        this.options = options;
-        this.logger = logger;
-        this.actiondispatcher = actiondispatcher;
-        this.onWindowResize = function (vdom) {
-            var baseDiv = document.getElementById(_this.options.baseDiv);
-            if (baseDiv !== null) {
-                var newBounds = _this.getBoundsInPage(baseDiv);
-                _this.actiondispatcher.dispatch(new initialize_canvas_1.InitializeCanvasBoundsAction(newBounds));
-            }
-        };
-        this.patcher = this.createPatcher();
-        this.renderer = modelRendererFactory(decorators);
-        this.hiddenRenderer = modelRendererFactory(hiddenDecorators);
-        this.popupRenderer = modelRendererFactory(popupDecorators);
-    }
-    Viewer.prototype.createModules = function () {
-        return [
-            props_1.propsModule,
-            attributes_1.attributesModule,
-            class_1.classModule,
-            style_1.styleModule,
-            eventlisteners_1.eventListenersModule
-        ];
-    };
-    Viewer.prototype.createPatcher = function () {
-        return snabbdom_1.init(this.createModules());
-    };
-    Viewer.prototype.getBoundsInPage = function (element) {
-        var bounds = element.getBoundingClientRect();
-        var scroll = typeof window !== 'undefined' ? { x: window.scrollX, y: window.scrollY } : geometry_1.ORIGIN_POINT;
-        return {
-            x: bounds.left + scroll.x,
-            y: bounds.top + scroll.y,
-            width: bounds.width,
-            height: bounds.height
-        };
-    };
-    Viewer.prototype.update = function (model) {
-        var _this = this;
-        this.logger.log(this, 'rendering', model);
-        var newVDOM = JSX.createElement("div", { id: this.options.baseDiv }, this.renderer.renderElement(model));
-        if (this.lastVDOM !== undefined) {
-            var hadFocus = this.hasFocus();
-            vnode_utils_1.copyClassesFromVNode(this.lastVDOM, newVDOM);
-            this.lastVDOM = this.patcher.call(this, this.lastVDOM, newVDOM);
-            this.restoreFocus(hadFocus);
-        }
-        else if (typeof document !== 'undefined') {
-            var placeholder = document.getElementById(this.options.baseDiv);
-            if (placeholder !== null) {
-                if (typeof window !== 'undefined') {
-                    window.addEventListener('resize', function () {
-                        _this.onWindowResize(newVDOM);
-                    });
-                }
-                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);
-                vnode_utils_1.setClass(newVDOM, this.options.baseClass, true);
-                this.lastVDOM = this.patcher.call(this, placeholder, newVDOM);
-            }
-            else {
-                this.logger.error(this, 'element not in DOM:', this.options.baseDiv);
-            }
-        }
-        this.renderer.postUpdate();
-    };
-    Viewer.prototype.hasFocus = function () {
-        if (typeof document !== 'undefined' && document.activeElement && this.lastVDOM.children && this.lastVDOM.children.length > 0) {
-            var lastRootVNode = this.lastVDOM.children[0];
-            if (typeof lastRootVNode === 'object') {
-                var lastElement = lastRootVNode.elm;
-                return document.activeElement === lastElement;
-            }
-        }
-        return false;
-    };
-    Viewer.prototype.restoreFocus = function (focus) {
-        if (focus && this.lastVDOM.children && this.lastVDOM.children.length > 0) {
-            var lastRootVNode = this.lastVDOM.children[0];
-            if (typeof lastRootVNode === 'object') {
-                var lastElement = lastRootVNode.elm;
-                if (lastElement && typeof lastElement.focus === 'function')
-                    lastElement.focus();
-            }
-        }
-    };
-    Viewer.prototype.updateHidden = function (hiddenModel) {
-        this.logger.log(this, 'rendering hidden');
-        var newVDOM;
-        if (hiddenModel.type === smodel_factory_1.EMPTY_ROOT.type) {
-            newVDOM = JSX.createElement("div", { id: this.options.hiddenDiv });
-        }
-        else {
-            var hiddenVNode = this.hiddenRenderer.renderElement(hiddenModel);
-            vnode_utils_1.setAttr(hiddenVNode, 'opacity', 0);
-            newVDOM = JSX.createElement("div", { id: this.options.hiddenDiv }, hiddenVNode);
-        }
-        if (this.lastHiddenVDOM !== undefined) {
-            vnode_utils_1.copyClassesFromVNode(this.lastHiddenVDOM, newVDOM);
-            this.lastHiddenVDOM = this.patcher.call(this, this.lastHiddenVDOM, newVDOM);
-        }
-        else {
-            var placeholder = document.getElementById(this.options.hiddenDiv);
-            if (placeholder === null) {
-                placeholder = document.createElement("div");
-                document.body.appendChild(placeholder);
-            }
-            else {
-                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);
-            }
-            vnode_utils_1.setClass(newVDOM, this.options.baseClass, true);
-            vnode_utils_1.setClass(newVDOM, this.options.hiddenClass, true);
-            this.lastHiddenVDOM = this.patcher.call(this, placeholder, newVDOM);
-        }
-        this.hiddenRenderer.postUpdate();
-    };
-    Viewer.prototype.updatePopup = function (model) {
-        this.logger.log(this, 'rendering popup', model);
-        var popupClosed = model.type === smodel_factory_1.EMPTY_ROOT.type;
-        var newVDOM;
-        if (popupClosed) {
-            newVDOM = JSX.createElement("div", { id: this.options.popupDiv });
-        }
-        else {
-            var position = model.canvasBounds;
-            var inlineStyle = {
-                top: position.y + 'px',
-                left: position.x + 'px'
-            };
-            newVDOM = JSX.createElement("div", { id: this.options.popupDiv, style: inlineStyle }, this.popupRenderer.renderElement(model));
-        }
-        if (this.lastPopupVDOM !== undefined) {
-            vnode_utils_1.copyClassesFromVNode(this.lastPopupVDOM, newVDOM);
-            vnode_utils_1.setClass(newVDOM, this.options.popupClosedClass, popupClosed);
-            this.lastPopupVDOM = this.patcher.call(this, this.lastPopupVDOM, newVDOM);
-        }
-        else if (typeof document !== 'undefined') {
-            var placeholder = document.getElementById(this.options.popupDiv);
-            if (placeholder === null) {
-                placeholder = document.createElement("div");
-                document.body.appendChild(placeholder);
-            }
-            else {
-                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);
-            }
-            vnode_utils_1.setClass(newVDOM, this.options.popupClass, true);
-            vnode_utils_1.setClass(newVDOM, this.options.popupClosedClass, popupClosed);
-            this.lastPopupVDOM = this.patcher.call(this, placeholder, newVDOM);
-        }
-        this.popupRenderer.postUpdate();
-    };
-    Viewer = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ModelRendererFactory)),
-        __param(1, inversify_1.multiInject(types_1.TYPES.IVNodeDecorator)), __param(1, inversify_1.optional()),
-        __param(2, inversify_1.multiInject(types_1.TYPES.HiddenVNodeDecorator)), __param(2, inversify_1.optional()),
-        __param(3, inversify_1.multiInject(types_1.TYPES.PopupVNodeDecorator)), __param(3, inversify_1.optional()),
-        __param(4, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __param(5, inversify_1.inject(types_1.TYPES.ILogger)),
-        __param(6, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __metadata("design:paramtypes", [Function, Array, Array, Array, Object, Object, Object])
-    ], Viewer);
-    return Viewer;
-}());
-exports.Viewer = Viewer;
-//# sourceMappingURL=viewer.js.map
-
-/***/ }),
-/* 135 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var vnode_utils_1 = __webpack_require__(18);
-var FocusFixDecorator = /** @class */ (function () {
-    function FocusFixDecorator() {
-    }
-    FocusFixDecorator_1 = FocusFixDecorator;
-    FocusFixDecorator.prototype.decorate = function (vnode, element) {
-        if (vnode.sel && vnode.sel.startsWith('svg'))
-            // allows to set focus in Firefox
-            vnode_utils_1.setAttr(vnode, 'tabindex', ++FocusFixDecorator_1.tabIndex);
-        return vnode;
-    };
-    FocusFixDecorator.prototype.postUpdate = function () {
-    };
-    FocusFixDecorator.tabIndex = 1000;
-    FocusFixDecorator = FocusFixDecorator_1 = __decorate([
-        inversify_1.injectable()
-    ], FocusFixDecorator);
-    return FocusFixDecorator;
-    var FocusFixDecorator_1;
-}());
-exports.FocusFixDecorator = FocusFixDecorator;
-//# sourceMappingURL=vnode-decorators.js.map
-
-/***/ }),
-/* 136 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var abstract_layout_1 = __webpack_require__(89);
-/**
- * Layouts children of a container in horizontal (left->right) direction.
- */
-var HBoxLayouter = /** @class */ (function (_super) {
-    __extends(HBoxLayouter, _super);
-    function HBoxLayouter() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    HBoxLayouter.prototype.getChildrenSize = function (container, containerOptions, layouter) {
-        var maxWidth = 0;
-        var maxHeight = -1;
-        var isFirst = true;
-        container.children.forEach(function (child) {
-            var bounds = layouter.getBoundsData(child).bounds;
-            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {
-                if (isFirst)
-                    isFirst = false;
-                else
-                    maxWidth += containerOptions.hGap;
-                maxWidth += bounds.width;
-                maxHeight = Math.max(maxHeight, bounds.height);
-            }
-        });
-        return {
-            width: maxWidth,
-            height: maxHeight
-        };
-    };
-    HBoxLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {
-        var dy = this.getDy(childOptions.vAlign, bounds, maxHeight);
-        boundsData.bounds = {
-            x: currentOffset.x + child.bounds.x - bounds.x,
-            y: containerOptions.paddingTop + child.bounds.y - bounds.y + dy,
-            width: bounds.width,
-            height: bounds.height
-        };
-        boundsData.boundsChanged = true;
-        return {
-            x: currentOffset.x + bounds.width + containerOptions.hGap,
-            y: currentOffset.y
-        };
-    };
-    HBoxLayouter.prototype.getDefaultLayoutOptions = function () {
-        return {
-            resizeContainer: true,
-            paddingTop: 5,
-            paddingBottom: 5,
-            paddingLeft: 5,
-            paddingRight: 5,
-            paddingFactor: 1,
-            hGap: 1,
-            vAlign: 'center'
-        };
-    };
-    HBoxLayouter.prototype.spread = function (a, b) {
-        return __assign({}, a, b);
-    };
-    HBoxLayouter.KIND = 'hbox';
-    return HBoxLayouter;
-}(abstract_layout_1.AbstractLayout));
-exports.HBoxLayouter = HBoxLayouter;
-//# sourceMappingURL=hbox-layout.js.map
-
-/***/ }),
-/* 137 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var abstract_layout_1 = __webpack_require__(89);
-var StackLayouter = /** @class */ (function (_super) {
-    __extends(StackLayouter, _super);
-    function StackLayouter() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    StackLayouter.prototype.getChildrenSize = function (container, options, layouter) {
-        var maxWidth = -1;
-        var maxHeight = -1;
-        container.children.forEach(function (child) {
-            var bounds = layouter.getBoundsData(child).bounds;
-            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {
-                maxWidth = Math.max(maxWidth, bounds.width);
-                maxHeight = Math.max(maxHeight, bounds.height);
-            }
-        });
-        return {
-            width: maxWidth,
-            height: maxHeight
-        };
-    };
-    StackLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {
-        var dx = this.getDx(childOptions.hAlign, bounds, maxWidth);
-        var dy = this.getDy(childOptions.vAlign, bounds, maxHeight);
-        boundsData.bounds = {
-            x: containerOptions.paddingLeft + child.bounds.x - bounds.x + dx,
-            y: containerOptions.paddingTop + child.bounds.y - bounds.y + dy,
-            width: bounds.width,
-            height: bounds.height
-        };
-        boundsData.boundsChanged = true;
-        return currentOffset;
-    };
-    StackLayouter.prototype.getDefaultLayoutOptions = function () {
-        return {
-            resizeContainer: true,
-            paddingTop: 5,
-            paddingBottom: 5,
-            paddingLeft: 5,
-            paddingRight: 5,
-            paddingFactor: 1,
-            hAlign: 'center',
-            vAlign: 'center'
-        };
-    };
-    StackLayouter.prototype.spread = function (a, b) {
-        return __assign({}, a, b);
-    };
-    StackLayouter.KIND = 'stack';
-    return StackLayouter;
-}(abstract_layout_1.AbstractLayout));
-exports.StackLayouter = StackLayouter;
-//# sourceMappingURL=stack-layout.js.map
-
-/***/ }),
-/* 138 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var geometry_1 = __webpack_require__(3);
-var abstract_layout_1 = __webpack_require__(89);
-/**
- * Layouts children of a container in vertical (top->bottom) direction.
- */
-var VBoxLayouter = /** @class */ (function (_super) {
-    __extends(VBoxLayouter, _super);
-    function VBoxLayouter() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    VBoxLayouter.prototype.getChildrenSize = function (container, containerOptions, layouter) {
-        var maxWidth = -1;
-        var maxHeight = 0;
-        var isFirst = true;
-        container.children.forEach(function (child) {
-            var bounds = layouter.getBoundsData(child).bounds;
-            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {
-                maxHeight += bounds.height;
-                if (isFirst)
-                    isFirst = false;
-                else
-                    maxHeight += containerOptions.vGap;
-                maxWidth = Math.max(maxWidth, bounds.width);
-            }
-        });
-        return {
-            width: maxWidth,
-            height: maxHeight
-        };
-    };
-    VBoxLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {
-        var dx = this.getDx(childOptions.hAlign, bounds, maxWidth);
-        boundsData.bounds = {
-            x: containerOptions.paddingLeft + child.bounds.x - bounds.x + dx,
-            y: currentOffset.y + child.bounds.y - bounds.y,
-            width: bounds.width,
-            height: bounds.height
-        };
-        boundsData.boundsChanged = true;
-        return {
-            x: currentOffset.x,
-            y: currentOffset.y + bounds.height + containerOptions.vGap
-        };
-    };
-    VBoxLayouter.prototype.getDefaultLayoutOptions = function () {
-        return {
-            resizeContainer: true,
-            paddingTop: 5,
-            paddingBottom: 5,
-            paddingLeft: 5,
-            paddingRight: 5,
-            paddingFactor: 1,
-            vGap: 1,
-            hAlign: 'center'
-        };
-    };
-    VBoxLayouter.prototype.spread = function (a, b) {
-        return __assign({}, a, b);
-    };
-    VBoxLayouter.KIND = 'vbox';
-    return VBoxLayouter;
-}(abstract_layout_1.AbstractLayout));
-exports.VBoxLayouter = VBoxLayouter;
-//# sourceMappingURL=vbox-layout.js.map
-
-/***/ }),
-/* 139 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var command_1 = __webpack_require__(8);
-var model_1 = __webpack_require__(31);
-var smodel_1 = __webpack_require__(2);
-var key_tool_1 = __webpack_require__(35);
-var browser_1 = __webpack_require__(65);
-var model_2 = __webpack_require__(62);
-var inversify_1 = __webpack_require__(0);
-var svg_exporter_1 = __webpack_require__(40);
-var smodel_factory_1 = __webpack_require__(17);
-var model_3 = __webpack_require__(32);
-var model_4 = __webpack_require__(63);
-var types_1 = __webpack_require__(1);
-var ExportSvgKeyListener = /** @class */ (function (_super) {
-    __extends(ExportSvgKeyListener, _super);
-    function ExportSvgKeyListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    ExportSvgKeyListener.prototype.keyDown = function (element, event) {
-        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 69)
-            return [new RequestExportSvgAction()];
-        else
-            return [];
-    };
-    ExportSvgKeyListener = __decorate([
-        inversify_1.injectable()
-    ], ExportSvgKeyListener);
-    return ExportSvgKeyListener;
-}(key_tool_1.KeyListener));
-exports.ExportSvgKeyListener = ExportSvgKeyListener;
-var RequestExportSvgAction = /** @class */ (function () {
-    function RequestExportSvgAction() {
-        this.kind = ExportSvgCommand.KIND;
-    }
-    return RequestExportSvgAction;
-}());
-exports.RequestExportSvgAction = RequestExportSvgAction;
-var ExportSvgCommand = /** @class */ (function (_super) {
-    __extends(ExportSvgCommand, _super);
-    function ExportSvgCommand() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    ExportSvgCommand.prototype.execute = function (context) {
-        if (model_2.isExportable(context.root)) {
-            var root = context.modelFactory.createRoot(context.modelFactory.createSchema(context.root));
-            if (model_2.isExportable(root)) {
-                root.export = true;
-                if (model_3.isViewport(root)) {
-                    root.zoom = 1;
-                    root.scroll = {
-                        x: 0,
-                        y: 0
-                    };
-                }
-                root.index.all().forEach(function (element) {
-                    if (model_1.isSelectable(element) && element.selected)
-                        element.selected = false;
-                    if (model_4.isHoverable(element) && element.hoverFeedback)
-                        element.hoverFeedback = false;
-                });
-                return root;
-            }
-        }
-        return context.modelFactory.createRoot(smodel_factory_1.EMPTY_ROOT);
-    };
-    ExportSvgCommand.KIND = 'requestExportSvg';
-    return ExportSvgCommand;
-}(command_1.HiddenCommand));
-exports.ExportSvgCommand = ExportSvgCommand;
-var ExportSvgDecorator = /** @class */ (function () {
-    function ExportSvgDecorator(svgExporter) {
-        this.svgExporter = svgExporter;
-    }
-    ExportSvgDecorator.prototype.decorate = function (vnode, element) {
-        if (element instanceof smodel_1.SModelRoot)
-            this.root = element;
-        return vnode;
-    };
-    ExportSvgDecorator.prototype.postUpdate = function () {
-        if (this.root && model_2.isExportable(this.root) && this.root.export)
-            this.svgExporter.export(this.root);
-    };
-    ExportSvgDecorator = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.SvgExporter)),
-        __metadata("design:paramtypes", [svg_exporter_1.SvgExporter])
-    ], ExportSvgDecorator);
-    return ExportSvgDecorator;
-}());
-exports.ExportSvgDecorator = ExportSvgDecorator;
-//# sourceMappingURL=export.js.map
-
-/***/ }),
-/* 140 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.openFeature = Symbol('openFeature');
-function isOpenable(element) {
-    return element.hasFeature(exports.openFeature);
-}
-exports.isOpenable = isOpenable;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 141 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var browser_1 = __webpack_require__(65);
-var smodel_1 = __webpack_require__(2);
-var smodel_utils_1 = __webpack_require__(13);
-var command_1 = __webpack_require__(8);
-var sgraph_1 = __webpack_require__(101);
-var mouse_tool_1 = __webpack_require__(30);
-var key_tool_1 = __webpack_require__(35);
-var vnode_utils_1 = __webpack_require__(18);
-var model_1 = __webpack_require__(31);
-var button_handler_1 = __webpack_require__(91);
-var inversify_1 = __webpack_require__(0);
-var model_2 = __webpack_require__(92);
-/**
- * Triggered when the user changes the selection, e.g. by clicking on a selectable element. The resulting
- * SelectCommand changes the `selected` state accordingly, so the elements can be rendered differently.
- * This action is also forwarded to the diagram server, if present, so it may react on the selection change.
- * Furthermore, the server can send such an action to the client in order to change the selection programmatically.
- */
-var SelectAction = /** @class */ (function () {
-    function SelectAction(selectedElementsIDs, deselectedElementsIDs) {
-        if (selectedElementsIDs === void 0) { selectedElementsIDs = []; }
-        if (deselectedElementsIDs === void 0) { deselectedElementsIDs = []; }
-        this.selectedElementsIDs = selectedElementsIDs;
-        this.deselectedElementsIDs = deselectedElementsIDs;
-        this.kind = SelectCommand.KIND;
-    }
-    return SelectAction;
-}());
-exports.SelectAction = SelectAction;
-/**
- * Programmatic action for selecting or deselecting all elements.
- */
-var SelectAllAction = /** @class */ (function () {
-    /**
-     * If `select` is true, all elements are selected, othewise they are deselected.
-     */
-    function SelectAllAction(select) {
-        if (select === void 0) { select = true; }
-        this.select = select;
-        this.kind = SelectAllCommand.KIND;
-    }
-    return SelectAllAction;
-}());
-exports.SelectAllAction = SelectAllAction;
-var SelectCommand = /** @class */ (function (_super) {
-    __extends(SelectCommand, _super);
-    function SelectCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        _this.selected = [];
-        _this.deselected = [];
-        return _this;
-    }
-    SelectCommand.prototype.execute = function (context) {
-        var _this = this;
-        var selectedNodeIds = [];
-        var model = context.root;
-        this.action.selectedElementsIDs.forEach(function (id) {
-            var element = model.index.getById(id);
-            if (element instanceof smodel_1.SChildElement && model_1.isSelectable(element)) {
-                _this.selected.push({
-                    element: element,
-                    index: element.parent.children.indexOf(element)
-                });
-                if (element instanceof sgraph_1.SNode)
-                    selectedNodeIds.push(id);
-            }
-        });
-        if (selectedNodeIds.length > 0) {
-            var connectedEdges_1 = [];
-            model.index.all().forEach(function (element) {
-                if (element instanceof sgraph_1.SEdge
-                    && (selectedNodeIds.indexOf(element.sourceId) >= 0
-                        || selectedNodeIds.indexOf(element.targetId) >= 0)) {
-                    connectedEdges_1.push({
-                        element: element,
-                        index: element.parent.children.indexOf(element)
-                    });
-                }
-            });
-            this.selected = connectedEdges_1.concat(this.selected);
-        }
-        this.action.deselectedElementsIDs.forEach(function (id) {
-            var element = model.index.getById(id);
-            if (element instanceof smodel_1.SChildElement && model_1.isSelectable(element)) {
-                _this.deselected.push({
-                    element: element,
-                    index: element.parent.children.indexOf(element)
-                });
-            }
-        });
-        return this.redo(context);
-    };
-    SelectCommand.prototype.undo = function (context) {
-        for (var i = this.selected.length - 1; i >= 0; --i) {
-            var selection = this.selected[i];
-            var element = selection.element;
-            if (model_1.isSelectable(element))
-                element.selected = false;
-            element.parent.move(element, selection.index);
-        }
-        this.deselected.reverse().forEach(function (selection) {
-            if (model_1.isSelectable(selection.element))
-                selection.element.selected = true;
-        });
-        return context.root;
-    };
-    SelectCommand.prototype.redo = function (context) {
-        for (var i = 0; i < this.selected.length; ++i) {
-            var selection = this.selected[i];
-            var element = selection.element;
-            var childrenLength = element.parent.children.length;
-            element.parent.move(element, childrenLength - 1);
-        }
-        this.deselected.forEach(function (selection) {
-            if (model_1.isSelectable(selection.element))
-                selection.element.selected = false;
-        });
-        this.selected.forEach(function (selection) {
-            if (model_1.isSelectable(selection.element))
-                selection.element.selected = true;
-        });
-        return context.root;
-    };
-    SelectCommand.KIND = 'elementSelected';
-    return SelectCommand;
-}(command_1.Command));
-exports.SelectCommand = SelectCommand;
-var SelectAllCommand = /** @class */ (function (_super) {
-    __extends(SelectAllCommand, _super);
-    function SelectAllCommand(action) {
-        var _this = _super.call(this) || this;
-        _this.action = action;
-        _this.previousSelection = {};
-        return _this;
-    }
-    SelectAllCommand.prototype.execute = function (context) {
-        this.selectAll(context.root, this.action.select);
-        return context.root;
-    };
-    SelectAllCommand.prototype.selectAll = function (element, newState) {
-        if (model_1.isSelectable(element)) {
-            this.previousSelection[element.id] = element.selected;
-            element.selected = newState;
-        }
-        for (var _i = 0, _a = element.children; _i < _a.length; _i++) {
-            var child = _a[_i];
-            this.selectAll(child, newState);
-        }
-    };
-    SelectAllCommand.prototype.undo = function (context) {
-        var index = context.root.index;
-        for (var id in this.previousSelection) {
-            var element = index.getById(id);
-            if (element !== undefined && model_1.isSelectable(element))
-                element.selected = this.previousSelection[id];
-        }
-        return context.root;
-    };
-    SelectAllCommand.prototype.redo = function (context) {
-        this.selectAll(context.root, this.action.select);
-        return context.root;
-    };
-    SelectAllCommand.KIND = 'allSelected';
-    return SelectAllCommand;
-}(command_1.Command));
-exports.SelectAllCommand = SelectAllCommand;
-var SelectMouseListener = /** @class */ (function (_super) {
-    __extends(SelectMouseListener, _super);
-    function SelectMouseListener(buttonHandlerRegistry) {
-        var _this = _super.call(this) || this;
-        _this.buttonHandlerRegistry = buttonHandlerRegistry;
-        _this.wasSelected = false;
-        _this.hasDragged = false;
-        return _this;
-    }
-    SelectMouseListener.prototype.mouseDown = function (target, event) {
-        if (event.button === 0) {
-            if (this.buttonHandlerRegistry !== undefined && target instanceof model_2.SButton && target.enabled) {
-                var buttonHandler = this.buttonHandlerRegistry.get(target.type);
-                if (buttonHandler !== undefined)
-                    return buttonHandler.buttonPressed(target);
-            }
-            var selectableTarget = smodel_utils_1.findParentByFeature(target, model_1.isSelectable);
-            if (selectableTarget !== undefined || target instanceof smodel_1.SModelRoot) {
-                this.hasDragged = false;
-                var deselectIds = [];
-                // multi-selection?
-                if (!browser_1.isCtrlOrCmd(event)) {
-                    deselectIds = target.root
-                        .index
-                        .all()
-                        .filter(function (element) { return model_1.isSelectable(element) && element.selected; })
-                        .map(function (element) { return element.id; });
-                }
-                if (selectableTarget !== undefined) {
-                    if (!selectableTarget.selected) {
-                        this.wasSelected = false;
-                        return [new SelectAction([selectableTarget.id], deselectIds)];
-                    }
-                    else {
-                        if (browser_1.isCtrlOrCmd(event)) {
-                            this.wasSelected = false;
-                            return [new SelectAction([], [selectableTarget.id])];
-                        }
-                        else {
-                            this.wasSelected = true;
-                        }
-                    }
-                }
-                else {
-                    return [new SelectAction([], deselectIds)];
-                }
-            }
-        }
-        return [];
-    };
-    SelectMouseListener.prototype.mouseMove = function (target, event) {
-        this.hasDragged = true;
-        return [];
-    };
-    SelectMouseListener.prototype.mouseUp = function (target, event) {
-        if (event.button === 0) {
-            if (!this.hasDragged) {
-                var selectableTarget = smodel_utils_1.findParentByFeature(target, model_1.isSelectable);
-                if (selectableTarget !== undefined && this.wasSelected) {
-                    return [new SelectAction([selectableTarget.id], [])];
-                }
-            }
-        }
-        this.hasDragged = false;
-        return [];
-    };
-    SelectMouseListener.prototype.decorate = function (vnode, element) {
-        var selectableTarget = smodel_utils_1.findParentByFeature(element, model_1.isSelectable);
-        if (selectableTarget !== undefined)
-            vnode_utils_1.setClass(vnode, 'selected', selectableTarget.selected);
-        return vnode;
-    };
-    SelectMouseListener = __decorate([
-        __param(0, inversify_1.inject(button_handler_1.ButtonHandlerRegistry)), __param(0, inversify_1.optional()),
-        __metadata("design:paramtypes", [button_handler_1.ButtonHandlerRegistry])
-    ], SelectMouseListener);
-    return SelectMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.SelectMouseListener = SelectMouseListener;
-var SelectKeyboardListener = /** @class */ (function (_super) {
-    __extends(SelectKeyboardListener, _super);
-    function SelectKeyboardListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    SelectKeyboardListener.prototype.keyDown = function (element, event) {
-        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 65) {
-            return [new SelectAction(element.root.index.all().filter(function (e) { return model_1.isSelectable(e); }).map(function (e) { return e.id; }), [])];
-        }
-        return [];
-    };
-    return SelectKeyboardListener;
-}(key_tool_1.KeyListener));
-exports.SelectKeyboardListener = SelectKeyboardListener;
-//# sourceMappingURL=select.js.map
-
-/***/ }),
-/* 142 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-var mouse_tool_1 = __webpack_require__(30);
-var smodel_utils_1 = __webpack_require__(13);
-var viewport_1 = __webpack_require__(42);
-var model_1 = __webpack_require__(32);
-var model_2 = __webpack_require__(41);
-function isScrollable(element) {
-    return 'scroll' in element;
-}
-exports.isScrollable = isScrollable;
-var ScrollMouseListener = /** @class */ (function (_super) {
-    __extends(ScrollMouseListener, _super);
-    function ScrollMouseListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    ScrollMouseListener.prototype.mouseDown = function (target, event) {
-        var selectable = smodel_utils_1.findParentByFeature(target, model_2.isMoveable);
-        if (selectable === undefined) {
-            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);
-            if (viewport)
-                this.lastScrollPosition = { x: event.pageX, y: event.pageY };
-            else
-                this.lastScrollPosition = undefined;
-        }
-        return [];
-    };
-    ScrollMouseListener.prototype.mouseMove = function (target, event) {
-        if (event.buttons === 0)
-            this.mouseUp(target, event);
-        else if (this.lastScrollPosition) {
-            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);
-            if (viewport) {
-                var dx = (event.pageX - this.lastScrollPosition.x) / viewport.zoom;
-                var dy = (event.pageY - this.lastScrollPosition.y) / viewport.zoom;
-                var newViewport = {
-                    scroll: {
-                        x: viewport.scroll.x - dx,
-                        y: viewport.scroll.y - dy,
-                    },
-                    zoom: viewport.zoom
-                };
-                this.lastScrollPosition = { x: event.pageX, y: event.pageY };
-                return [new viewport_1.ViewportAction(viewport.id, newViewport, false)];
-            }
-        }
-        return [];
-    };
-    ScrollMouseListener.prototype.mouseEnter = function (target, event) {
-        if (target instanceof smodel_1.SModelRoot && event.buttons === 0)
-            this.mouseUp(target, event);
-        return [];
-    };
-    ScrollMouseListener.prototype.mouseUp = function (target, event) {
-        this.lastScrollPosition = undefined;
-        return [];
-    };
-    return ScrollMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.ScrollMouseListener = ScrollMouseListener;
-//# sourceMappingURL=scroll.js.map
-
-/***/ }),
-/* 143 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var mouse_tool_1 = __webpack_require__(30);
-var smodel_utils_1 = __webpack_require__(13);
-var viewport_1 = __webpack_require__(42);
-var model_1 = __webpack_require__(32);
-function isZoomable(element) {
-    return 'zoom' in element;
-}
-exports.isZoomable = isZoomable;
-var ZoomMouseListener = /** @class */ (function (_super) {
-    __extends(ZoomMouseListener, _super);
-    function ZoomMouseListener() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    ZoomMouseListener.prototype.wheel = function (target, event) {
-        var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);
-        if (viewport) {
-            var newZoom = Math.exp(-event.deltaY * 0.005);
-            var factor = 1. / (newZoom * viewport.zoom) - 1. / viewport.zoom;
-            var newViewport = {
-                scroll: {
-                    x: -(factor * event.offsetX - viewport.scroll.x),
-                    y: -(factor * event.offsetY - viewport.scroll.y)
-                },
-                zoom: viewport.zoom * newZoom
-            };
-            return [new viewport_1.ViewportAction(viewport.id, newViewport, false)];
-        }
-        return [];
-    };
-    return ZoomMouseListener;
-}(mouse_tool_1.MouseListener));
-exports.ZoomMouseListener = ZoomMouseListener;
-//# sourceMappingURL=zoom.js.map
-
-/***/ }),
-/* 144 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var geometry_1 = __webpack_require__(3);
-var vnode_utils_1 = __webpack_require__(18);
-var smodel_utils_1 = __webpack_require__(13);
-var JSX = { createElement: snabbdom.svg };
-/**
- * IView component that turns an SGraph element and its children into a tree of virtual DOM elements.
- */
-var SGraphView = /** @class */ (function () {
-    function SGraphView() {
-    }
-    SGraphView.prototype.render = function (model, context) {
-        var transform = "scale(" + model.zoom + ") translate(" + -model.scroll.x + "," + -model.scroll.y + ")";
-        return JSX.createElement("svg", { "class-sprotty-graph": true },
-            JSX.createElement("g", { transform: transform }, context.renderChildren(model)));
-    };
-    return SGraphView;
-}());
-exports.SGraphView = SGraphView;
-var AnchorableView = /** @class */ (function () {
-    function AnchorableView() {
-    }
-    AnchorableView.prototype.getStrokeWidth = function (model) {
-        return 0;
-    };
-    AnchorableView.prototype.getTranslatedAnchor = function (node, refPoint, refContainer, anchorCorrection, edge) {
-        if (anchorCorrection === void 0) { anchorCorrection = 0; }
-        var viewContainer = node.parent;
-        var anchor = this.getAnchor(node, smodel_utils_1.translatePoint(refPoint, refContainer, viewContainer), anchorCorrection);
-        var edgeContainer = edge.parent;
-        return smodel_utils_1.translatePoint(anchor, viewContainer, edgeContainer);
-    };
-    return AnchorableView;
-}());
-exports.AnchorableView = AnchorableView;
-var PolylineEdgeView = /** @class */ (function () {
-    function PolylineEdgeView() {
-        this.minimalPointDistance = 2;
-    }
-    PolylineEdgeView.prototype.render = function (edge, context) {
-        var source = edge.source;
-        if (source === undefined)
-            return this.renderDanglingEdge("Cannot resolve source", edge, context);
-        var target = edge.target;
-        if (target === undefined)
-            return this.renderDanglingEdge("Cannot resolve target", edge, context);
-        var sourceView = context.viewRegistry.get(source.type, source);
-        if (!(sourceView instanceof AnchorableView))
-            return this.renderDanglingEdge("Expected source view type: AnchorableView", edge, context);
-        var targetView = context.viewRegistry.get(target.type, target);
-        if (!(targetView instanceof AnchorableView))
-            return this.renderDanglingEdge("Expected target view type: AnchorableView", edge, context);
-        var segments = this.computeSegments(edge, source, sourceView, target, targetView);
-        return JSX.createElement("g", null,
-            this.renderLine(edge, segments, context),
-            this.renderAdditionals(edge, segments, context),
-            context.renderChildren(edge));
-    };
-    PolylineEdgeView.prototype.computeSegments = function (edge, source, sourceView, target, targetView) {
-        var sourceAnchor;
-        if (edge.routingPoints !== undefined && edge.routingPoints.length >= 1) {
-            // Use the first routing point as start anchor reference
-            var p0 = edge.routingPoints[0];
-            sourceAnchor = sourceView.getTranslatedAnchor(source, p0, edge.parent, this.getSourceAnchorCorrection(edge), edge);
-        }
-        else {
-            // Use the target center as start anchor reference
-            var reference = geometry_1.center(target.bounds);
-            sourceAnchor = sourceView.getTranslatedAnchor(source, reference, target.parent, this.getSourceAnchorCorrection(edge), edge);
-        }
-        var result = [sourceAnchor];
-        var previousPoint = sourceAnchor;
-        for (var i = 0; i < edge.routingPoints.length - 1; i++) {
-            var p = edge.routingPoints[i];
-            var minDistance = this.minimalPointDistance + ((i === 0)
-                ? this.getSourceAnchorCorrection(edge) + sourceView.getStrokeWidth(source)
-                : 0);
-            if (geometry_1.maxDistance(previousPoint, p) >= minDistance) {
-                result.push(p);
-                previousPoint = p;
-            }
-        }
-        var targetAnchor;
-        if (edge.routingPoints && edge.routingPoints.length >= 2) {
-            // Use the last routing point as end anchor reference
-            var pn = edge.routingPoints[edge.routingPoints.length - 1];
-            targetAnchor = targetView.getTranslatedAnchor(target, pn, edge.parent, this.getTargetAnchorCorrection(edge), edge);
-            var minDistance = this.minimalPointDistance + this.getTargetAnchorCorrection(edge) + targetView.getStrokeWidth(source);
-            if (geometry_1.maxDistance(previousPoint, pn) >= this.minimalPointDistance
-                && geometry_1.maxDistance(pn, targetAnchor) >= minDistance) {
-                result.push(pn);
-            }
-        }
-        else {
-            // Use the source center as end anchor reference
-            var reference = geometry_1.center(source.bounds);
-            targetAnchor = targetView.getTranslatedAnchor(target, reference, source.parent, this.getTargetAnchorCorrection(edge), edge);
-        }
-        result.push(targetAnchor);
-        return result;
-    };
-    PolylineEdgeView.prototype.renderLine = function (edge, segments, context) {
-        var firstPoint = segments[0];
-        var path = "M " + firstPoint.x + "," + firstPoint.y;
-        for (var i = 1; i < segments.length; i++) {
-            var p = segments[i];
-            path += " L " + p.x + "," + p.y;
-        }
-        return JSX.createElement("path", { "class-sprotty-edge": true, d: path });
-    };
-    PolylineEdgeView.prototype.renderAdditionals = function (edge, segments, context) {
-        return [];
-    };
-    PolylineEdgeView.prototype.renderDanglingEdge = function (message, edge, context) {
-        return JSX.createElement("text", { "class-sprotty-edge-dangling": true, title: message }, "?");
-    };
-    PolylineEdgeView.prototype.getSourceAnchorCorrection = function (edge) {
-        return 0;
-    };
-    PolylineEdgeView.prototype.getTargetAnchorCorrection = function (edge) {
-        return 0;
-    };
-    return PolylineEdgeView;
-}());
-exports.PolylineEdgeView = PolylineEdgeView;
-var SLabelView = /** @class */ (function () {
-    function SLabelView() {
-    }
-    SLabelView.prototype.render = function (label, context) {
-        var vnode = JSX.createElement("text", { "class-sprotty-label": true }, label.text);
-        var subType = smodel_utils_1.getSubType(label);
-        if (subType)
-            vnode_utils_1.setAttr(vnode, 'class', subType);
-        return vnode;
-    };
-    return SLabelView;
-}());
-exports.SLabelView = SLabelView;
-var SCompartmentView = /** @class */ (function () {
-    function SCompartmentView() {
-    }
-    SCompartmentView.prototype.render = function (model, context) {
-        var translate = "translate(" + model.bounds.x + ", " + model.bounds.y + ")";
-        var vnode = JSX.createElement("g", { transform: translate, "class-sprotty-comp": "{true}" }, context.renderChildren(model));
-        var subType = smodel_utils_1.getSubType(model);
-        if (subType)
-            vnode_utils_1.setAttr(vnode, 'class', subType);
-        return vnode;
-    };
-    return SCompartmentView;
-}());
-exports.SCompartmentView = SCompartmentView;
-//# sourceMappingURL=views.js.map
-
-/***/ }),
-/* 145 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var smodel_1 = __webpack_require__(2);
-var smodel_storage_1 = __webpack_require__(87);
-var action_handler_1 = __webpack_require__(38);
-var set_model_1 = __webpack_require__(49);
-var update_model_1 = __webpack_require__(98);
-var bounds_manipulation_1 = __webpack_require__(50);
-var hover_1 = __webpack_require__(52);
-var model_source_1 = __webpack_require__(102);
-var svg_exporter_1 = __webpack_require__(40);
-var file_saver_1 = __webpack_require__(121);
-var expand_1 = __webpack_require__(61);
-var open_1 = __webpack_require__(95);
-function isActionMessage(object) {
-    return object !== undefined && object.hasOwnProperty('clientId') && object.hasOwnProperty('action');
-}
-exports.isActionMessage = isActionMessage;
-/**
- * Sent by the external server when to signal a state change.
- */
-var ServerStatusAction = /** @class */ (function () {
-    function ServerStatusAction() {
-        this.kind = ServerStatusAction.KIND;
-    }
-    ServerStatusAction.KIND = 'serverStatus';
-    return ServerStatusAction;
-}());
-exports.ServerStatusAction = ServerStatusAction;
-var receivedFromServerProperty = '__receivedFromServer';
-/**
- * A ModelSource that communicates with an external model provider, e.g.
- * a model editor.
- *
- * This class defines which actions are sent to and received from the
- * external model source.
- */
-var DiagramServer = /** @class */ (function (_super) {
-    __extends(DiagramServer, _super);
-    function DiagramServer(actionDispatcher, actionHandlerRegistry, viewerOptions, storage, logger) {
-        var _this = _super.call(this, actionDispatcher, actionHandlerRegistry, viewerOptions) || this;
-        _this.storage = storage;
-        _this.logger = logger;
-        _this.currentRoot = {
-            type: 'NONE',
-            id: 'ROOT'
-        };
-        _this.clientId = _this.viewerOptions.baseDiv;
-        return _this;
-    }
-    DiagramServer.prototype.initialize = function (registry) {
-        _super.prototype.initialize.call(this, registry);
-        // Register model manipulation commands
-        registry.registerCommand(update_model_1.UpdateModelCommand);
-        // Register this model source
-        registry.register(bounds_manipulation_1.ComputedBoundsAction.KIND, this);
-        registry.register(bounds_manipulation_1.RequestBoundsCommand.KIND, this);
-        registry.register(hover_1.RequestPopupModelAction.KIND, this);
-        registry.register(expand_1.CollapseExpandAction.KIND, this);
-        registry.register(expand_1.CollapseExpandAllAction.KIND, this);
-        registry.register(open_1.OpenAction.KIND, this);
-        registry.register(ServerStatusAction.KIND, this);
-    };
-    DiagramServer.prototype.handle = function (action) {
-        var forwardToServer = this.handleLocally(action);
-        if (forwardToServer) {
-            var message = {
-                clientId: this.clientId,
-                action: action
-            };
-            this.logger.log(this, 'sending', message);
-            this.sendMessage(message);
-        }
-    };
-    DiagramServer.prototype.messageReceived = function (data) {
-        var object = typeof (data) === 'string' ? JSON.parse(data) : data;
-        if (isActionMessage(object) && object.action) {
-            if (!object.clientId || object.clientId === this.clientId) {
-                this.logger.log(this, 'receiving', object);
-                object.action[receivedFromServerProperty] = true;
-                this.actionDispatcher.dispatch(object.action, this.storeNewModel.bind(this));
-            }
-        }
-        else {
-            this.logger.error(this, 'received data is not an action message', object);
-        }
-    };
-    /**
-     * Check whether the given action should be handled locally. Returns true if the action should
-     * still be sent to the server, and false if it's only handled locally.
-     */
-    DiagramServer.prototype.handleLocally = function (action) {
-        this.storeNewModel(action);
-        switch (action.kind) {
-            case bounds_manipulation_1.ComputedBoundsAction.KIND:
-                return this.handleComputedBounds(action);
-            case bounds_manipulation_1.RequestBoundsCommand.KIND:
-                return false;
-            case svg_exporter_1.ExportSvgAction.KIND:
-                return this.handleExportSvgAction(action);
-            case ServerStatusAction.KIND:
-                return this.handleServerStateAction(action);
-        }
-        return !action[receivedFromServerProperty];
-    };
-    /**
-     * Put the new model contained in the given action into the model storage, if there is any.
-     */
-    DiagramServer.prototype.storeNewModel = function (action) {
-        if (action.kind === set_model_1.SetModelCommand.KIND
-            || action.kind === update_model_1.UpdateModelCommand.KIND
-            || action.kind === bounds_manipulation_1.RequestBoundsCommand.KIND) {
-            var newRoot = action.newRoot;
-            if (newRoot) {
-                this.currentRoot = newRoot;
-                this.storage.store(this.currentRoot);
-            }
-        }
-    };
-    /**
-     * If the server requires to compute a layout, the computed bounds are forwarded. Otherwise they
-     * are applied to the current model locally and a model update is triggered.
-     */
-    DiagramServer.prototype.handleComputedBounds = function (action) {
-        if (this.viewerOptions.needsServerLayout) {
-            return true;
-        }
-        else {
-            var index = new smodel_1.SModelIndex();
-            index.add(this.currentRoot);
-            for (var _i = 0, _a = action.bounds; _i < _a.length; _i++) {
-                var b = _a[_i];
-                var element = index.getById(b.elementId);
-                if (element !== undefined)
-                    this.applyBounds(element, b.newBounds);
-            }
-            if (action.alignments !== undefined) {
-                for (var _b = 0, _c = action.alignments; _b < _c.length; _b++) {
-                    var a = _c[_b];
-                    var element = index.getById(a.elementId);
-                    if (element !== undefined)
-                        this.applyAlignment(element, a.newAlignment);
-                }
-            }
-            this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(this.currentRoot));
-            return false;
-        }
-    };
-    DiagramServer.prototype.applyBounds = function (element, newBounds) {
-        var e = element;
-        e.position = { x: newBounds.x, y: newBounds.y };
-        e.size = { width: newBounds.width, height: newBounds.height };
-    };
-    DiagramServer.prototype.applyAlignment = function (element, newAlignment) {
-        var e = element;
-        e.alignment = { x: newAlignment.x, y: newAlignment.y };
-    };
-    DiagramServer.prototype.handleExportSvgAction = function (action) {
-        var blob = new Blob([action.svg], { type: "text/plain;charset=utf-8" });
-        file_saver_1.saveAs(blob, "diagram.svg");
-        return false;
-    };
-    DiagramServer.prototype.handleServerStateAction = function (action) {
-        return false;
-    };
-    DiagramServer = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),
-        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __param(3, inversify_1.inject(types_1.TYPES.SModelStorage)),
-        __param(4, inversify_1.inject(types_1.TYPES.ILogger)),
-        __metadata("design:paramtypes", [Object, action_handler_1.ActionHandlerRegistry, Object, smodel_storage_1.SModelStorage, Object])
-    ], DiagramServer);
-    return DiagramServer;
-}(model_source_1.ModelSource));
-exports.DiagramServer = DiagramServer;
-//# sourceMappingURL=diagram-server.js.map
-
-/***/ }),
-/* 146 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
-* Copyright (C) 2017 TypeFox and others.
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-*/
-Object.defineProperty(exports, "__esModule", { value: true });
-var ExpansionState = /** @class */ (function () {
-    function ExpansionState(root) {
-        this.expandedElementIds = [];
-        this.initialize(root);
-    }
-    ExpansionState.prototype.initialize = function (element) {
-        var _this = this;
-        if (element.expanded)
-            this.expandedElementIds.push(element.id);
-        if (element.children !== undefined)
-            element.children.forEach(function (child) { return _this.initialize(child); });
-    };
-    ExpansionState.prototype.apply = function (action) {
-        for (var _i = 0, _a = action.collapseIds; _i < _a.length; _i++) {
-            var collapsed = _a[_i];
-            var index = this.expandedElementIds.indexOf(collapsed);
-            if (index !== -1)
-                this.expandedElementIds.splice(index, 1);
-        }
-        for (var _b = 0, _c = action.expandIds; _b < _c.length; _b++) {
-            var expanded = _c[_b];
-            this.expandedElementIds.push(expanded);
-        }
-    };
-    ExpansionState.prototype.collapseAll = function () {
-        this.expandedElementIds = [];
-    };
-    return ExpansionState;
-}());
-exports.ExpansionState = ExpansionState;
-//# sourceMappingURL=diagram-state.js.map
-
-/***/ }),
-/* 147 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (immutable) */ __webpack_exports__["a"] = h;
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vnode__ = __webpack_require__(150);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__is__ = __webpack_require__(148);
-
-
-function addNS(data, children, sel) {
-    data.ns = 'http://www.w3.org/2000/svg';
-    if (sel !== 'foreignObject' && children !== undefined) {
-        for (var i = 0; i < children.length; ++i) {
-            var childData = children[i].data;
-            if (childData !== undefined) {
-                addNS(childData, children[i].children, children[i].sel);
-            }
-        }
-    }
-}
-function h(sel, b, c) {
-    var data = {}, children, text, i;
-    if (c !== undefined) {
-        data = b;
-        if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](c)) {
-            children = c;
-        }
-        else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](c)) {
-            text = c;
-        }
-        else if (c && c.sel) {
-            children = [c];
-        }
-    }
-    else if (b !== undefined) {
-        if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](b)) {
-            children = b;
-        }
-        else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](b)) {
-            text = b;
-        }
-        else if (b && b.sel) {
-            children = [b];
-        }
-        else {
-            data = b;
-        }
-    }
-    if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](children)) {
-        for (i = 0; i < children.length; ++i) {
-            if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](children[i]))
-                children[i] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__vnode__["b" /* vnode */])(undefined, undefined, undefined, children[i], undefined);
-        }
-    }
-    if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&
-        (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {
-        addNS(data, children, sel);
-    }
-    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__vnode__["b" /* vnode */])(sel, data, children, text, undefined);
-}
-;
-/* unused harmony default export */ var _unused_webpack_default_export = (h);
-//# sourceMappingURL=h.js.map
-
-/***/ }),
-/* 148 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return array; });
-/* harmony export (immutable) */ __webpack_exports__["b"] = primitive;
-var array = Array.isArray;
-function primitive(s) {
-    return typeof s === 'string' || typeof s === 'number';
-}
-//# sourceMappingURL=is.js.map
-
-/***/ }),
-/* 149 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
-/* harmony export (immutable) */ __webpack_exports__["init"] = init;
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vnode__ = __webpack_require__(150);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__is__ = __webpack_require__(148);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__htmldomapi__ = __webpack_require__(277);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__h__ = __webpack_require__(147);
-/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_3__h__["a"]; });
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__thunk__ = __webpack_require__(278);
-/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "thunk", function() { return __WEBPACK_IMPORTED_MODULE_4__thunk__["a"]; });
-
-
-
-function isUndef(s) { return s === undefined; }
-function isDef(s) { return s !== undefined; }
-var emptyNode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__vnode__["a" /* default */])('', {}, [], undefined, undefined);
-function sameVnode(vnode1, vnode2) {
-    return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;
-}
-function isVnode(vnode) {
-    return vnode.sel !== undefined;
-}
-function createKeyToOldIdx(children, beginIdx, endIdx) {
-    var i, map = {}, key, ch;
-    for (i = beginIdx; i <= endIdx; ++i) {
-        ch = children[i];
-        if (ch != null) {
-            key = ch.key;
-            if (key !== undefined)
-                map[key] = i;
-        }
-    }
-    return map;
-}
-var hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post'];
-
-
-function init(modules, domApi) {
-    var i, j, cbs = {};
-    var api = domApi !== undefined ? domApi : __WEBPACK_IMPORTED_MODULE_2__htmldomapi__["a" /* default */];
-    for (i = 0; i < hooks.length; ++i) {
-        cbs[hooks[i]] = [];
-        for (j = 0; j < modules.length; ++j) {
-            var hook = modules[j][hooks[i]];
-            if (hook !== undefined) {
-                cbs[hooks[i]].push(hook);
-            }
-        }
-    }
-    function emptyNodeAt(elm) {
-        var id = elm.id ? '#' + elm.id : '';
-        var c = elm.className ? '.' + elm.className.split(' ').join('.') : '';
-        return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__vnode__["a" /* default */])(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);
-    }
-    function createRmCb(childElm, listeners) {
-        return function rmCb() {
-            if (--listeners === 0) {
-                var parent_1 = api.parentNode(childElm);
-                api.removeChild(parent_1, childElm);
-            }
-        };
-    }
-    function createElm(vnode, insertedVnodeQueue) {
-        var i, data = vnode.data;
-        if (data !== undefined) {
-            if (isDef(i = data.hook) && isDef(i = i.init)) {
-                i(vnode);
-                data = vnode.data;
-            }
-        }
-        var children = vnode.children, sel = vnode.sel;
-        if (sel === '!') {
-            if (isUndef(vnode.text)) {
-                vnode.text = '';
-            }
-            vnode.elm = api.createComment(vnode.text);
-        }
-        else if (sel !== undefined) {
-            // Parse selector
-            var hashIdx = sel.indexOf('#');
-            var dotIdx = sel.indexOf('.', hashIdx);
-            var hash = hashIdx > 0 ? hashIdx : sel.length;
-            var dot = dotIdx > 0 ? dotIdx : sel.length;
-            var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel;
-            var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag)
-                : api.createElement(tag);
-            if (hash < dot)
-                elm.setAttribute('id', sel.slice(hash + 1, dot));
-            if (dotIdx > 0)
-                elm.setAttribute('class', sel.slice(dot + 1).replace(/\./g, ' '));
-            for (i = 0; i < cbs.create.length; ++i)
-                cbs.create[i](emptyNode, vnode);
-            if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](children)) {
-                for (i = 0; i < children.length; ++i) {
-                    var ch = children[i];
-                    if (ch != null) {
-                        api.appendChild(elm, createElm(ch, insertedVnodeQueue));
-                    }
-                }
-            }
-            else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](vnode.text)) {
-                api.appendChild(elm, api.createTextNode(vnode.text));
-            }
-            i = vnode.data.hook; // Reuse variable
-            if (isDef(i)) {
-                if (i.create)
-                    i.create(emptyNode, vnode);
-                if (i.insert)
-                    insertedVnodeQueue.push(vnode);
-            }
-        }
-        else {
-            vnode.elm = api.createTextNode(vnode.text);
-        }
-        return vnode.elm;
-    }
-    function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {
-        for (; startIdx <= endIdx; ++startIdx) {
-            var ch = vnodes[startIdx];
-            if (ch != null) {
-                api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);
-            }
-        }
-    }
-    function invokeDestroyHook(vnode) {
-        var i, j, data = vnode.data;
-        if (data !== undefined) {
-            if (isDef(i = data.hook) && isDef(i = i.destroy))
-                i(vnode);
-            for (i = 0; i < cbs.destroy.length; ++i)
-                cbs.destroy[i](vnode);
-            if (vnode.children !== undefined) {
-                for (j = 0; j < vnode.children.length; ++j) {
-                    i = vnode.children[j];
-                    if (i != null && typeof i !== "string") {
-                        invokeDestroyHook(i);
-                    }
-                }
-            }
-        }
-    }
-    function removeVnodes(parentElm, vnodes, startIdx, endIdx) {
-        for (; startIdx <= endIdx; ++startIdx) {
-            var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];
-            if (ch != null) {
-                if (isDef(ch.sel)) {
-                    invokeDestroyHook(ch);
-                    listeners = cbs.remove.length + 1;
-                    rm = createRmCb(ch.elm, listeners);
-                    for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)
-                        cbs.remove[i_1](ch, rm);
-                    if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {
-                        i_1(ch, rm);
-                    }
-                    else {
-                        rm();
-                    }
-                }
-                else {
-                    api.removeChild(parentElm, ch.elm);
-                }
-            }
-        }
-    }
-    function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {
-        var oldStartIdx = 0, newStartIdx = 0;
-        var oldEndIdx = oldCh.length - 1;
-        var oldStartVnode = oldCh[0];
-        var oldEndVnode = oldCh[oldEndIdx];
-        var newEndIdx = newCh.length - 1;
-        var newStartVnode = newCh[0];
-        var newEndVnode = newCh[newEndIdx];
-        var oldKeyToIdx;
-        var idxInOld;
-        var elmToMove;
-        var before;
-        while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
-            if (oldStartVnode == null) {
-                oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left
-            }
-            else if (oldEndVnode == null) {
-                oldEndVnode = oldCh[--oldEndIdx];
-            }
-            else if (newStartVnode == null) {
-                newStartVnode = newCh[++newStartIdx];
-            }
-            else if (newEndVnode == null) {
-                newEndVnode = newCh[--newEndIdx];
-            }
-            else if (sameVnode(oldStartVnode, newStartVnode)) {
-                patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
-                oldStartVnode = oldCh[++oldStartIdx];
-                newStartVnode = newCh[++newStartIdx];
-            }
-            else if (sameVnode(oldEndVnode, newEndVnode)) {
-                patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
-                oldEndVnode = oldCh[--oldEndIdx];
-                newEndVnode = newCh[--newEndIdx];
-            }
-            else if (sameVnode(oldStartVnode, newEndVnode)) {
-                patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
-                api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));
-                oldStartVnode = oldCh[++oldStartIdx];
-                newEndVnode = newCh[--newEndIdx];
-            }
-            else if (sameVnode(oldEndVnode, newStartVnode)) {
-                patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
-                api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
-                oldEndVnode = oldCh[--oldEndIdx];
-                newStartVnode = newCh[++newStartIdx];
-            }
-            else {
-                if (oldKeyToIdx === undefined) {
-                    oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
-                }
-                idxInOld = oldKeyToIdx[newStartVnode.key];
-                if (isUndef(idxInOld)) {
-                    api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);
-                    newStartVnode = newCh[++newStartIdx];
-                }
-                else {
-                    elmToMove = oldCh[idxInOld];
-                    if (elmToMove.sel !== newStartVnode.sel) {
-                        api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);
-                    }
-                    else {
-                        patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);
-                        oldCh[idxInOld] = undefined;
-                        api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);
-                    }
-                    newStartVnode = newCh[++newStartIdx];
-                }
-            }
-        }
-        if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {
-            if (oldStartIdx > oldEndIdx) {
-                before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;
-                addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
-            }
-            else {
-                removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
-            }
-        }
-    }
-    function patchVnode(oldVnode, vnode, insertedVnodeQueue) {
-        var i, hook;
-        if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {
-            i(oldVnode, vnode);
-        }
-        var elm = vnode.elm = oldVnode.elm;
-        var oldCh = oldVnode.children;
-        var ch = vnode.children;
-        if (oldVnode === vnode)
-            return;
-        if (vnode.data !== undefined) {
-            for (i = 0; i < cbs.update.length; ++i)
-                cbs.update[i](oldVnode, vnode);
-            i = vnode.data.hook;
-            if (isDef(i) && isDef(i = i.update))
-                i(oldVnode, vnode);
-        }
-        if (isUndef(vnode.text)) {
-            if (isDef(oldCh) && isDef(ch)) {
-                if (oldCh !== ch)
-                    updateChildren(elm, oldCh, ch, insertedVnodeQueue);
-            }
-            else if (isDef(ch)) {
-                if (isDef(oldVnode.text))
-                    api.setTextContent(elm, '');
-                addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
-            }
-            else if (isDef(oldCh)) {
-                removeVnodes(elm, oldCh, 0, oldCh.length - 1);
-            }
-            else if (isDef(oldVnode.text)) {
-                api.setTextContent(elm, '');
-            }
-        }
-        else if (oldVnode.text !== vnode.text) {
-            api.setTextContent(elm, vnode.text);
-        }
-        if (isDef(hook) && isDef(i = hook.postpatch)) {
-            i(oldVnode, vnode);
-        }
-    }
-    return function patch(oldVnode, vnode) {
-        var i, elm, parent;
-        var insertedVnodeQueue = [];
-        for (i = 0; i < cbs.pre.length; ++i)
-            cbs.pre[i]();
-        if (!isVnode(oldVnode)) {
-            oldVnode = emptyNodeAt(oldVnode);
-        }
-        if (sameVnode(oldVnode, vnode)) {
-            patchVnode(oldVnode, vnode, insertedVnodeQueue);
-        }
-        else {
-            elm = oldVnode.elm;
-            parent = api.parentNode(elm);
-            createElm(vnode, insertedVnodeQueue);
-            if (parent !== null) {
-                api.insertBefore(parent, vnode.elm, api.nextSibling(elm));
-                removeVnodes(parent, [oldVnode], 0, 0);
-            }
-        }
-        for (i = 0; i < insertedVnodeQueue.length; ++i) {
-            insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);
-        }
-        for (i = 0; i < cbs.post.length; ++i)
-            cbs.post[i]();
-        return vnode;
-    };
-}
-//# sourceMappingURL=snabbdom.js.map
-
-/***/ }),
-/* 150 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (immutable) */ __webpack_exports__["b"] = vnode;
-function vnode(sel, data, children, text, elm) {
-    var key = data === undefined ? undefined : data.key;
-    return { sel: sel, data: data, children: children,
-        text: text, elm: elm, key: key };
-}
-/* harmony default export */ __webpack_exports__["a"] = (vnode);
-//# sourceMappingURL=vnode.js.map
-
-/***/ }),
-/* 151 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(81);
-__webpack_require__(82);
-__webpack_require__(120);
-__webpack_require__(183);
-module.exports = __webpack_require__(20).Map;
-
-
-/***/ }),
-/* 152 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(81);
-__webpack_require__(82);
-__webpack_require__(120);
-__webpack_require__(184);
-module.exports = __webpack_require__(20).Promise;
-
-
-/***/ }),
-/* 153 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(198);
-__webpack_require__(202);
-__webpack_require__(209);
-__webpack_require__(82);
-__webpack_require__(193);
-__webpack_require__(194);
-__webpack_require__(199);
-__webpack_require__(203);
-__webpack_require__(205);
-__webpack_require__(189);
-__webpack_require__(190);
-__webpack_require__(191);
-__webpack_require__(192);
-__webpack_require__(195);
-__webpack_require__(196);
-__webpack_require__(197);
-__webpack_require__(200);
-__webpack_require__(201);
-__webpack_require__(204);
-__webpack_require__(206);
-__webpack_require__(207);
-__webpack_require__(208);
-__webpack_require__(185);
-__webpack_require__(186);
-__webpack_require__(187);
-__webpack_require__(188);
-module.exports = __webpack_require__(20).String;
-
-
-/***/ }),
-/* 154 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(210);
-__webpack_require__(81);
-module.exports = __webpack_require__(20).Symbol;
-
-
-/***/ }),
-/* 155 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-__webpack_require__(241);
-var standalone_1 = __webpack_require__(292);
-standalone_1.initializeSiriusDiagram();
-
-
-/***/ }),
-/* 156 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 22.1.3.31 Array.prototype[@@unscopables]
-var UNSCOPABLES = __webpack_require__(4)('unscopables');
-var ArrayProto = Array.prototype;
-if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(26)(ArrayProto, UNSCOPABLES, {});
-module.exports = function (key) {
-  ArrayProto[UNSCOPABLES][key] = true;
-};
-
-
-/***/ }),
-/* 157 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// false -> Array#indexOf
-// true  -> Array#includes
-var toIObject = __webpack_require__(33);
-var toLength = __webpack_require__(45);
-var toAbsoluteIndex = __webpack_require__(117);
-module.exports = function (IS_INCLUDES) {
-  return function ($this, el, fromIndex) {
-    var O = toIObject($this);
-    var length = toLength(O.length);
-    var index = toAbsoluteIndex(fromIndex, length);
-    var value;
-    // Array#includes uses SameValueZero equality algorithm
-    // eslint-disable-next-line no-self-compare
-    if (IS_INCLUDES && el != el) while (length > index) {
-      value = O[index++];
-      // eslint-disable-next-line no-self-compare
-      if (value != value) return true;
-    // Array#indexOf ignores holes, Array#includes - not
-    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
-      if (O[index] === el) return IS_INCLUDES || index || 0;
-    } return !IS_INCLUDES && -1;
-  };
-};
-
-
-/***/ }),
-/* 158 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var dP = __webpack_require__(27).f;
-var create = __webpack_require__(74);
-var redefineAll = __webpack_require__(76);
-var ctx = __webpack_require__(37);
-var anInstance = __webpack_require__(66);
-var forOf = __webpack_require__(71);
-var $iterDefine = __webpack_require__(72);
-var step = __webpack_require__(108);
-var setSpecies = __webpack_require__(114);
-var DESCRIPTORS = __webpack_require__(23);
-var fastKey = __webpack_require__(73).fastKey;
-var validate = __webpack_require__(118);
-var SIZE = DESCRIPTORS ? '_s' : 'size';
-
-var getEntry = function (that, key) {
-  // fast case
-  var index = fastKey(key);
-  var entry;
-  if (index !== 'F') return that._i[index];
-  // frozen object case
-  for (entry = that._f; entry; entry = entry.n) {
-    if (entry.k == key) return entry;
-  }
-};
-
-module.exports = {
-  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
-    var C = wrapper(function (that, iterable) {
-      anInstance(that, C, NAME, '_i');
-      that._t = NAME;         // collection type
-      that._i = create(null); // index
-      that._f = undefined;    // first entry
-      that._l = undefined;    // last entry
-      that[SIZE] = 0;         // size
-      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
-    });
-    redefineAll(C.prototype, {
-      // 23.1.3.1 Map.prototype.clear()
-      // 23.2.3.2 Set.prototype.clear()
-      clear: function clear() {
-        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
-          entry.r = true;
-          if (entry.p) entry.p = entry.p.n = undefined;
-          delete data[entry.i];
-        }
-        that._f = that._l = undefined;
-        that[SIZE] = 0;
-      },
-      // 23.1.3.3 Map.prototype.delete(key)
-      // 23.2.3.4 Set.prototype.delete(value)
-      'delete': function (key) {
-        var that = validate(this, NAME);
-        var entry = getEntry(that, key);
-        if (entry) {
-          var next = entry.n;
-          var prev = entry.p;
-          delete that._i[entry.i];
-          entry.r = true;
-          if (prev) prev.n = next;
-          if (next) next.p = prev;
-          if (that._f == entry) that._f = next;
-          if (that._l == entry) that._l = prev;
-          that[SIZE]--;
-        } return !!entry;
-      },
-      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-      forEach: function forEach(callbackfn /* , that = undefined */) {
-        validate(this, NAME);
-        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-        var entry;
-        while (entry = entry ? entry.n : this._f) {
-          f(entry.v, entry.k, this);
-          // revert to the last existing entry
-          while (entry && entry.r) entry = entry.p;
-        }
-      },
-      // 23.1.3.7 Map.prototype.has(key)
-      // 23.2.3.7 Set.prototype.has(value)
-      has: function has(key) {
-        return !!getEntry(validate(this, NAME), key);
-      }
-    });
-    if (DESCRIPTORS) dP(C.prototype, 'size', {
-      get: function () {
-        return validate(this, NAME)[SIZE];
-      }
-    });
-    return C;
-  },
-  def: function (that, key, value) {
-    var entry = getEntry(that, key);
-    var prev, index;
-    // change existing entry
-    if (entry) {
-      entry.v = value;
-    // create new entry
-    } else {
-      that._l = entry = {
-        i: index = fastKey(key, true), // <- index
-        k: key,                        // <- key
-        v: value,                      // <- value
-        p: prev = that._l,             // <- previous entry
-        n: undefined,                  // <- next entry
-        r: false                       // <- removed
-      };
-      if (!that._f) that._f = entry;
-      if (prev) prev.n = entry;
-      that[SIZE]++;
-      // add to index
-      if (index !== 'F') that._i[index] = entry;
-    } return that;
-  },
-  getEntry: getEntry,
-  setStrong: function (C, NAME, IS_MAP) {
-    // add .keys, .values, .entries, [@@iterator]
-    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-    $iterDefine(C, NAME, function (iterated, kind) {
-      this._t = validate(iterated, NAME); // target
-      this._k = kind;                     // kind
-      this._l = undefined;                // previous
-    }, function () {
-      var that = this;
-      var kind = that._k;
-      var entry = that._l;
-      // revert to the last existing entry
-      while (entry && entry.r) entry = entry.p;
-      // get next entry
-      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
-        // or finish the iteration
-        that._t = undefined;
-        return step(1);
-      }
-      // return step by kind
-      if (kind == 'keys') return step(0, entry.k);
-      if (kind == 'values') return step(0, entry.v);
-      return step(0, [entry.k, entry.v]);
-    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
-
-    // add [@@species], 23.1.2.2, 23.2.2.2
-    setSpecies(NAME);
-  }
-};
-
-
-/***/ }),
-/* 159 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var global = __webpack_require__(6);
-var $export = __webpack_require__(10);
-var redefine = __webpack_require__(28);
-var redefineAll = __webpack_require__(76);
-var meta = __webpack_require__(73);
-var forOf = __webpack_require__(71);
-var anInstance = __webpack_require__(66);
-var isObject = __webpack_require__(14);
-var fails = __webpack_require__(24);
-var $iterDetect = __webpack_require__(107);
-var setToStringTag = __webpack_require__(44);
-var inheritIfRequired = __webpack_require__(161);
-
-module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
-  var Base = global[NAME];
-  var C = Base;
-  var ADDER = IS_MAP ? 'set' : 'add';
-  var proto = C && C.prototype;
-  var O = {};
-  var fixMethod = function (KEY) {
-    var fn = proto[KEY];
-    redefine(proto, KEY,
-      KEY == 'delete' ? function (a) {
-        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
-      } : KEY == 'has' ? function has(a) {
-        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
-      } : KEY == 'get' ? function get(a) {
-        return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
-      } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
-        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
-    );
-  };
-  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
-    new C().entries().next();
-  }))) {
-    // create collection constructor
-    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
-    redefineAll(C.prototype, methods);
-    meta.NEED = true;
-  } else {
-    var instance = new C();
-    // early implementations not supports chaining
-    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
-    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false
-    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
-    // most early implementations doesn't supports iterables, most modern - not close it correctly
-    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
-    // for early implementations -0 and +0 not the same
-    var BUGGY_ZERO = !IS_WEAK && fails(function () {
-      // V8 ~ Chromium 42- fails only with 5+ elements
-      var $instance = new C();
-      var index = 5;
-      while (index--) $instance[ADDER](index, index);
-      return !$instance.has(-0);
-    });
-    if (!ACCEPT_ITERABLES) {
-      C = wrapper(function (target, iterable) {
-        anInstance(target, C, NAME);
-        var that = inheritIfRequired(new Base(), target, C);
-        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
-        return that;
-      });
-      C.prototype = proto;
-      proto.constructor = C;
-    }
-    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
-      fixMethod('delete');
-      fixMethod('has');
-      IS_MAP && fixMethod('get');
-    }
-    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
-    // weak collections should not contains .clear method
-    if (IS_WEAK && proto.clear) delete proto.clear;
-  }
-
-  setToStringTag(C, NAME);
-
-  O[NAME] = C;
-  $export($export.G + $export.W + $export.F * (C != Base), O);
-
-  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
-
-  return C;
-};
-
-
-/***/ }),
-/* 160 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// all enumerable object keys, includes symbols
-var getKeys = __webpack_require__(57);
-var gOPS = __webpack_require__(112);
-var pIE = __webpack_require__(75);
-module.exports = function (it) {
-  var result = getKeys(it);
-  var getSymbols = gOPS.f;
-  if (getSymbols) {
-    var symbols = getSymbols(it);
-    var isEnum = pIE.f;
-    var i = 0;
-    var key;
-    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
-  } return result;
-};
-
-
-/***/ }),
-/* 161 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(14);
-var setPrototypeOf = __webpack_require__(174).set;
-module.exports = function (that, target, C) {
-  var S = target.constructor;
-  var P;
-  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
-    setPrototypeOf(that, P);
-  } return that;
-};
-
-
-/***/ }),
-/* 162 */
-/***/ (function(module, exports) {
-
-// fast apply, http://jsperf.lnkit.com/fast-apply/5
-module.exports = function (fn, args, that) {
-  var un = that === undefined;
-  switch (args.length) {
-    case 0: return un ? fn()
-                      : fn.call(that);
-    case 1: return un ? fn(args[0])
-                      : fn.call(that, args[0]);
-    case 2: return un ? fn(args[0], args[1])
-                      : fn.call(that, args[0], args[1]);
-    case 3: return un ? fn(args[0], args[1], args[2])
-                      : fn.call(that, args[0], args[1], args[2]);
-    case 4: return un ? fn(args[0], args[1], args[2], args[3])
-                      : fn.call(that, args[0], args[1], args[2], args[3]);
-  } return fn.apply(that, args);
-};
-
-
-/***/ }),
-/* 163 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = __webpack_require__(36);
-// eslint-disable-next-line no-prototype-builtins
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
-  return cof(it) == 'String' ? it.split('') : Object(it);
-};
-
-
-/***/ }),
-/* 164 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// check on default Array iterator
-var Iterators = __webpack_require__(43);
-var ITERATOR = __webpack_require__(4)('iterator');
-var ArrayProto = Array.prototype;
-
-module.exports = function (it) {
-  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-};
-
-
-/***/ }),
-/* 165 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.2.2 IsArray(argument)
-var cof = __webpack_require__(36);
-module.exports = Array.isArray || function isArray(arg) {
-  return cof(arg) == 'Array';
-};
-
-
-/***/ }),
-/* 166 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// call something on iterator step with safe closing on error
-var anObject = __webpack_require__(19);
-module.exports = function (iterator, fn, value, entries) {
-  try {
-    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-  // 7.4.6 IteratorClose(iterator, completion)
-  } catch (e) {
-    var ret = iterator['return'];
-    if (ret !== undefined) anObject(ret.call(iterator));
-    throw e;
-  }
-};
-
-
-/***/ }),
-/* 167 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var create = __webpack_require__(74);
-var descriptor = __webpack_require__(58);
-var setToStringTag = __webpack_require__(44);
-var IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-__webpack_require__(26)(IteratorPrototype, __webpack_require__(4)('iterator'), function () { return this; });
-
-module.exports = function (Constructor, NAME, next) {
-  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
-  setToStringTag(Constructor, NAME + ' Iterator');
-};
-
-
-/***/ }),
-/* 168 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(6);
-var macrotask = __webpack_require__(116).set;
-var Observer = global.MutationObserver || global.WebKitMutationObserver;
-var process = global.process;
-var Promise = global.Promise;
-var isNode = __webpack_require__(36)(process) == 'process';
-
-module.exports = function () {
-  var head, last, notify;
-
-  var flush = function () {
-    var parent, fn;
-    if (isNode && (parent = process.domain)) parent.exit();
-    while (head) {
-      fn = head.fn;
-      head = head.next;
-      try {
-        fn();
-      } catch (e) {
-        if (head) notify();
-        else last = undefined;
-        throw e;
-      }
-    } last = undefined;
-    if (parent) parent.enter();
-  };
-
-  // Node.js
-  if (isNode) {
-    notify = function () {
-      process.nextTick(flush);
-    };
-  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
-  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
-    var toggle = true;
-    var node = document.createTextNode('');
-    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
-    notify = function () {
-      node.data = toggle = !toggle;
-    };
-  // environments with maybe non-completely correct, but existent Promise
-  } else if (Promise && Promise.resolve) {
-    var promise = Promise.resolve();
-    notify = function () {
-      promise.then(flush);
-    };
-  // for other environments - macrotask based on:
-  // - setImmediate
-  // - MessageChannel
-  // - window.postMessag
-  // - onreadystatechange
-  // - setTimeout
-  } else {
-    notify = function () {
-      // strange IE + webpack dev server bug - use .call(global)
-      macrotask.call(global, flush);
-    };
-  }
-
-  return function (fn) {
-    var task = { fn: fn, next: undefined };
-    if (last) last.next = task;
-    if (!head) {
-      head = task;
-      notify();
-    } last = task;
-  };
-};
-
-
-/***/ }),
-/* 169 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var dP = __webpack_require__(27);
-var anObject = __webpack_require__(19);
-var getKeys = __webpack_require__(57);
-
-module.exports = __webpack_require__(23) ? Object.defineProperties : function defineProperties(O, Properties) {
-  anObject(O);
-  var keys = getKeys(Properties);
-  var length = keys.length;
-  var i = 0;
-  var P;
-  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
-  return O;
-};
-
-
-/***/ }),
-/* 170 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = __webpack_require__(33);
-var gOPN = __webpack_require__(111).f;
-var toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
-  ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function (it) {
-  try {
-    return gOPN(it);
-  } catch (e) {
-    return windowNames.slice();
-  }
-};
-
-module.exports.f = function getOwnPropertyNames(it) {
-  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
-
-
-/***/ }),
-/* 171 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has = __webpack_require__(25);
-var toObject = __webpack_require__(179);
-var IE_PROTO = __webpack_require__(77)('IE_PROTO');
-var ObjectProto = Object.prototype;
-
-module.exports = Object.getPrototypeOf || function (O) {
-  O = toObject(O);
-  if (has(O, IE_PROTO)) return O[IE_PROTO];
-  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
-    return O.constructor.prototype;
-  } return O instanceof Object ? ObjectProto : null;
-};
-
-
-/***/ }),
-/* 172 */
-/***/ (function(module, exports) {
-
-module.exports = function (exec) {
-  try {
-    return { e: false, v: exec() };
-  } catch (e) {
-    return { e: true, v: e };
-  }
-};
-
-
-/***/ }),
-/* 173 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var anObject = __webpack_require__(19);
-var isObject = __webpack_require__(14);
-var newPromiseCapability = __webpack_require__(109);
-
-module.exports = function (C, x) {
-  anObject(C);
-  if (isObject(x) && x.constructor === C) return x;
-  var promiseCapability = newPromiseCapability.f(C);
-  var resolve = promiseCapability.resolve;
-  resolve(x);
-  return promiseCapability.promise;
-};
-
-
-/***/ }),
-/* 174 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var isObject = __webpack_require__(14);
-var anObject = __webpack_require__(19);
-var check = function (O, proto) {
-  anObject(O);
-  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
-  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
-    function (test, buggy, set) {
-      try {
-        set = __webpack_require__(37)(Function.call, __webpack_require__(110).f(Object.prototype, '__proto__').set, 2);
-        set(test, []);
-        buggy = !(test instanceof Array);
-      } catch (e) { buggy = true; }
-      return function setPrototypeOf(O, proto) {
-        check(O, proto);
-        if (buggy) O.__proto__ = proto;
-        else set(O, proto);
-        return O;
-      };
-    }({}, false) : undefined),
-  check: check
-};
-
-
-/***/ }),
-/* 175 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var anObject = __webpack_require__(19);
-var aFunction = __webpack_require__(54);
-var SPECIES = __webpack_require__(4)('species');
-module.exports = function (O, D) {
-  var C = anObject(O).constructor;
-  var S;
-  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-};
-
-
-/***/ }),
-/* 176 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var toInteger = __webpack_require__(59);
-var defined = __webpack_require__(22);
-
-module.exports = function repeat(count) {
-  var str = String(defined(this));
-  var res = '';
-  var n = toInteger(count);
-  if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
-  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
-  return res;
-};
-
-
-/***/ }),
-/* 177 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(10);
-var defined = __webpack_require__(22);
-var fails = __webpack_require__(24);
-var spaces = __webpack_require__(178);
-var space = '[' + spaces + ']';
-var non = '\u200b\u0085';
-var ltrim = RegExp('^' + space + space + '*');
-var rtrim = RegExp(space + space + '*$');
-
-var exporter = function (KEY, exec, ALIAS) {
-  var exp = {};
-  var FORCE = fails(function () {
-    return !!spaces[KEY]() || non[KEY]() != non;
-  });
-  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
-  if (ALIAS) exp[ALIAS] = fn;
-  $export($export.P + $export.F * FORCE, 'String', exp);
-};
-
-// 1 -> String#trimLeft
-// 2 -> String#trimRight
-// 3 -> String#trim
-var trim = exporter.trim = function (string, TYPE) {
-  string = String(defined(string));
-  if (TYPE & 1) string = string.replace(ltrim, '');
-  if (TYPE & 2) string = string.replace(rtrim, '');
-  return string;
-};
-
-module.exports = exporter;
-
-
-/***/ }),
-/* 178 */
-/***/ (function(module, exports) {
-
-module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
-  '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
-
-
-/***/ }),
-/* 179 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// 7.1.13 ToObject(argument)
-var defined = __webpack_require__(22);
-module.exports = function (it) {
-  return Object(defined(it));
-};
-
-
-/***/ }),
-/* 180 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(6);
-var core = __webpack_require__(20);
-var LIBRARY = __webpack_require__(56);
-var wksExt = __webpack_require__(119);
-var defineProperty = __webpack_require__(27).f;
-module.exports = function (name) {
-  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
-  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
-};
-
-
-/***/ }),
-/* 181 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var classof = __webpack_require__(67);
-var ITERATOR = __webpack_require__(4)('iterator');
-var Iterators = __webpack_require__(43);
-module.exports = __webpack_require__(20).getIteratorMethod = function (it) {
-  if (it != undefined) return it[ITERATOR]
-    || it['@@iterator']
-    || Iterators[classof(it)];
-};
-
-
-/***/ }),
-/* 182 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var addToUnscopables = __webpack_require__(156);
-var step = __webpack_require__(108);
-var Iterators = __webpack_require__(43);
-var toIObject = __webpack_require__(33);
-
-// 22.1.3.4 Array.prototype.entries()
-// 22.1.3.13 Array.prototype.keys()
-// 22.1.3.29 Array.prototype.values()
-// 22.1.3.30 Array.prototype[@@iterator]()
-module.exports = __webpack_require__(72)(Array, 'Array', function (iterated, kind) {
-  this._t = toIObject(iterated); // target
-  this._i = 0;                   // next index
-  this._k = kind;                // kind
-// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function () {
-  var O = this._t;
-  var kind = this._k;
-  var index = this._i++;
-  if (!O || index >= O.length) {
-    this._t = undefined;
-    return step(1);
-  }
-  if (kind == 'keys') return step(0, index);
-  if (kind == 'values') return step(0, O[index]);
-  return step(0, [index, O[index]]);
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
-
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries');
-
-
-/***/ }),
-/* 183 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var strong = __webpack_require__(158);
-var validate = __webpack_require__(118);
-var MAP = 'Map';
-
-// 23.1 Map Objects
-module.exports = __webpack_require__(159)(MAP, function (get) {
-  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
-}, {
-  // 23.1.3.6 Map.prototype.get(key)
-  get: function get(key) {
-    var entry = strong.getEntry(validate(this, MAP), key);
-    return entry && entry.v;
-  },
-  // 23.1.3.9 Map.prototype.set(key, value)
-  set: function set(key, value) {
-    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
-  }
-}, strong, true);
-
-
-/***/ }),
-/* 184 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var LIBRARY = __webpack_require__(56);
-var global = __webpack_require__(6);
-var ctx = __webpack_require__(37);
-var classof = __webpack_require__(67);
-var $export = __webpack_require__(10);
-var isObject = __webpack_require__(14);
-var aFunction = __webpack_require__(54);
-var anInstance = __webpack_require__(66);
-var forOf = __webpack_require__(71);
-var speciesConstructor = __webpack_require__(175);
-var task = __webpack_require__(116).set;
-var microtask = __webpack_require__(168)();
-var newPromiseCapabilityModule = __webpack_require__(109);
-var perform = __webpack_require__(172);
-var promiseResolve = __webpack_require__(173);
-var PROMISE = 'Promise';
-var TypeError = global.TypeError;
-var process = global.process;
-var $Promise = global[PROMISE];
-var isNode = classof(process) == 'process';
-var empty = function () { /* empty */ };
-var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
-var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
-
-var USE_NATIVE = !!function () {
-  try {
-    // correct subclassing with @@species support
-    var promise = $Promise.resolve(1);
-    var FakePromise = (promise.constructor = {})[__webpack_require__(4)('species')] = function (exec) {
-      exec(empty, empty);
-    };
-    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
-    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
-  } catch (e) { /* empty */ }
-}();
-
-// helpers
-var isThenable = function (it) {
-  var then;
-  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-};
-var notify = function (promise, isReject) {
-  if (promise._n) return;
-  promise._n = true;
-  var chain = promise._c;
-  microtask(function () {
-    var value = promise._v;
-    var ok = promise._s == 1;
-    var i = 0;
-    var run = function (reaction) {
-      var handler = ok ? reaction.ok : reaction.fail;
-      var resolve = reaction.resolve;
-      var reject = reaction.reject;
-      var domain = reaction.domain;
-      var result, then;
-      try {
-        if (handler) {
-          if (!ok) {
-            if (promise._h == 2) onHandleUnhandled(promise);
-            promise._h = 1;
-          }
-          if (handler === true) result = value;
-          else {
-            if (domain) domain.enter();
-            result = handler(value);
-            if (domain) domain.exit();
-          }
-          if (result === reaction.promise) {
-            reject(TypeError('Promise-chain cycle'));
-          } else if (then = isThenable(result)) {
-            then.call(result, resolve, reject);
-          } else resolve(result);
-        } else reject(value);
-      } catch (e) {
-        reject(e);
-      }
-    };
-    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
-    promise._c = [];
-    promise._n = false;
-    if (isReject && !promise._h) onUnhandled(promise);
-  });
-};
-var onUnhandled = function (promise) {
-  task.call(global, function () {
-    var value = promise._v;
-    var unhandled = isUnhandled(promise);
-    var result, handler, console;
-    if (unhandled) {
-      result = perform(function () {
-        if (isNode) {
-          process.emit('unhandledRejection', value, promise);
-        } else if (handler = global.onunhandledrejection) {
-          handler({ promise: promise, reason: value });
-        } else if ((console = global.console) && console.error) {
-          console.error('Unhandled promise rejection', value);
-        }
-      });
-      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
-      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
-    } promise._a = undefined;
-    if (unhandled && result.e) throw result.v;
-  });
-};
-var isUnhandled = function (promise) {
-  return promise._h !== 1 && (promise._a || promise._c).length === 0;
-};
-var onHandleUnhandled = function (promise) {
-  task.call(global, function () {
-    var handler;
-    if (isNode) {
-      process.emit('rejectionHandled', promise);
-    } else if (handler = global.onrejectionhandled) {
-      handler({ promise: promise, reason: promise._v });
-    }
-  });
-};
-var $reject = function (value) {
-  var promise = this;
-  if (promise._d) return;
-  promise._d = true;
-  promise = promise._w || promise; // unwrap
-  promise._v = value;
-  promise._s = 2;
-  if (!promise._a) promise._a = promise._c.slice();
-  notify(promise, true);
-};
-var $resolve = function (value) {
-  var promise = this;
-  var then;
-  if (promise._d) return;
-  promise._d = true;
-  promise = promise._w || promise; // unwrap
-  try {
-    if (promise === value) throw TypeError("Promise can't be resolved itself");
-    if (then = isThenable(value)) {
-      microtask(function () {
-        var wrapper = { _w: promise, _d: false }; // wrap
-        try {
-          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
-        } catch (e) {
-          $reject.call(wrapper, e);
-        }
-      });
-    } else {
-      promise._v = value;
-      promise._s = 1;
-      notify(promise, false);
-    }
-  } catch (e) {
-    $reject.call({ _w: promise, _d: false }, e); // wrap
-  }
-};
-
-// constructor polyfill
-if (!USE_NATIVE) {
-  // 25.4.3.1 Promise(executor)
-  $Promise = function Promise(executor) {
-    anInstance(this, $Promise, PROMISE, '_h');
-    aFunction(executor);
-    Internal.call(this);
-    try {
-      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
-    } catch (err) {
-      $reject.call(this, err);
-    }
-  };
-  // eslint-disable-next-line no-unused-vars
-  Internal = function Promise(executor) {
-    this._c = [];             // <- awaiting reactions
-    this._a = undefined;      // <- checked in isUnhandled reactions
-    this._s = 0;              // <- state
-    this._d = false;          // <- done
-    this._v = undefined;      // <- value
-    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
-    this._n = false;          // <- notify
-  };
-  Internal.prototype = __webpack_require__(76)($Promise.prototype, {
-    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
-    then: function then(onFulfilled, onRejected) {
-      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
-      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
-      reaction.fail = typeof onRejected == 'function' && onRejected;
-      reaction.domain = isNode ? process.domain : undefined;
-      this._c.push(reaction);
-      if (this._a) this._a.push(reaction);
-      if (this._s) notify(this, false);
-      return reaction.promise;
-    },
-    // 25.4.5.1 Promise.prototype.catch(onRejected)
-    'catch': function (onRejected) {
-      return this.then(undefined, onRejected);
-    }
-  });
-  OwnPromiseCapability = function () {
-    var promise = new Internal();
-    this.promise = promise;
-    this.resolve = ctx($resolve, promise, 1);
-    this.reject = ctx($reject, promise, 1);
-  };
-  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
-    return C === $Promise || C === Wrapper
-      ? new OwnPromiseCapability(C)
-      : newGenericPromiseCapability(C);
-  };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
-__webpack_require__(44)($Promise, PROMISE);
-__webpack_require__(114)(PROMISE);
-Wrapper = __webpack_require__(20)[PROMISE];
-
-// statics
-$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
-  // 25.4.4.5 Promise.reject(r)
-  reject: function reject(r) {
-    var capability = newPromiseCapability(this);
-    var $$reject = capability.reject;
-    $$reject(r);
-    return capability.promise;
-  }
-});
-$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
-  // 25.4.4.6 Promise.resolve(x)
-  resolve: function resolve(x) {
-    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
-  }
-});
-$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(107)(function (iter) {
-  $Promise.all(iter)['catch'](empty);
-})), PROMISE, {
-  // 25.4.4.1 Promise.all(iterable)
-  all: function all(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var resolve = capability.resolve;
-    var reject = capability.reject;
-    var result = perform(function () {
-      var values = [];
-      var index = 0;
-      var remaining = 1;
-      forOf(iterable, false, function (promise) {
-        var $index = index++;
-        var alreadyCalled = false;
-        values.push(undefined);
-        remaining++;
-        C.resolve(promise).then(function (value) {
-          if (alreadyCalled) return;
-          alreadyCalled = true;
-          values[$index] = value;
-          --remaining || resolve(values);
-        }, reject);
-      });
-      --remaining || resolve(values);
-    });
-    if (result.e) reject(result.v);
-    return capability.promise;
-  },
-  // 25.4.4.4 Promise.race(iterable)
-  race: function race(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var reject = capability.reject;
-    var result = perform(function () {
-      forOf(iterable, false, function (promise) {
-        C.resolve(promise).then(capability.resolve, reject);
-      });
-    });
-    if (result.e) reject(result.v);
-    return capability.promise;
-  }
-});
-
-
-/***/ }),
-/* 185 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// @@match logic
-__webpack_require__(55)('match', 1, function (defined, MATCH, $match) {
-  // 21.1.3.11 String.prototype.match(regexp)
-  return [function match(regexp) {
-    'use strict';
-    var O = defined(this);
-    var fn = regexp == undefined ? undefined : regexp[MATCH];
-    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
-  }, $match];
-});
-
-
-/***/ }),
-/* 186 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// @@replace logic
-__webpack_require__(55)('replace', 2, function (defined, REPLACE, $replace) {
-  // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
-  return [function replace(searchValue, replaceValue) {
-    'use strict';
-    var O = defined(this);
-    var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
-    return fn !== undefined
-      ? fn.call(searchValue, O, replaceValue)
-      : $replace.call(String(O), searchValue, replaceValue);
-  }, $replace];
-});
-
-
-/***/ }),
-/* 187 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// @@search logic
-__webpack_require__(55)('search', 1, function (defined, SEARCH, $search) {
-  // 21.1.3.15 String.prototype.search(regexp)
-  return [function search(regexp) {
-    'use strict';
-    var O = defined(this);
-    var fn = regexp == undefined ? undefined : regexp[SEARCH];
-    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
-  }, $search];
-});
-
-
-/***/ }),
-/* 188 */
-/***/ (function(module, exports, __webpack_require__) {
-
-// @@split logic
-__webpack_require__(55)('split', 2, function (defined, SPLIT, $split) {
-  'use strict';
-  var isRegExp = __webpack_require__(106);
-  var _split = $split;
-  var $push = [].push;
-  var $SPLIT = 'split';
-  var LENGTH = 'length';
-  var LAST_INDEX = 'lastIndex';
-  if (
-    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
-    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
-    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
-    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
-    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
-    ''[$SPLIT](/.?/)[LENGTH]
-  ) {
-    var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
-    // based on es5-shim implementation, need to rework it
-    $split = function (separator, limit) {
-      var string = String(this);
-      if (separator === undefined && limit === 0) return [];
-      // If `separator` is not a regex, use native split
-      if (!isRegExp(separator)) return _split.call(string, separator, limit);
-      var output = [];
-      var flags = (separator.ignoreCase ? 'i' : '') +
-                  (separator.multiline ? 'm' : '') +
-                  (separator.unicode ? 'u' : '') +
-                  (separator.sticky ? 'y' : '');
-      var lastLastIndex = 0;
-      var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
-      // Make `global` and avoid `lastIndex` issues by working with a copy
-      var separatorCopy = new RegExp(separator.source, flags + 'g');
-      var separator2, match, lastIndex, lastLength, i;
-      // Doesn't need flags gy, but they don't hurt
-      if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
-      while (match = separatorCopy.exec(string)) {
-        // `separatorCopy.lastIndex` is not reliable cross-browser
-        lastIndex = match.index + match[0][LENGTH];
-        if (lastIndex > lastLastIndex) {
-          output.push(string.slice(lastLastIndex, match.index));
-          // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
-          // eslint-disable-next-line no-loop-func
-          if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {
-            for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;
-          });
-          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
-          lastLength = match[0][LENGTH];
-          lastLastIndex = lastIndex;
-          if (output[LENGTH] >= splitLimit) break;
-        }
-        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
-      }
-      if (lastLastIndex === string[LENGTH]) {
-        if (lastLength || !separatorCopy.test('')) output.push('');
-      } else output.push(string.slice(lastLastIndex));
-      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
-    };
-  // Chakra, V8
-  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
-    $split = function (separator, limit) {
-      return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
-    };
-  }
-  // 21.1.3.17 String.prototype.split(separator, limit)
-  return [function split(separator, limit) {
-    var O = defined(this);
-    var fn = separator == undefined ? undefined : separator[SPLIT];
-    return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
-  }, $split];
-});
-
-
-/***/ }),
-/* 189 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.2 String.prototype.anchor(name)
-__webpack_require__(11)('anchor', function (createHTML) {
-  return function anchor(name) {
-    return createHTML(this, 'a', 'name', name);
-  };
-});
-
-
-/***/ }),
-/* 190 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.3 String.prototype.big()
-__webpack_require__(11)('big', function (createHTML) {
-  return function big() {
-    return createHTML(this, 'big', '', '');
-  };
-});
-
-
-/***/ }),
-/* 191 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.4 String.prototype.blink()
-__webpack_require__(11)('blink', function (createHTML) {
-  return function blink() {
-    return createHTML(this, 'blink', '', '');
-  };
-});
-
-
-/***/ }),
-/* 192 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.5 String.prototype.bold()
-__webpack_require__(11)('bold', function (createHTML) {
-  return function bold() {
-    return createHTML(this, 'b', '', '');
-  };
-});
-
-
-/***/ }),
-/* 193 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var $export = __webpack_require__(10);
-var $at = __webpack_require__(115)(false);
-$export($export.P, 'String', {
-  // 21.1.3.3 String.prototype.codePointAt(pos)
-  codePointAt: function codePointAt(pos) {
-    return $at(this, pos);
-  }
-});
-
-
-/***/ }),
-/* 194 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-
-var $export = __webpack_require__(10);
-var toLength = __webpack_require__(45);
-var context = __webpack_require__(79);
-var ENDS_WITH = 'endsWith';
-var $endsWith = ''[ENDS_WITH];
-
-$export($export.P + $export.F * __webpack_require__(70)(ENDS_WITH), 'String', {
-  endsWith: function endsWith(searchString /* , endPosition = @length */) {
-    var that = context(this, searchString, ENDS_WITH);
-    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
-    var len = toLength(that.length);
-    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
-    var search = String(searchString);
-    return $endsWith
-      ? $endsWith.call(that, search, end)
-      : that.slice(end - search.length, end) === search;
-  }
-});
-
-
-/***/ }),
-/* 195 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.6 String.prototype.fixed()
-__webpack_require__(11)('fixed', function (createHTML) {
-  return function fixed() {
-    return createHTML(this, 'tt', '', '');
-  };
-});
-
-
-/***/ }),
-/* 196 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.7 String.prototype.fontcolor(color)
-__webpack_require__(11)('fontcolor', function (createHTML) {
-  return function fontcolor(color) {
-    return createHTML(this, 'font', 'color', color);
-  };
-});
-
-
-/***/ }),
-/* 197 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.8 String.prototype.fontsize(size)
-__webpack_require__(11)('fontsize', function (createHTML) {
-  return function fontsize(size) {
-    return createHTML(this, 'font', 'size', size);
-  };
-});
-
-
-/***/ }),
-/* 198 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(10);
-var toAbsoluteIndex = __webpack_require__(117);
-var fromCharCode = String.fromCharCode;
-var $fromCodePoint = String.fromCodePoint;
-
-// length should be 1, old FF problem
-$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
-  // 21.1.2.2 String.fromCodePoint(...codePoints)
-  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
-    var res = [];
-    var aLen = arguments.length;
-    var i = 0;
-    var code;
-    while (aLen > i) {
-      code = +arguments[i++];
-      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
-      res.push(code < 0x10000
-        ? fromCharCode(code)
-        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
-      );
-    } return res.join('');
-  }
-});
-
-
-/***/ }),
-/* 199 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-// 21.1.3.7 String.prototype.includes(searchString, position = 0)
-
-var $export = __webpack_require__(10);
-var context = __webpack_require__(79);
-var INCLUDES = 'includes';
-
-$export($export.P + $export.F * __webpack_require__(70)(INCLUDES), 'String', {
-  includes: function includes(searchString /* , position = 0 */) {
-    return !!~context(this, searchString, INCLUDES)
-      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-
-/***/ }),
-/* 200 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.9 String.prototype.italics()
-__webpack_require__(11)('italics', function (createHTML) {
-  return function italics() {
-    return createHTML(this, 'i', '', '');
-  };
-});
-
-
-/***/ }),
-/* 201 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.10 String.prototype.link(url)
-__webpack_require__(11)('link', function (createHTML) {
-  return function link(url) {
-    return createHTML(this, 'a', 'href', url);
-  };
-});
-
-
-/***/ }),
-/* 202 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(10);
-var toIObject = __webpack_require__(33);
-var toLength = __webpack_require__(45);
-
-$export($export.S, 'String', {
-  // 21.1.2.4 String.raw(callSite, ...substitutions)
-  raw: function raw(callSite) {
-    var tpl = toIObject(callSite.raw);
-    var len = toLength(tpl.length);
-    var aLen = arguments.length;
-    var res = [];
-    var i = 0;
-    while (len > i) {
-      res.push(String(tpl[i++]));
-      if (i < aLen) res.push(String(arguments[i]));
-    } return res.join('');
-  }
-});
-
-
-/***/ }),
-/* 203 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__(10);
-
-$export($export.P, 'String', {
-  // 21.1.3.13 String.prototype.repeat(count)
-  repeat: __webpack_require__(176)
-});
-
-
-/***/ }),
-/* 204 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.11 String.prototype.small()
-__webpack_require__(11)('small', function (createHTML) {
-  return function small() {
-    return createHTML(this, 'small', '', '');
-  };
-});
-
-
-/***/ }),
-/* 205 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-
-var $export = __webpack_require__(10);
-var toLength = __webpack_require__(45);
-var context = __webpack_require__(79);
-var STARTS_WITH = 'startsWith';
-var $startsWith = ''[STARTS_WITH];
-
-$export($export.P + $export.F * __webpack_require__(70)(STARTS_WITH), 'String', {
-  startsWith: function startsWith(searchString /* , position = 0 */) {
-    var that = context(this, searchString, STARTS_WITH);
-    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
-    var search = String(searchString);
-    return $startsWith
-      ? $startsWith.call(that, search, index)
-      : that.slice(index, index + search.length) === search;
-  }
-});
-
-
-/***/ }),
-/* 206 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.12 String.prototype.strike()
-__webpack_require__(11)('strike', function (createHTML) {
-  return function strike() {
-    return createHTML(this, 'strike', '', '');
-  };
-});
-
-
-/***/ }),
-/* 207 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.13 String.prototype.sub()
-__webpack_require__(11)('sub', function (createHTML) {
-  return function sub() {
-    return createHTML(this, 'sub', '', '');
-  };
-});
-
-
-/***/ }),
-/* 208 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// B.2.3.14 String.prototype.sup()
-__webpack_require__(11)('sup', function (createHTML) {
-  return function sup() {
-    return createHTML(this, 'sup', '', '');
-  };
-});
-
-
-/***/ }),
-/* 209 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// 21.1.3.25 String.prototype.trim()
-__webpack_require__(177)('trim', function ($trim) {
-  return function trim() {
-    return $trim(this, 3);
-  };
-});
-
-
-/***/ }),
-/* 210 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// ECMAScript 6 symbols shim
-var global = __webpack_require__(6);
-var has = __webpack_require__(25);
-var DESCRIPTORS = __webpack_require__(23);
-var $export = __webpack_require__(10);
-var redefine = __webpack_require__(28);
-var META = __webpack_require__(73).KEY;
-var $fails = __webpack_require__(24);
-var shared = __webpack_require__(78);
-var setToStringTag = __webpack_require__(44);
-var uid = __webpack_require__(46);
-var wks = __webpack_require__(4);
-var wksExt = __webpack_require__(119);
-var wksDefine = __webpack_require__(180);
-var enumKeys = __webpack_require__(160);
-var isArray = __webpack_require__(165);
-var anObject = __webpack_require__(19);
-var isObject = __webpack_require__(14);
-var toIObject = __webpack_require__(33);
-var toPrimitive = __webpack_require__(80);
-var createDesc = __webpack_require__(58);
-var _create = __webpack_require__(74);
-var gOPNExt = __webpack_require__(170);
-var $GOPD = __webpack_require__(110);
-var $DP = __webpack_require__(27);
-var $keys = __webpack_require__(57);
-var gOPD = $GOPD.f;
-var dP = $DP.f;
-var gOPN = gOPNExt.f;
-var $Symbol = global.Symbol;
-var $JSON = global.JSON;
-var _stringify = $JSON && $JSON.stringify;
-var PROTOTYPE = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
-var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
-var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
-var ObjectProto = Object[PROTOTYPE];
-var USE_NATIVE = typeof $Symbol == 'function';
-var QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function () {
-  return _create(dP({}, 'a', {
-    get: function () { return dP(this, 'a', { value: 7 }).a; }
-  })).a != 7;
-}) ? function (it, key, D) {
-  var protoDesc = gOPD(ObjectProto, key);
-  if (protoDesc) delete ObjectProto[key];
-  dP(it, key, D);
-  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function (tag) {
-  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
-  sym._k = tag;
-  return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
-  return typeof it == 'symbol';
-} : function (it) {
-  return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D) {
-  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
-  anObject(it);
-  key = toPrimitive(key, true);
-  anObject(D);
-  if (has(AllSymbols, key)) {
-    if (!D.enumerable) {
-      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
-      it[HIDDEN][key] = true;
-    } else {
-      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
-      D = _create(D, { enumerable: createDesc(0, false) });
-    } return setSymbolDesc(it, key, D);
-  } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P) {
-  anObject(it);
-  var keys = enumKeys(P = toIObject(P));
-  var i = 0;
-  var l = keys.length;
-  var key;
-  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
-  return it;
-};
-var $create = function create(it, P) {
-  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key) {
-  var E = isEnum.call(this, key = toPrimitive(key, true));
-  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
-  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
-  it = toIObject(it);
-  key = toPrimitive(key, true);
-  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
-  var D = gOPD(it, key);
-  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
-  return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it) {
-  var names = gOPN(toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
-  } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
-  var IS_OP = it === ObjectProto;
-  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
-  } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if (!USE_NATIVE) {
-  $Symbol = function Symbol() {
-    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
-    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
-    var $set = function (value) {
-      if (this === ObjectProto) $set.call(OPSymbols, value);
-      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
-      setSymbolDesc(this, tag, createDesc(1, value));
-    };
-    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
-    return wrap(tag);
-  };
-  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
-    return this._k;
-  });
-
-  $GOPD.f = $getOwnPropertyDescriptor;
-  $DP.f = $defineProperty;
-  __webpack_require__(111).f = gOPNExt.f = $getOwnPropertyNames;
-  __webpack_require__(75).f = $propertyIsEnumerable;
-  __webpack_require__(112).f = $getOwnPropertySymbols;
-
-  if (DESCRIPTORS && !__webpack_require__(56)) {
-    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-  }
-
-  wksExt.f = function (name) {
-    return wrap(wks(name));
-  };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
-
-for (var es6Symbols = (
-  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
-  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
-
-for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
-  // 19.4.2.1 Symbol.for(key)
-  'for': function (key) {
-    return has(SymbolRegistry, key += '')
-      ? SymbolRegistry[key]
-      : SymbolRegistry[key] = $Symbol(key);
-  },
-  // 19.4.2.5 Symbol.keyFor(sym)
-  keyFor: function keyFor(sym) {
-    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
-    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
-  },
-  useSetter: function () { setter = true; },
-  useSimple: function () { setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
-  // 19.1.2.2 Object.create(O [, Properties])
-  create: $create,
-  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-  defineProperty: $defineProperty,
-  // 19.1.2.3 Object.defineProperties(O, Properties)
-  defineProperties: $defineProperties,
-  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-  // 19.1.2.7 Object.getOwnPropertyNames(O)
-  getOwnPropertyNames: $getOwnPropertyNames,
-  // 19.1.2.8 Object.getOwnPropertySymbols(O)
-  getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
-  var S = $Symbol();
-  // MS Edge converts symbol values to JSON as {}
-  // WebKit converts symbol values to JSON as null
-  // V8 throws on boxed symbols
-  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
-  stringify: function stringify(it) {
-    var args = [it];
-    var i = 1;
-    var replacer, $replacer;
-    while (arguments.length > i) args.push(arguments[i++]);
-    $replacer = replacer = args[1];
-    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-    if (!isArray(replacer)) replacer = function (key, value) {
-      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
-      if (!isSymbol(value)) return value;
-    };
-    args[1] = replacer;
-    return _stringify.apply($JSON, args);
-  }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(26)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true);
-
-
-/***/ }),
-/* 211 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var attrRE = /([\w-]+)|=|(['"])([.\s\S]*?)\2/g;
-var voidElements = __webpack_require__(306);
-
-module.exports = function (tag) {
-    var i = 0;
-    var key;
-    var expectingValueAfterEquals = true;
-    var res = {
-        type: 'tag',
-        name: '',
-        voidElement: false,
-        attrs: {},
-        children: []
-    };
-
-    tag.replace(attrRE, function (match) {
-        if (match === '=') {
-            expectingValueAfterEquals = true;
-            i++;
-            return;
-        }
-
-        if (!expectingValueAfterEquals) {
-            if (key) {
-                res.attrs[key] = key; // boolean attribute
-            }
-            key=match;
-        } else {
-            if (i === 0) {
-                if (voidElements[match] || tag.charAt(tag.length - 2) === '/') {
-                    res.voidElement = true;
-                }
-                res.name = match;
-            } else {
-                res.attrs[key] = match.replace(/^['"]|['"]$/g, '');
-                key=undefined;
-            }
-        }
-        i++;
-        expectingValueAfterEquals = false;
-    });
-
-    return res;
-};
-
-
-/***/ }),
-/* 212 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/*jshint -W030 */
-var tagRE = /(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g;
-var parseTag = __webpack_require__(211);
-// re-used obj for quick lookups of components
-var empty = Object.create ? Object.create(null) : {};
-// common logic for pushing a child node onto a list
-function pushTextNode(list, html, level, start, ignoreWhitespace) {
-    // calculate correct end of the content slice in case there's
-    // no tag after the text node.
-    var end = html.indexOf('<', start);
-    var content = html.slice(start, end === -1 ? undefined : end);
-    // if a node is nothing but whitespace, collapse it as the spec states:
-    // https://www.w3.org/TR/html4/struct/text.html#h-9.1
-    if (/^\s*$/.test(content)) {
-        content = ' ';
-    }
-    // don't add whitespace-only text nodes if they would be trailing text nodes
-    // or if they would be leading whitespace-only text nodes:
-    //  * end > -1 indicates this is not a trailing text node
-    //  * leading node is when level is -1 and list has length 0
-    if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {
-        list.push({
-            type: 'text',
-            content: content
-        });
-    }
-}
-
-module.exports = function parse(html, options) {
-    options || (options = {});
-    options.components || (options.components = empty);
-    var result = [];
-    var current;
-    var level = -1;
-    var arr = [];
-    var byTag = {};
-    var inComponent = false;
-
-    html.replace(tagRE, function (tag, index) {
-        if (inComponent) {
-            if (tag !== ('</' + current.name + '>')) {
-                return;
-            } else {
-                inComponent = false;
-            }
-        }
-
-        var isOpen = tag.charAt(1) !== '/';
-        var isComment = tag.indexOf('<!--') === 0;
-        var start = index + tag.length;
-        var nextChar = html.charAt(start);
-        var parent;
-
-        if (isOpen && !isComment) {
-            level++;
-
-            current = parseTag(tag);
-            if (current.type === 'tag' && options.components[current.name]) {
-                current.type = 'component';
-                inComponent = true;
-            }
-
-            if (!current.voidElement && !inComponent && nextChar && nextChar !== '<') {
-                pushTextNode(current.children, html, level, start, options.ignoreWhitespace);
-            }
-
-            byTag[current.tagName] = current;
-
-            // if we're at root, push new base node
-            if (level === 0) {
-                result.push(current);
-            }
-
-            parent = arr[level - 1];
-
-            if (parent) {
-                parent.children.push(current);
-            }
-
-            arr[level] = current;
-        }
-
-        if (isComment || !isOpen || current.voidElement) {
-            if (!isComment) {
-                level--;
-            }
-            if (!inComponent && nextChar !== '<' && nextChar) {
-                // trailing text node
-                // if we're at the root, push a base text node. otherwise add as
-                // a child to the current node.
-                parent = level === -1 ? result : arr[level].children;
-                pushTextNode(parent, html, level, start, options.ignoreWhitespace);
-            }
-        }
-    });
-
-    // If the "html" passed isn't actually html, add it as a text node.
-    if (!result.length && html.length) {
-        pushTextNode(result, html, 0, 0, options.ignoreWhitespace);
-    }
-
-    return result;
-};
-
-
-/***/ }),
-/* 213 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERRORS_MSGS = __webpack_require__(12);
-var METADATA_KEY = __webpack_require__(5);
-function injectable() {
-    return function (target) {
-        if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {
-            throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);
-        }
-        var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
-        Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);
-        return target;
-    };
-}
-exports.injectable = injectable;
-
-
-/***/ }),
-/* 214 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function multiInject(serviceIdentifier) {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);
-        if (typeof index === "number") {
-            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-        }
-        else {
-            decorator_utils_1.tagProperty(target, targetKey, metadata);
-        }
-    };
-}
-exports.multiInject = multiInject;
-
-
-/***/ }),
-/* 215 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function named(name) {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);
-        if (typeof index === "number") {
-            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-        }
-        else {
-            decorator_utils_1.tagProperty(target, targetKey, metadata);
-        }
-    };
-}
-exports.named = named;
-
-
-/***/ }),
-/* 216 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function optional() {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);
-        if (typeof index === "number") {
-            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-        }
-        else {
-            decorator_utils_1.tagProperty(target, targetKey, metadata);
-        }
-    };
-}
-exports.optional = optional;
-
-
-/***/ }),
-/* 217 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERRORS_MSGS = __webpack_require__(12);
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-function postConstruct() {
-    return function (target, propertyKey, descriptor) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);
-        if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {
-            throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);
-        }
-        Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);
-    };
-}
-exports.postConstruct = postConstruct;
-
-
-/***/ }),
-/* 218 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function tagged(metadataKey, metadataValue) {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(metadataKey, metadataValue);
-        if (typeof index === "number") {
-            decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-        }
-        else {
-            decorator_utils_1.tagProperty(target, targetKey, metadata);
-        }
-    };
-}
-exports.tagged = tagged;
-
-
-/***/ }),
-/* 219 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function targetName(name) {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);
-        decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-    };
-}
-exports.targetName = targetName;
-
-
-/***/ }),
-/* 220 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var METADATA_KEY = __webpack_require__(5);
-var metadata_1 = __webpack_require__(16);
-var decorator_utils_1 = __webpack_require__(29);
-function unmanaged() {
-    return function (target, targetKey, index) {
-        var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);
-        decorator_utils_1.tagParameter(target, targetKey, index, metadata);
-    };
-}
-exports.unmanaged = unmanaged;
-
-
-/***/ }),
-/* 221 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var literal_types_1 = __webpack_require__(21);
-var guid_1 = __webpack_require__(34);
-var Binding = (function () {
-    function Binding(serviceIdentifier, scope) {
-        this.guid = guid_1.guid();
-        this.activated = false;
-        this.serviceIdentifier = serviceIdentifier;
-        this.scope = scope;
-        this.type = literal_types_1.BindingTypeEnum.Invalid;
-        this.constraint = function (request) { return true; };
-        this.implementationType = null;
-        this.cache = null;
-        this.factory = null;
-        this.provider = null;
-        this.onActivation = null;
-        this.dynamicValue = null;
-    }
-    Binding.prototype.clone = function () {
-        var clone = new Binding(this.serviceIdentifier, this.scope);
-        clone.activated = false;
-        clone.implementationType = this.implementationType;
-        clone.dynamicValue = this.dynamicValue;
-        clone.scope = this.scope;
-        clone.type = this.type;
-        clone.factory = this.factory;
-        clone.provider = this.provider;
-        clone.constraint = this.constraint;
-        clone.onActivation = this.onActivation;
-        clone.cache = this.cache;
-        return clone;
-    };
-    return Binding;
-}());
-exports.Binding = Binding;
-
-
-/***/ }),
-/* 222 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var BindingCount = {
-    MultipleBindingsAvailable: 2,
-    NoBindingsAvailable: 0,
-    OnlyOneBindingAvailable: 1
-};
-exports.BindingCount = BindingCount;
-
-
-/***/ }),
-/* 223 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_1 = __webpack_require__(221);
-var ERROR_MSGS = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var METADATA_KEY = __webpack_require__(5);
-var metadata_reader_1 = __webpack_require__(123);
-var planner_1 = __webpack_require__(229);
-var resolver_1 = __webpack_require__(234);
-var binding_to_syntax_1 = __webpack_require__(237);
-var guid_1 = __webpack_require__(34);
-var serialization_1 = __webpack_require__(47);
-var container_snapshot_1 = __webpack_require__(225);
-var lookup_1 = __webpack_require__(226);
-var Container = (function () {
-    function Container(containerOptions) {
-        if (containerOptions !== undefined) {
-            if (typeof containerOptions !== "object") {
-                throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);
-            }
-            else {
-                if (containerOptions.defaultScope !== undefined &&
-                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Singleton &&
-                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Transient &&
-                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Request) {
-                    throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);
-                }
-                if (containerOptions.autoBindInjectable !== undefined &&
-                    typeof containerOptions.autoBindInjectable !== "boolean") {
-                    throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);
-                }
-            }
-            this.options = {
-                autoBindInjectable: containerOptions.autoBindInjectable,
-                defaultScope: containerOptions.defaultScope
-            };
-        }
-        else {
-            this.options = {
-                autoBindInjectable: false,
-                defaultScope: literal_types_1.BindingScopeEnum.Transient
-            };
-        }
-        this.guid = guid_1.guid();
-        this._bindingDictionary = new lookup_1.Lookup();
-        this._snapshots = [];
-        this._middleware = null;
-        this.parent = null;
-        this._metadataReader = new metadata_reader_1.MetadataReader();
-    }
-    Container.merge = function (container1, container2) {
-        var container = new Container();
-        var bindingDictionary = planner_1.getBindingDictionary(container);
-        var bindingDictionary1 = planner_1.getBindingDictionary(container1);
-        var bindingDictionary2 = planner_1.getBindingDictionary(container2);
-        function copyDictionary(origin, destination) {
-            origin.traverse(function (key, value) {
-                value.forEach(function (binding) {
-                    destination.add(binding.serviceIdentifier, binding.clone());
-                });
-            });
-        }
-        copyDictionary(bindingDictionary1, bindingDictionary);
-        copyDictionary(bindingDictionary2, bindingDictionary);
-        return container;
-    };
-    Container.prototype.load = function () {
-        var _this = this;
-        var modules = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            modules[_i] = arguments[_i];
-        }
-        var setModuleId = function (bindingToSyntax, moduleId) {
-            bindingToSyntax._binding.moduleId = moduleId;
-        };
-        var getBindFunction = function (moduleId) {
-            return function (serviceIdentifier) {
-                var bindingToSyntax = _this.bind.call(_this, serviceIdentifier);
-                setModuleId(bindingToSyntax, moduleId);
-                return bindingToSyntax;
-            };
-        };
-        var getUnbindFunction = function (moduleId) {
-            return function (serviceIdentifier) {
-                var _unbind = _this.unbind.bind(_this);
-                _unbind(serviceIdentifier);
-            };
-        };
-        var getIsboundFunction = function (moduleId) {
-            return function (serviceIdentifier) {
-                var _isBound = _this.isBound.bind(_this);
-                return _isBound(serviceIdentifier);
-            };
-        };
-        var getRebindFunction = function (moduleId) {
-            return function (serviceIdentifier) {
-                var bindingToSyntax = _this.rebind.call(_this, serviceIdentifier);
-                setModuleId(bindingToSyntax, moduleId);
-                return bindingToSyntax;
-            };
-        };
-        modules.forEach(function (module) {
-            var bindFunction = getBindFunction(module.guid);
-            var unbindFunction = getUnbindFunction(module.guid);
-            var isboundFunction = getIsboundFunction(module.guid);
-            var rebindFunction = getRebindFunction(module.guid);
-            module.registry(bindFunction, unbindFunction, isboundFunction, rebindFunction);
-        });
-    };
-    Container.prototype.unload = function () {
-        var _this = this;
-        var modules = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            modules[_i] = arguments[_i];
-        }
-        var conditionFactory = function (expected) { return function (item) {
-            return item.moduleId === expected;
-        }; };
-        modules.forEach(function (module) {
-            var condition = conditionFactory(module.guid);
-            _this._bindingDictionary.removeByCondition(condition);
-        });
-    };
-    Container.prototype.bind = function (serviceIdentifier) {
-        var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;
-        var binding = new binding_1.Binding(serviceIdentifier, scope);
-        this._bindingDictionary.add(serviceIdentifier, binding);
-        return new binding_to_syntax_1.BindingToSyntax(binding);
-    };
-    Container.prototype.rebind = function (serviceIdentifier) {
-        this.unbind(serviceIdentifier);
-        return this.bind(serviceIdentifier);
-    };
-    Container.prototype.unbind = function (serviceIdentifier) {
-        try {
-            this._bindingDictionary.remove(serviceIdentifier);
-        }
-        catch (e) {
-            throw new Error(ERROR_MSGS.CANNOT_UNBIND + " " + serialization_1.getServiceIdentifierAsString(serviceIdentifier));
-        }
-    };
-    Container.prototype.unbindAll = function () {
-        this._bindingDictionary = new lookup_1.Lookup();
-    };
-    Container.prototype.isBound = function (serviceIdentifier) {
-        var bound = this._bindingDictionary.hasKey(serviceIdentifier);
-        if (!bound && this.parent) {
-            bound = this.parent.isBound(serviceIdentifier);
-        }
-        return bound;
-    };
-    Container.prototype.isBoundNamed = function (serviceIdentifier, named) {
-        return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
-    };
-    Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {
-        var bound = false;
-        if (this._bindingDictionary.hasKey(serviceIdentifier)) {
-            var bindings = this._bindingDictionary.get(serviceIdentifier);
-            var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);
-            bound = bindings.some(function (b) { return b.constraint(request_1); });
-        }
-        if (!bound && this.parent) {
-            bound = this.parent.isBoundTagged(serviceIdentifier, key, value);
-        }
-        return bound;
-    };
-    Container.prototype.snapshot = function () {
-        this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));
-    };
-    Container.prototype.restore = function () {
-        var snapshot = this._snapshots.pop();
-        if (snapshot === undefined) {
-            throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);
-        }
-        this._bindingDictionary = snapshot.bindings;
-        this._middleware = snapshot.middleware;
-    };
-    Container.prototype.createChild = function () {
-        var child = new Container();
-        child.parent = this;
-        return child;
-    };
-    Container.prototype.applyMiddleware = function () {
-        var middlewares = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            middlewares[_i] = arguments[_i];
-        }
-        var initial = (this._middleware) ? this._middleware : this._planAndResolve();
-        this._middleware = middlewares.reduce(function (prev, curr) { return curr(prev); }, initial);
-    };
-    Container.prototype.applyCustomMetadataReader = function (metadataReader) {
-        this._metadataReader = metadataReader;
-    };
-    Container.prototype.get = function (serviceIdentifier) {
-        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
-    };
-    Container.prototype.getTagged = function (serviceIdentifier, key, value) {
-        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
-    };
-    Container.prototype.getNamed = function (serviceIdentifier, named) {
-        return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
-    };
-    Container.prototype.getAll = function (serviceIdentifier) {
-        return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
-    };
-    Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {
-        return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
-    };
-    Container.prototype.getAllNamed = function (serviceIdentifier, named) {
-        return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
-    };
-    Container.prototype.resolve = function (constructorFunction) {
-        var tempContainer = new Container();
-        tempContainer.bind(constructorFunction).toSelf();
-        tempContainer.parent = this;
-        return tempContainer.get(constructorFunction);
-    };
-    Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {
-        var result = null;
-        var defaultArgs = {
-            avoidConstraints: avoidConstraints,
-            contextInterceptor: function (context) { return context; },
-            isMultiInject: isMultiInject,
-            key: key,
-            serviceIdentifier: serviceIdentifier,
-            targetType: targetType,
-            value: value
-        };
-        if (this._middleware) {
-            result = this._middleware(defaultArgs);
-            if (result === undefined || result === null) {
-                throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);
-            }
-        }
-        else {
-            result = this._planAndResolve()(defaultArgs);
-        }
-        return result;
-    };
-    Container.prototype._planAndResolve = function () {
-        var _this = this;
-        return function (args) {
-            var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);
-            context = args.contextInterceptor(context);
-            var result = resolver_1.resolve(context);
-            return result;
-        };
-    };
-    return Container;
-}());
-exports.Container = Container;
-
-
-/***/ }),
-/* 224 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var guid_1 = __webpack_require__(34);
-var ContainerModule = (function () {
-    function ContainerModule(registry) {
-        this.guid = guid_1.guid();
-        this.registry = registry;
-    }
-    return ContainerModule;
-}());
-exports.ContainerModule = ContainerModule;
-
-
-/***/ }),
-/* 225 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ContainerSnapshot = (function () {
-    function ContainerSnapshot() {
-    }
-    ContainerSnapshot.of = function (bindings, middleware) {
-        var snapshot = new ContainerSnapshot();
-        snapshot.bindings = bindings;
-        snapshot.middleware = middleware;
-        return snapshot;
-    };
-    return ContainerSnapshot;
-}());
-exports.ContainerSnapshot = ContainerSnapshot;
-
-
-/***/ }),
-/* 226 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-var Lookup = (function () {
-    function Lookup() {
-        this._map = new Map();
-    }
-    Lookup.prototype.getMap = function () {
-        return this._map;
-    };
-    Lookup.prototype.add = function (serviceIdentifier, value) {
-        if (serviceIdentifier === null || serviceIdentifier === undefined) {
-            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
-        }
-        if (value === null || value === undefined) {
-            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
-        }
-        var entry = this._map.get(serviceIdentifier);
-        if (entry !== undefined) {
-            entry.push(value);
-            this._map.set(serviceIdentifier, entry);
-        }
-        else {
-            this._map.set(serviceIdentifier, [value]);
-        }
-    };
-    Lookup.prototype.get = function (serviceIdentifier) {
-        if (serviceIdentifier === null || serviceIdentifier === undefined) {
-            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
-        }
-        var entry = this._map.get(serviceIdentifier);
-        if (entry !== undefined) {
-            return entry;
-        }
-        else {
-            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
-        }
-    };
-    Lookup.prototype.remove = function (serviceIdentifier) {
-        if (serviceIdentifier === null || serviceIdentifier === undefined) {
-            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
-        }
-        if (!this._map.delete(serviceIdentifier)) {
-            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
-        }
-    };
-    Lookup.prototype.removeByCondition = function (condition) {
-        var _this = this;
-        this._map.forEach(function (entries, key) {
-            var updatedEntries = entries.filter(function (entry) { return !condition(entry); });
-            if (updatedEntries.length > 0) {
-                _this._map.set(key, updatedEntries);
-            }
-            else {
-                _this._map.delete(key);
-            }
-        });
-    };
-    Lookup.prototype.hasKey = function (serviceIdentifier) {
-        if (serviceIdentifier === null || serviceIdentifier === undefined) {
-            throw new Error(ERROR_MSGS.NULL_ARGUMENT);
-        }
-        return this._map.has(serviceIdentifier);
-    };
-    Lookup.prototype.clone = function () {
-        var copy = new Lookup();
-        this._map.forEach(function (value, key) {
-            value.forEach(function (b) { return copy.add(key, b.clone()); });
-        });
-        return copy;
-    };
-    Lookup.prototype.traverse = function (func) {
-        this._map.forEach(function (value, key) {
-            func(key, value);
-        });
-    };
-    return Lookup;
-}());
-exports.Lookup = Lookup;
-
-
-/***/ }),
-/* 227 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var guid_1 = __webpack_require__(34);
-var Context = (function () {
-    function Context(container) {
-        this.guid = guid_1.guid();
-        this.container = container;
-    }
-    Context.prototype.addPlan = function (plan) {
-        this.plan = plan;
-    };
-    Context.prototype.setCurrentRequest = function (currentRequest) {
-        this.currentRequest = currentRequest;
-    };
-    return Context;
-}());
-exports.Context = Context;
-
-
-/***/ }),
-/* 228 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var Plan = (function () {
-    function Plan(parentContext, rootRequest) {
-        this.parentContext = parentContext;
-        this.rootRequest = rootRequest;
-    }
-    return Plan;
-}());
-exports.Plan = Plan;
-
-
-/***/ }),
-/* 229 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_count_1 = __webpack_require__(222);
-var ERROR_MSGS = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var METADATA_KEY = __webpack_require__(5);
-var exceptions_1 = __webpack_require__(127);
-var serialization_1 = __webpack_require__(47);
-var context_1 = __webpack_require__(227);
-var metadata_1 = __webpack_require__(16);
-var plan_1 = __webpack_require__(228);
-var reflection_utils_1 = __webpack_require__(231);
-var request_1 = __webpack_require__(232);
-var target_1 = __webpack_require__(124);
-function getBindingDictionary(cntnr) {
-    return cntnr._bindingDictionary;
-}
-exports.getBindingDictionary = getBindingDictionary;
-function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
-    var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
-    var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);
-    var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);
-    if (key !== undefined) {
-        var tagMetadata = new metadata_1.Metadata(key, value);
-        target.metadata.push(tagMetadata);
-    }
-    return target;
-}
-function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
-    var bindings = getBindings(context.container, target.serviceIdentifier);
-    var activeBindings = [];
-    if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable &&
-        context.container.options.autoBindInjectable &&
-        typeof target.serviceIdentifier === "function" &&
-        metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
-        context.container.bind(target.serviceIdentifier).toSelf();
-        bindings = getBindings(context.container, target.serviceIdentifier);
-    }
-    if (!avoidConstraints) {
-        activeBindings = bindings.filter(function (binding) {
-            var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);
-            return binding.constraint(request);
-        });
-    }
-    else {
-        activeBindings = bindings;
-    }
-    _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
-    return activeBindings;
-}
-function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
-    switch (bindings.length) {
-        case binding_count_1.BindingCount.NoBindingsAvailable:
-            if (target.isOptional()) {
-                return bindings;
-            }
-            else {
-                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
-                var msg = ERROR_MSGS.NOT_REGISTERED;
-                msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);
-                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
-                throw new Error(msg);
-            }
-        case binding_count_1.BindingCount.OnlyOneBindingAvailable:
-            if (!target.isArray()) {
-                return bindings;
-            }
-        case binding_count_1.BindingCount.MultipleBindingsAvailable:
-        default:
-            if (!target.isArray()) {
-                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
-                var msg = ERROR_MSGS.AMBIGUOUS_MATCH + " " + serviceIdentifierString;
-                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
-                throw new Error(msg);
-            }
-            else {
-                return bindings;
-            }
-    }
-}
-function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {
-    var activeBindings;
-    var childRequest;
-    if (parentRequest === null) {
-        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);
-        childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);
-        var thePlan = new plan_1.Plan(context, childRequest);
-        context.addPlan(thePlan);
-    }
-    else {
-        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);
-        childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);
-    }
-    activeBindings.forEach(function (binding) {
-        var subChildRequest = null;
-        if (target.isArray()) {
-            subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
-        }
-        else {
-            if (binding.cache) {
-                return;
-            }
-            subChildRequest = childRequest;
-        }
-        if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
-            var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);
-            dependencies.forEach(function (dependency) {
-                _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);
-            });
-        }
-    });
-}
-function getBindings(container, serviceIdentifier) {
-    var bindings = [];
-    var bindingDictionary = getBindingDictionary(container);
-    if (bindingDictionary.hasKey(serviceIdentifier)) {
-        bindings = bindingDictionary.get(serviceIdentifier);
-    }
-    else if (container.parent !== null) {
-        bindings = getBindings(container.parent, serviceIdentifier);
-    }
-    return bindings;
-}
-function plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {
-    if (avoidConstraints === void 0) { avoidConstraints = false; }
-    var context = new context_1.Context(container);
-    var target = _createTarget(isMultiInject, targetType, serviceIdentifier, "", key, value);
-    try {
-        _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);
-        return context;
-    }
-    catch (error) {
-        if (exceptions_1.isStackOverflowExeption(error)) {
-            if (context.plan) {
-                serialization_1.circularDependencyToException(context.plan.rootRequest);
-            }
-        }
-        throw error;
-    }
-}
-exports.plan = plan;
-function createMockRequest(container, serviceIdentifier, key, value) {
-    var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, "", serviceIdentifier, new metadata_1.Metadata(key, value));
-    var context = new context_1.Context(container);
-    var request = new request_1.Request(serviceIdentifier, context, null, [], target);
-    return request;
-}
-exports.createMockRequest = createMockRequest;
-
-
-/***/ }),
-/* 230 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var QueryableString = (function () {
-    function QueryableString(str) {
-        this.str = str;
-    }
-    QueryableString.prototype.startsWith = function (searchString) {
-        return this.str.indexOf(searchString) === 0;
-    };
-    QueryableString.prototype.endsWith = function (searchString) {
-        var reverseString = "";
-        var reverseSearchString = searchString.split("").reverse().join("");
-        reverseString = this.str.split("").reverse().join("");
-        return this.startsWith.call({ str: reverseString }, reverseSearchString);
-    };
-    QueryableString.prototype.contains = function (searchString) {
-        return (this.str.indexOf(searchString) !== -1);
-    };
-    QueryableString.prototype.equals = function (compareString) {
-        return this.str === compareString;
-    };
-    QueryableString.prototype.value = function () {
-        return this.str;
-    };
-    return QueryableString;
-}());
-exports.QueryableString = QueryableString;
-
-
-/***/ }),
-/* 231 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var inject_1 = __webpack_require__(122);
-var ERROR_MSGS = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var METADATA_KEY = __webpack_require__(5);
-var serialization_1 = __webpack_require__(47);
-var target_1 = __webpack_require__(124);
-function getDependencies(metadataReader, func) {
-    var constructorName = serialization_1.getFunctionName(func);
-    var targets = getTargets(metadataReader, constructorName, func, false);
-    return targets;
-}
-exports.getDependencies = getDependencies;
-function getTargets(metadataReader, constructorName, func, isBaseClass) {
-    var metadata = metadataReader.getConstructorMetadata(func);
-    var serviceIdentifiers = metadata.compilerGeneratedMetadata;
-    if (serviceIdentifiers === undefined) {
-        var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + " " + constructorName + ".";
-        throw new Error(msg);
-    }
-    var constructorArgsMetadata = metadata.userGeneratedMetadata;
-    var keys = Object.keys(constructorArgsMetadata);
-    var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);
-    var iterations = (hasUserDeclaredUnknownInjections) ? keys.length : func.length;
-    var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
-    var propertyTargets = getClassPropsAsTargets(metadataReader, func);
-    var targets = constructorTargets.concat(propertyTargets);
-    var baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, func);
-    if (targets.length < baseClassDependencyCount) {
-        var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_1 +
-            constructorName + ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_2;
-        throw new Error(error);
-    }
-    return targets;
-}
-function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
-    var targetMetadata = constructorArgsMetadata[index.toString()] || [];
-    var metadata = formatTargetMetadata(targetMetadata);
-    var isManaged = metadata.unmanaged !== true;
-    var serviceIdentifier = serviceIdentifiers[index];
-    var injectIdentifier = (metadata.inject || metadata.multiInject);
-    serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;
-    if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {
-        serviceIdentifier = serviceIdentifier.unwrap();
-    }
-    if (isManaged) {
-        var isObject = serviceIdentifier === Object;
-        var isFunction = serviceIdentifier === Function;
-        var isUndefined = serviceIdentifier === undefined;
-        var isUnknownType = (isObject || isFunction || isUndefined);
-        if (!isBaseClass && isUnknownType) {
-            var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + " argument " + index + " in class " + constructorName + ".";
-            throw new Error(msg);
-        }
-        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
-        target.metadata = targetMetadata;
-        return target;
-    }
-    return null;
-}
-function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
-    var targets = [];
-    for (var i = 0; i < iterations; i++) {
-        var index = i;
-        var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);
-        if (target !== null) {
-            targets.push(target);
-        }
-    }
-    return targets;
-}
-function getClassPropsAsTargets(metadataReader, constructorFunc) {
-    var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
-    var targets = [];
-    var keys = Object.keys(classPropsMetadata);
-    for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
-        var key = keys_1[_i];
-        var targetMetadata = classPropsMetadata[key];
-        var metadata = formatTargetMetadata(classPropsMetadata[key]);
-        var targetName = metadata.targetName || key;
-        var serviceIdentifier = (metadata.inject || metadata.multiInject);
-        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);
-        target.metadata = targetMetadata;
-        targets.push(target);
-    }
-    var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
-    if (baseConstructor !== Object) {
-        var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);
-        targets = targets.concat(baseTargets);
-    }
-    return targets;
-}
-function getBaseClassDependencyCount(metadataReader, func) {
-    var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;
-    if (baseConstructor !== Object) {
-        var baseConstructorName = serialization_1.getFunctionName(baseConstructor);
-        var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
-        var metadata = targets.map(function (t) {
-            return t.metadata.filter(function (m) {
-                return m.key === METADATA_KEY.UNMANAGED_TAG;
-            });
-        });
-        var unmanagedCount = [].concat.apply([], metadata).length;
-        var dependencyCount = targets.length - unmanagedCount;
-        if (dependencyCount > 0) {
-            return dependencyCount;
-        }
-        else {
-            return getBaseClassDependencyCount(metadataReader, baseConstructor);
-        }
-    }
-    else {
-        return 0;
-    }
-}
-function formatTargetMetadata(targetMetadata) {
-    var targetMetadataMap = {};
-    targetMetadata.forEach(function (m) {
-        targetMetadataMap[m.key.toString()] = m.value;
-    });
-    return {
-        inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
-        multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
-        targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
-        unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
-    };
-}
-
-
-/***/ }),
-/* 232 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var guid_1 = __webpack_require__(34);
-var Request = (function () {
-    function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {
-        this.guid = guid_1.guid();
-        this.serviceIdentifier = serviceIdentifier;
-        this.parentContext = parentContext;
-        this.parentRequest = parentRequest;
-        this.target = target;
-        this.childRequests = [];
-        this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);
-        this.requestScope = parentRequest === null
-            ? new Map()
-            : null;
-    }
-    Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
-        var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
-        this.childRequests.push(child);
-        return child;
-    };
-    return Request;
-}());
-exports.Request = Request;
-
-
-/***/ }),
-/* 233 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var error_msgs_1 = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var METADATA_KEY = __webpack_require__(5);
-function _injectProperties(instance, childRequests, resolveRequest) {
-    var propertyInjectionsRequests = childRequests.filter(function (childRequest) {
-        return (childRequest.target !== null &&
-            childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty);
-    });
-    var propertyInjections = propertyInjectionsRequests.map(resolveRequest);
-    propertyInjectionsRequests.forEach(function (r, index) {
-        var propertyName = "";
-        propertyName = r.target.name.value();
-        var injection = propertyInjections[index];
-        instance[propertyName] = injection;
-    });
-    return instance;
-}
-function _createInstance(Func, injections) {
-    return new (Func.bind.apply(Func, [void 0].concat(injections)))();
-}
-function _postConstruct(constr, result) {
-    if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {
-        var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);
-        try {
-            result[data.value]();
-        }
-        catch (e) {
-            throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));
-        }
-    }
-}
-function resolveInstance(constr, childRequests, resolveRequest) {
-    var result = null;
-    if (childRequests.length > 0) {
-        var constructorInjectionsRequests = childRequests.filter(function (childRequest) {
-            return (childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument);
-        });
-        var constructorInjections = constructorInjectionsRequests.map(resolveRequest);
-        result = _createInstance(constr, constructorInjections);
-        result = _injectProperties(result, childRequests, resolveRequest);
-    }
-    else {
-        result = new constr();
-    }
-    _postConstruct(constr, result);
-    return result;
-}
-exports.resolveInstance = resolveInstance;
-
-
-/***/ }),
-/* 234 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var exceptions_1 = __webpack_require__(127);
-var serialization_1 = __webpack_require__(47);
-var instantiation_1 = __webpack_require__(233);
-var invokeFactory = function (factoryType, serviceIdentifier, fn) {
-    try {
-        return fn();
-    }
-    catch (error) {
-        if (exceptions_1.isStackOverflowExeption(error)) {
-            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));
-        }
-        else {
-            throw error;
-        }
-    }
-};
-var _resolveRequest = function (requestScope) {
-    return function (request) {
-        request.parentContext.setCurrentRequest(request);
-        var bindings = request.bindings;
-        var childRequests = request.childRequests;
-        var targetIsAnArray = request.target && request.target.isArray();
-        var targetParentIsNotAnArray = !request.parentRequest ||
-            !request.parentRequest.target ||
-            !request.target ||
-            !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);
-        if (targetIsAnArray && targetParentIsNotAnArray) {
-            return childRequests.map(function (childRequest) {
-                var _f = _resolveRequest(requestScope);
-                return _f(childRequest);
-            });
-        }
-        else {
-            var result = null;
-            if (request.target.isOptional() && bindings.length === 0) {
-                return undefined;
-            }
-            var binding_1 = bindings[0];
-            var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;
-            var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;
-            if (isSingleton && binding_1.activated) {
-                return binding_1.cache;
-            }
-            if (isRequestSingleton &&
-                requestScope !== null &&
-                requestScope.has(binding_1.guid)) {
-                return requestScope.get(binding_1.guid);
-            }
-            if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {
-                result = binding_1.cache;
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {
-                result = binding_1.cache;
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {
-                result = binding_1.implementationType;
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {
-                result = invokeFactory("toDynamicValue", binding_1.serviceIdentifier, function () { return binding_1.dynamicValue(request.parentContext); });
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {
-                result = invokeFactory("toFactory", binding_1.serviceIdentifier, function () { return binding_1.factory(request.parentContext); });
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {
-                result = invokeFactory("toProvider", binding_1.serviceIdentifier, function () { return binding_1.provider(request.parentContext); });
-            }
-            else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {
-                result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));
-            }
-            else {
-                var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);
-                throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifier);
-            }
-            if (typeof binding_1.onActivation === "function") {
-                result = binding_1.onActivation(request.parentContext, result);
-            }
-            if (isSingleton) {
-                binding_1.cache = result;
-                binding_1.activated = true;
-            }
-            if (isRequestSingleton &&
-                requestScope !== null &&
-                !requestScope.has(binding_1.guid)) {
-                requestScope.set(binding_1.guid, result);
-            }
-            return result;
-        }
-    };
-};
-function resolve(context) {
-    var _f = _resolveRequest(context.plan.rootRequest.requestScope);
-    return _f(context.plan.rootRequest);
-}
-exports.resolve = resolve;
-
-
-/***/ }),
-/* 235 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var literal_types_1 = __webpack_require__(21);
-var binding_when_on_syntax_1 = __webpack_require__(125);
-var BindingInSyntax = (function () {
-    function BindingInSyntax(binding) {
-        this._binding = binding;
-    }
-    BindingInSyntax.prototype.inRequestScope = function () {
-        this._binding.scope = literal_types_1.BindingScopeEnum.Request;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingInSyntax.prototype.inSingletonScope = function () {
-        this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingInSyntax.prototype.inTransientScope = function () {
-        this._binding.scope = literal_types_1.BindingScopeEnum.Transient;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    return BindingInSyntax;
-}());
-exports.BindingInSyntax = BindingInSyntax;
-
-
-/***/ }),
-/* 236 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var binding_in_syntax_1 = __webpack_require__(235);
-var binding_on_syntax_1 = __webpack_require__(83);
-var binding_when_syntax_1 = __webpack_require__(84);
-var BindingInWhenOnSyntax = (function () {
-    function BindingInWhenOnSyntax(binding) {
-        this._binding = binding;
-        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
-        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
-        this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);
-    }
-    BindingInWhenOnSyntax.prototype.inRequestScope = function () {
-        return this._bindingInSyntax.inRequestScope();
-    };
-    BindingInWhenOnSyntax.prototype.inSingletonScope = function () {
-        return this._bindingInSyntax.inSingletonScope();
-    };
-    BindingInWhenOnSyntax.prototype.inTransientScope = function () {
-        return this._bindingInSyntax.inTransientScope();
-    };
-    BindingInWhenOnSyntax.prototype.when = function (constraint) {
-        return this._bindingWhenSyntax.when(constraint);
-    };
-    BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {
-        return this._bindingWhenSyntax.whenTargetNamed(name);
-    };
-    BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {
-        return this._bindingWhenSyntax.whenTargetIsDefault();
-    };
-    BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenTargetTagged(tag, value);
-    };
-    BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
-        return this._bindingWhenSyntax.whenInjectedInto(parent);
-    };
-    BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {
-        return this._bindingWhenSyntax.whenParentNamed(name);
-    };
-    BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenParentTagged(tag, value);
-    };
-    BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
-        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
-    };
-    BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
-        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
-    };
-    BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
-        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
-    };
-    BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
-    };
-    BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
-        return this._bindingWhenSyntax.whenNoAncestorNamed(name);
-    };
-    BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
-        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
-    };
-    BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
-        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
-    };
-    BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
-        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
-    };
-    BindingInWhenOnSyntax.prototype.onActivation = function (handler) {
-        return this._bindingOnSyntax.onActivation(handler);
-    };
-    return BindingInWhenOnSyntax;
-}());
-exports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;
-
-
-/***/ }),
-/* 237 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var ERROR_MSGS = __webpack_require__(12);
-var literal_types_1 = __webpack_require__(21);
-var binding_in_when_on_syntax_1 = __webpack_require__(236);
-var binding_when_on_syntax_1 = __webpack_require__(125);
-var BindingToSyntax = (function () {
-    function BindingToSyntax(binding) {
-        this._binding = binding;
-    }
-    BindingToSyntax.prototype.to = function (constructor) {
-        this._binding.type = literal_types_1.BindingTypeEnum.Instance;
-        this._binding.implementationType = constructor;
-        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toSelf = function () {
-        if (typeof this._binding.serviceIdentifier !== "function") {
-            throw new Error("" + ERROR_MSGS.INVALID_TO_SELF_VALUE);
-        }
-        var self = this._binding.serviceIdentifier;
-        return this.to(self);
-    };
-    BindingToSyntax.prototype.toConstantValue = function (value) {
-        this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;
-        this._binding.cache = value;
-        this._binding.dynamicValue = null;
-        this._binding.implementationType = null;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toDynamicValue = function (func) {
-        this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;
-        this._binding.cache = null;
-        this._binding.dynamicValue = func;
-        this._binding.implementationType = null;
-        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toConstructor = function (constructor) {
-        this._binding.type = literal_types_1.BindingTypeEnum.Constructor;
-        this._binding.implementationType = constructor;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toFactory = function (factory) {
-        this._binding.type = literal_types_1.BindingTypeEnum.Factory;
-        this._binding.factory = factory;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toFunction = function (func) {
-        if (typeof func !== "function") {
-            throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
-        }
-        var bindingWhenOnSyntax = this.toConstantValue(func);
-        this._binding.type = literal_types_1.BindingTypeEnum.Function;
-        return bindingWhenOnSyntax;
-    };
-    BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
-        this._binding.type = literal_types_1.BindingTypeEnum.Factory;
-        this._binding.factory = function (context) {
-            var autofactory = function () { return context.container.get(serviceIdentifier); };
-            return autofactory;
-        };
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toProvider = function (provider) {
-        this._binding.type = literal_types_1.BindingTypeEnum.Provider;
-        this._binding.provider = provider;
-        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
-    };
-    BindingToSyntax.prototype.toService = function (service) {
-        this.toDynamicValue(function (context) { return context.container.get(service); });
-    };
-    return BindingToSyntax;
-}());
-exports.BindingToSyntax = BindingToSyntax;
-
-
-/***/ }),
-/* 238 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.multiBindToService = function (container) {
-    return function (service) {
-        return function () {
-            var types = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                types[_i] = arguments[_i];
-            }
-            return types.forEach(function (t) { return container.bind(t).toService(service); });
-        };
-    };
-};
-
-
-/***/ }),
-/* 239 */
-/***/ (function(module, exports) {
-
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things.  But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals.  It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
-    throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
-    throw new Error('clearTimeout has not been defined');
-}
-(function () {
-    try {
-        if (typeof setTimeout === 'function') {
-            cachedSetTimeout = setTimeout;
-        } else {
-            cachedSetTimeout = defaultSetTimout;
-        }
-    } catch (e) {
-        cachedSetTimeout = defaultSetTimout;
-    }
-    try {
-        if (typeof clearTimeout === 'function') {
-            cachedClearTimeout = clearTimeout;
-        } else {
-            cachedClearTimeout = defaultClearTimeout;
-        }
-    } catch (e) {
-        cachedClearTimeout = defaultClearTimeout;
-    }
-} ())
-function runTimeout(fun) {
-    if (cachedSetTimeout === setTimeout) {
-        //normal enviroments in sane situations
-        return setTimeout(fun, 0);
-    }
-    // if setTimeout wasn't available but was latter defined
-    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
-        cachedSetTimeout = setTimeout;
-        return setTimeout(fun, 0);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedSetTimeout(fun, 0);
-    } catch(e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
-            return cachedSetTimeout.call(null, fun, 0);
-        } catch(e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
-            return cachedSetTimeout.call(this, fun, 0);
-        }
-    }
-
-
-}
-function runClearTimeout(marker) {
-    if (cachedClearTimeout === clearTimeout) {
-        //normal enviroments in sane situations
-        return clearTimeout(marker);
-    }
-    // if clearTimeout wasn't available but was latter defined
-    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
-        cachedClearTimeout = clearTimeout;
-        return clearTimeout(marker);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedClearTimeout(marker);
-    } catch (e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
-            return cachedClearTimeout.call(null, marker);
-        } catch (e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
-            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
-            return cachedClearTimeout.call(this, marker);
-        }
-    }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
-    if (!draining || !currentQueue) {
-        return;
-    }
-    draining = false;
-    if (currentQueue.length) {
-        queue = currentQueue.concat(queue);
-    } else {
-        queueIndex = -1;
-    }
-    if (queue.length) {
-        drainQueue();
-    }
-}
-
-function drainQueue() {
-    if (draining) {
-        return;
-    }
-    var timeout = runTimeout(cleanUpNextTick);
-    draining = true;
-
-    var len = queue.length;
-    while(len) {
-        currentQueue = queue;
-        queue = [];
-        while (++queueIndex < len) {
-            if (currentQueue) {
-                currentQueue[queueIndex].run();
-            }
-        }
-        queueIndex = -1;
-        len = queue.length;
-    }
-    currentQueue = null;
-    draining = false;
-    runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
-    var args = new Array(arguments.length - 1);
-    if (arguments.length > 1) {
-        for (var i = 1; i < arguments.length; i++) {
-            args[i - 1] = arguments[i];
-        }
-    }
-    queue.push(new Item(fun, args));
-    if (queue.length === 1 && !draining) {
-        runTimeout(drainQueue);
-    }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
-    this.fun = fun;
-    this.array = array;
-}
-Item.prototype.run = function () {
-    this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) { return [] }
-
-process.binding = function (name) {
-    throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
-    throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-
-/***/ }),
-/* 240 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-;
-;
-;
-var isWebSocket = function (constructor) {
-    return constructor && constructor.CLOSING === 2;
-};
-var isGlobalWebSocket = function () {
-    return typeof WebSocket !== 'undefined' && isWebSocket(WebSocket);
-};
-var getDefaultOptions = function () { return ({
-    constructor: isGlobalWebSocket() ? WebSocket : null,
-    maxReconnectionDelay: 10000,
-    minReconnectionDelay: 1500,
-    reconnectionDelayGrowFactor: 1.3,
-    connectionTimeout: 4000,
-    maxRetries: Infinity,
-    debug: false,
-}); };
-var bypassProperty = function (src, dst, name) {
-    Object.defineProperty(dst, name, {
-        get: function () { return src[name]; },
-        set: function (value) { src[name] = value; },
-        enumerable: true,
-        configurable: true,
-    });
-};
-var initReconnectionDelay = function (config) {
-    return (config.minReconnectionDelay + Math.random() * config.minReconnectionDelay);
-};
-var updateReconnectionDelay = function (config, previousDelay) {
-    var newDelay = previousDelay * config.reconnectionDelayGrowFactor;
-    return (newDelay > config.maxReconnectionDelay)
-        ? config.maxReconnectionDelay
-        : newDelay;
-};
-var LEVEL_0_EVENTS = ['onopen', 'onclose', 'onmessage', 'onerror'];
-var reassignEventListeners = function (ws, oldWs, listeners) {
-    Object.keys(listeners).forEach(function (type) {
-        listeners[type].forEach(function (_a) {
-            var listener = _a[0], options = _a[1];
-            ws.addEventListener(type, listener, options);
-        });
-    });
-    if (oldWs) {
-        LEVEL_0_EVENTS.forEach(function (name) {
-            ws[name] = oldWs[name];
-        });
-    }
-};
-var ReconnectingWebsocket = function (url, protocols, options) {
-    var _this = this;
-    if (options === void 0) { options = {}; }
-    var ws;
-    var connectingTimeout;
-    var reconnectDelay = 0;
-    var retriesCount = 0;
-    var shouldRetry = true;
-    var savedOnClose = null;
-    var listeners = {};
-    // require new to construct
-    if (!(this instanceof ReconnectingWebsocket)) {
-        throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");
-    }
-    // Set config. Not using `Object.assign` because of IE11
-    var config = getDefaultOptions();
-    Object.keys(config)
-        .filter(function (key) { return options.hasOwnProperty(key); })
-        .forEach(function (key) { return config[key] = options[key]; });
-    if (!isWebSocket(config.constructor)) {
-        throw new TypeError('Invalid WebSocket constructor. Set `options.constructor`');
-    }
-    var log = config.debug ? function () {
-        var params = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            params[_i] = arguments[_i];
-        }
-        return console.log.apply(console, ['RWS:'].concat(params));
-    } : function () { };
-    /**
-     * Not using dispatchEvent, otherwise we must use a DOM Event object
-     * Deferred because we want to handle the close event before this
-     */
-    var emitError = function (code, msg) { return setTimeout(function () {
-        var err = new Error(msg);
-        err.code = code;
-        if (Array.isArray(listeners.error)) {
-            listeners.error.forEach(function (_a) {
-                var fn = _a[0];
-                return fn(err);
-            });
-        }
-        if (ws.onerror) {
-            ws.onerror(err);
-        }
-    }, 0); };
-    var handleClose = function () {
-        log('handleClose', { shouldRetry: shouldRetry });
-        retriesCount++;
-        log('retries count:', retriesCount);
-        if (retriesCount > config.maxRetries) {
-            emitError('EHOSTDOWN', 'Too many failed connection attempts');
-            return;
-        }
-        if (!reconnectDelay) {
-            reconnectDelay = initReconnectionDelay(config);
-        }
-        else {
-            reconnectDelay = updateReconnectionDelay(config, reconnectDelay);
-        }
-        log('handleClose - reconnectDelay:', reconnectDelay);
-        if (shouldRetry) {
-            setTimeout(connect, reconnectDelay);
-        }
-    };
-    var connect = function () {
-        if (!shouldRetry) {
-            return;
-        }
-        log('connect');
-        var oldWs = ws;
-        var wsUrl = (typeof url === 'function') ? url() : url;
-        ws = new config.constructor(wsUrl, protocols);
-        connectingTimeout = setTimeout(function () {
-            log('timeout');
-            ws.close();
-            emitError('ETIMEDOUT', 'Connection timeout');
-        }, config.connectionTimeout);
-        log('bypass properties');
-        for (var key in ws) {
-            // @todo move to constant
-            if (['addEventListener', 'removeEventListener', 'close', 'send'].indexOf(key) < 0) {
-                bypassProperty(ws, _this, key);
-            }
-        }
-        ws.addEventListener('open', function () {
-            clearTimeout(connectingTimeout);
-            log('open');
-            reconnectDelay = initReconnectionDelay(config);
-            log('reconnectDelay:', reconnectDelay);
-            retriesCount = 0;
-        });
-        ws.addEventListener('close', handleClose);
-        reassignEventListeners(ws, oldWs, listeners);
-        // because when closing with fastClose=true, it is saved and set to null to avoid double calls
-        ws.onclose = ws.onclose || savedOnClose;
-        savedOnClose = null;
-    };
-    log('init');
-    connect();
-    this.close = function (code, reason, _a) {
-        if (code === void 0) { code = 1000; }
-        if (reason === void 0) { reason = ''; }
-        var _b = _a === void 0 ? {} : _a, _c = _b.keepClosed, keepClosed = _c === void 0 ? false : _c, _d = _b.fastClose, fastClose = _d === void 0 ? true : _d, _e = _b.delay, delay = _e === void 0 ? 0 : _e;
-        log('close - params:', { reason: reason, keepClosed: keepClosed, fastClose: fastClose, delay: delay, retriesCount: retriesCount, maxRetries: config.maxRetries });
-        shouldRetry = !keepClosed && retriesCount <= config.maxRetries;
-        if (delay) {
-            reconnectDelay = delay;
-        }
-        ws.close(code, reason);
-        if (fastClose) {
-            var fakeCloseEvent_1 = {
-                code: code,
-                reason: reason,
-                wasClean: true,
-            };
-            // execute close listeners soon with a fake closeEvent
-            // and remove them from the WS instance so they
-            // don't get fired on the real close.
-            handleClose();
-            ws.removeEventListener('close', handleClose);
-            // run and remove level2
-            if (Array.isArray(listeners.close)) {
-                listeners.close.forEach(function (_a) {
-                    var listener = _a[0], options = _a[1];
-                    listener(fakeCloseEvent_1);
-                    ws.removeEventListener('close', listener, options);
-                });
-            }
-            // run and remove level0
-            if (ws.onclose) {
-                savedOnClose = ws.onclose;
-                ws.onclose(fakeCloseEvent_1);
-                ws.onclose = null;
-            }
-        }
-    };
-    this.send = function (data) {
-        ws.send(data);
-    };
-    this.addEventListener = function (type, listener, options) {
-        if (Array.isArray(listeners[type])) {
-            if (!listeners[type].some(function (_a) {
-                var l = _a[0];
-                return l === listener;
-            })) {
-                listeners[type].push([listener, options]);
-            }
-        }
-        else {
-            listeners[type] = [[listener, options]];
-        }
-        ws.addEventListener(type, listener, options);
-    };
-    this.removeEventListener = function (type, listener, options) {
-        if (Array.isArray(listeners[type])) {
-            listeners[type] = listeners[type].filter(function (_a) {
-                var l = _a[0];
-                return l !== listener;
-            });
-        }
-        ws.removeEventListener(type, listener, options);
-    };
-};
-module.exports = ReconnectingWebsocket;
-
-
-/***/ }),
-/* 241 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(process, global) {/*! *****************************************************************************
-Copyright (C) Microsoft. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at http://www.apache.org/licenses/LICENSE-2.0
-
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-MERCHANTABLITY OR NON-INFRINGEMENT.
-
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */
-var Reflect;
-(function (Reflect) {
-    // Metadata Proposal
-    // https://rbuckton.github.io/reflect-metadata/
-    (function (factory) {
-        var root = typeof global === "object" ? global :
-            typeof self === "object" ? self :
-                typeof this === "object" ? this :
-                    Function("return this;")();
-        var exporter = makeExporter(Reflect);
-        if (typeof root.Reflect === "undefined") {
-            root.Reflect = Reflect;
-        }
-        else {
-            exporter = makeExporter(root.Reflect, exporter);
-        }
-        factory(exporter);
-        function makeExporter(target, previous) {
-            return function (key, value) {
-                if (typeof target[key] !== "function") {
-                    Object.defineProperty(target, key, { configurable: true, writable: true, value: value });
-                }
-                if (previous)
-                    previous(key, value);
-            };
-        }
-    })(function (exporter) {
-        var hasOwn = Object.prototype.hasOwnProperty;
-        // feature test for Symbol support
-        var supportsSymbol = typeof Symbol === "function";
-        var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
-        var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
-        var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support
-        var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support
-        var downLevel = !supportsCreate && !supportsProto;
-        var HashMap = {
-            // create an object in dictionary mode (a.k.a. "slow" mode in v8)
-            create: supportsCreate
-                ? function () { return MakeDictionary(Object.create(null)); }
-                : supportsProto
-                    ? function () { return MakeDictionary({ __proto__: null }); }
-                    : function () { return MakeDictionary({}); },
-            has: downLevel
-                ? function (map, key) { return hasOwn.call(map, key); }
-                : function (map, key) { return key in map; },
-            get: downLevel
-                ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }
-                : function (map, key) { return map[key]; },
-        };
-        // Load global or shim versions of Map, Set, and WeakMap
-        var functionPrototype = Object.getPrototypeOf(Function);
-        var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true";
-        var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();
-        var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();
-        var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill();
-        // [[Metadata]] internal slot
-        // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots
-        var Metadata = new _WeakMap();
-        /**
-         * Applies a set of decorators to a property of a target object.
-         * @param decorators An array of decorators.
-         * @param target The target object.
-         * @param propertyKey (Optional) The property key to decorate.
-         * @param attributes (Optional) The property descriptor for the target key.
-         * @remarks Decorators are applied in reverse order.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     Example = Reflect.decorate(decoratorsArray, Example);
-         *
-         *     // property (on constructor)
-         *     Reflect.decorate(decoratorsArray, Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     Reflect.decorate(decoratorsArray, Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     Object.defineProperty(Example, "staticMethod",
-         *         Reflect.decorate(decoratorsArray, Example, "staticMethod",
-         *             Object.getOwnPropertyDescriptor(Example, "staticMethod")));
-         *
-         *     // method (on prototype)
-         *     Object.defineProperty(Example.prototype, "method",
-         *         Reflect.decorate(decoratorsArray, Example.prototype, "method",
-         *             Object.getOwnPropertyDescriptor(Example.prototype, "method")));
-         *
-         */
-        function decorate(decorators, target, propertyKey, attributes) {
-            if (!IsUndefined(propertyKey)) {
-                if (!IsArray(decorators))
-                    throw new TypeError();
-                if (!IsObject(target))
-                    throw new TypeError();
-                if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))
-                    throw new TypeError();
-                if (IsNull(attributes))
-                    attributes = undefined;
-                propertyKey = ToPropertyKey(propertyKey);
-                return DecorateProperty(decorators, target, propertyKey, attributes);
-            }
-            else {
-                if (!IsArray(decorators))
-                    throw new TypeError();
-                if (!IsConstructor(target))
-                    throw new TypeError();
-                return DecorateConstructor(decorators, target);
-            }
-        }
-        exporter("decorate", decorate);
-        // 4.1.2 Reflect.metadata(metadataKey, metadataValue)
-        // https://rbuckton.github.io/reflect-metadata/#reflect.metadata
-        /**
-         * A default metadata decorator factory that can be used on a class, class member, or parameter.
-         * @param metadataKey The key for the metadata entry.
-         * @param metadataValue The value for the metadata entry.
-         * @returns A decorator function.
-         * @remarks
-         * If `metadataKey` is already defined for the target and target key, the
-         * metadataValue for that key will be overwritten.
-         * @example
-         *
-         *     // constructor
-         *     @Reflect.metadata(key, value)
-         *     class Example {
-         *     }
-         *
-         *     // property (on constructor, TypeScript only)
-         *     class Example {
-         *         @Reflect.metadata(key, value)
-         *         static staticProperty;
-         *     }
-         *
-         *     // property (on prototype, TypeScript only)
-         *     class Example {
-         *         @Reflect.metadata(key, value)
-         *         property;
-         *     }
-         *
-         *     // method (on constructor)
-         *     class Example {
-         *         @Reflect.metadata(key, value)
-         *         static staticMethod() { }
-         *     }
-         *
-         *     // method (on prototype)
-         *     class Example {
-         *         @Reflect.metadata(key, value)
-         *         method() { }
-         *     }
-         *
-         */
-        function metadata(metadataKey, metadataValue) {
-            function decorator(target, propertyKey) {
-                if (!IsObject(target))
-                    throw new TypeError();
-                if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))
-                    throw new TypeError();
-                OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
-            }
-            return decorator;
-        }
-        exporter("metadata", metadata);
-        /**
-         * Define a unique metadata entry on the target.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param metadataValue A value that contains attached metadata.
-         * @param target The target object on which to define metadata.
-         * @param propertyKey (Optional) The property key for the target.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     Reflect.defineMetadata("custom:annotation", options, Example);
-         *
-         *     // property (on constructor)
-         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method");
-         *
-         *     // decorator factory as metadata-producing annotation.
-         *     function MyAnnotation(options): Decorator {
-         *         return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key);
-         *     }
-         *
-         */
-        function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
-        }
-        exporter("defineMetadata", defineMetadata);
-        /**
-         * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.hasMetadata("custom:annotation", Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method");
-         *
-         */
-        function hasMetadata(metadataKey, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryHasMetadata(metadataKey, target, propertyKey);
-        }
-        exporter("hasMetadata", hasMetadata);
-        /**
-         * Gets a value indicating whether the target object has the provided metadata key defined.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.hasOwnMetadata("custom:annotation", Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method");
-         *
-         */
-        function hasOwnMetadata(metadataKey, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
-        }
-        exporter("hasOwnMetadata", hasOwnMetadata);
-        /**
-         * Gets the metadata value for the provided metadata key on the target object or its prototype chain.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.getMetadata("custom:annotation", Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.getMetadata("custom:annotation", Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.getMetadata("custom:annotation", Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "method");
-         *
-         */
-        function getMetadata(metadataKey, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryGetMetadata(metadataKey, target, propertyKey);
-        }
-        exporter("getMetadata", getMetadata);
-        /**
-         * Gets the metadata value for the provided metadata key on the target object.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.getOwnMetadata("custom:annotation", Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method");
-         *
-         */
-        function getOwnMetadata(metadataKey, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
-        }
-        exporter("getOwnMetadata", getOwnMetadata);
-        /**
-         * Gets the metadata keys defined on the target object or its prototype chain.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns An array of unique metadata keys.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.getMetadataKeys(Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.getMetadataKeys(Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.getMetadataKeys(Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.getMetadataKeys(Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.getMetadataKeys(Example.prototype, "method");
-         *
-         */
-        function getMetadataKeys(target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryMetadataKeys(target, propertyKey);
-        }
-        exporter("getMetadataKeys", getMetadataKeys);
-        /**
-         * Gets the unique metadata keys defined on the target object.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns An array of unique metadata keys.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.getOwnMetadataKeys(Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.getOwnMetadataKeys(Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.getOwnMetadataKeys(Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "method");
-         *
-         */
-        function getOwnMetadataKeys(target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            return OrdinaryOwnMetadataKeys(target, propertyKey);
-        }
-        exporter("getOwnMetadataKeys", getOwnMetadataKeys);
-        /**
-         * Deletes the metadata entry from the target object with the provided key.
-         * @param metadataKey A key used to store and retrieve metadata.
-         * @param target The target object on which the metadata is defined.
-         * @param propertyKey (Optional) The property key for the target.
-         * @returns `true` if the metadata entry was found and deleted; otherwise, false.
-         * @example
-         *
-         *     class Example {
-         *         // property declarations are not part of ES6, though they are valid in TypeScript:
-         *         // static staticProperty;
-         *         // property;
-         *
-         *         constructor(p) { }
-         *         static staticMethod(p) { }
-         *         method(p) { }
-         *     }
-         *
-         *     // constructor
-         *     result = Reflect.deleteMetadata("custom:annotation", Example);
-         *
-         *     // property (on constructor)
-         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty");
-         *
-         *     // property (on prototype)
-         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property");
-         *
-         *     // method (on constructor)
-         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod");
-         *
-         *     // method (on prototype)
-         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method");
-         *
-         */
-        function deleteMetadata(metadataKey, target, propertyKey) {
-            if (!IsObject(target))
-                throw new TypeError();
-            if (!IsUndefined(propertyKey))
-                propertyKey = ToPropertyKey(propertyKey);
-            var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);
-            if (IsUndefined(metadataMap))
-                return false;
-            if (!metadataMap.delete(metadataKey))
-                return false;
-            if (metadataMap.size > 0)
-                return true;
-            var targetMetadata = Metadata.get(target);
-            targetMetadata.delete(propertyKey);
-            if (targetMetadata.size > 0)
-                return true;
-            Metadata.delete(target);
-            return true;
-        }
-        exporter("deleteMetadata", deleteMetadata);
-        function DecorateConstructor(decorators, target) {
-            for (var i = decorators.length - 1; i >= 0; --i) {
-                var decorator = decorators[i];
-                var decorated = decorator(target);
-                if (!IsUndefined(decorated) && !IsNull(decorated)) {
-                    if (!IsConstructor(decorated))
-                        throw new TypeError();
-                    target = decorated;
-                }
-            }
-            return target;
-        }
-        function DecorateProperty(decorators, target, propertyKey, descriptor) {
-            for (var i = decorators.length - 1; i >= 0; --i) {
-                var decorator = decorators[i];
-                var decorated = decorator(target, propertyKey, descriptor);
-                if (!IsUndefined(decorated) && !IsNull(decorated)) {
-                    if (!IsObject(decorated))
-                        throw new TypeError();
-                    descriptor = decorated;
-                }
-            }
-            return descriptor;
-        }
-        function GetOrCreateMetadataMap(O, P, Create) {
-            var targetMetadata = Metadata.get(O);
-            if (IsUndefined(targetMetadata)) {
-                if (!Create)
-                    return undefined;
-                targetMetadata = new _Map();
-                Metadata.set(O, targetMetadata);
-            }
-            var metadataMap = targetMetadata.get(P);
-            if (IsUndefined(metadataMap)) {
-                if (!Create)
-                    return undefined;
-                metadataMap = new _Map();
-                targetMetadata.set(P, metadataMap);
-            }
-            return metadataMap;
-        }
-        // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata
-        function OrdinaryHasMetadata(MetadataKey, O, P) {
-            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
-            if (hasOwn)
-                return true;
-            var parent = OrdinaryGetPrototypeOf(O);
-            if (!IsNull(parent))
-                return OrdinaryHasMetadata(MetadataKey, parent, P);
-            return false;
-        }
-        // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata
-        function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
-            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
-            if (IsUndefined(metadataMap))
-                return false;
-            return ToBoolean(metadataMap.has(MetadataKey));
-        }
-        // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata
-        function OrdinaryGetMetadata(MetadataKey, O, P) {
-            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
-            if (hasOwn)
-                return OrdinaryGetOwnMetadata(MetadataKey, O, P);
-            var parent = OrdinaryGetPrototypeOf(O);
-            if (!IsNull(parent))
-                return OrdinaryGetMetadata(MetadataKey, parent, P);
-            return undefined;
-        }
-        // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata
-        function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
-            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
-            if (IsUndefined(metadataMap))
-                return undefined;
-            return metadataMap.get(MetadataKey);
-        }
-        // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata
-        function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
-            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);
-            metadataMap.set(MetadataKey, MetadataValue);
-        }
-        // 3.1.6.1 OrdinaryMetadataKeys(O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys
-        function OrdinaryMetadataKeys(O, P) {
-            var ownKeys = OrdinaryOwnMetadataKeys(O, P);
-            var parent = OrdinaryGetPrototypeOf(O);
-            if (parent === null)
-                return ownKeys;
-            var parentKeys = OrdinaryMetadataKeys(parent, P);
-            if (parentKeys.length <= 0)
-                return ownKeys;
-            if (ownKeys.length <= 0)
-                return parentKeys;
-            var set = new _Set();
-            var keys = [];
-            for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
-                var key = ownKeys_1[_i];
-                var hasKey = set.has(key);
-                if (!hasKey) {
-                    set.add(key);
-                    keys.push(key);
-                }
-            }
-            for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
-                var key = parentKeys_1[_a];
-                var hasKey = set.has(key);
-                if (!hasKey) {
-                    set.add(key);
-                    keys.push(key);
-                }
-            }
-            return keys;
-        }
-        // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)
-        // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys
-        function OrdinaryOwnMetadataKeys(O, P) {
-            var keys = [];
-            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
-            if (IsUndefined(metadataMap))
-                return keys;
-            var keysObj = metadataMap.keys();
-            var iterator = GetIterator(keysObj);
-            var k = 0;
-            while (true) {
-                var next = IteratorStep(iterator);
-                if (!next) {
-                    keys.length = k;
-                    return keys;
-                }
-                var nextValue = IteratorValue(next);
-                try {
-                    keys[k] = nextValue;
-                }
-                catch (e) {
-                    try {
-                        IteratorClose(iterator);
-                    }
-                    finally {
-                        throw e;
-                    }
-                }
-                k++;
-            }
-        }
-        // 6 ECMAScript Data Typ0es and Values
-        // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values
-        function Type(x) {
-            if (x === null)
-                return 1 /* Null */;
-            switch (typeof x) {
-                case "undefined": return 0 /* Undefined */;
-                case "boolean": return 2 /* Boolean */;
-                case "string": return 3 /* String */;
-                case "symbol": return 4 /* Symbol */;
-                case "number": return 5 /* Number */;
-                case "object": return x === null ? 1 /* Null */ : 6 /* Object */;
-                default: return 6 /* Object */;
-            }
-        }
-        // 6.1.1 The Undefined Type
-        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type
-        function IsUndefined(x) {
-            return x === undefined;
-        }
-        // 6.1.2 The Null Type
-        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type
-        function IsNull(x) {
-            return x === null;
-        }
-        // 6.1.5 The Symbol Type
-        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type
-        function IsSymbol(x) {
-            return typeof x === "symbol";
-        }
-        // 6.1.7 The Object Type
-        // https://tc39.github.io/ecma262/#sec-object-type
-        function IsObject(x) {
-            return typeof x === "object" ? x !== null : typeof x === "function";
-        }
-        // 7.1 Type Conversion
-        // https://tc39.github.io/ecma262/#sec-type-conversion
-        // 7.1.1 ToPrimitive(input [, PreferredType])
-        // https://tc39.github.io/ecma262/#sec-toprimitive
-        function ToPrimitive(input, PreferredType) {
-            switch (Type(input)) {
-                case 0 /* Undefined */: return input;
-                case 1 /* Null */: return input;
-                case 2 /* Boolean */: return input;
-                case 3 /* String */: return input;
-                case 4 /* Symbol */: return input;
-                case 5 /* Number */: return input;
-            }
-            var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default";
-            var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
-            if (exoticToPrim !== undefined) {
-                var result = exoticToPrim.call(input, hint);
-                if (IsObject(result))
-                    throw new TypeError();
-                return result;
-            }
-            return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
-        }
-        // 7.1.1.1 OrdinaryToPrimitive(O, hint)
-        // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive
-        function OrdinaryToPrimitive(O, hint) {
-            if (hint === "string") {
-                var toString_1 = O.toString;
-                if (IsCallable(toString_1)) {
-                    var result = toString_1.call(O);
-                    if (!IsObject(result))
-                        return result;
-                }
-                var valueOf = O.valueOf;
-                if (IsCallable(valueOf)) {
-                    var result = valueOf.call(O);
-                    if (!IsObject(result))
-                        return result;
-                }
-            }
-            else {
-                var valueOf = O.valueOf;
-                if (IsCallable(valueOf)) {
-                    var result = valueOf.call(O);
-                    if (!IsObject(result))
-                        return result;
-                }
-                var toString_2 = O.toString;
-                if (IsCallable(toString_2)) {
-                    var result = toString_2.call(O);
-                    if (!IsObject(result))
-                        return result;
-                }
-            }
-            throw new TypeError();
-        }
-        // 7.1.2 ToBoolean(argument)
-        // https://tc39.github.io/ecma262/2016/#sec-toboolean
-        function ToBoolean(argument) {
-            return !!argument;
-        }
-        // 7.1.12 ToString(argument)
-        // https://tc39.github.io/ecma262/#sec-tostring
-        function ToString(argument) {
-            return "" + argument;
-        }
-        // 7.1.14 ToPropertyKey(argument)
-        // https://tc39.github.io/ecma262/#sec-topropertykey
-        function ToPropertyKey(argument) {
-            var key = ToPrimitive(argument, 3 /* String */);
-            if (IsSymbol(key))
-                return key;
-            return ToString(key);
-        }
-        // 7.2 Testing and Comparison Operations
-        // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations
-        // 7.2.2 IsArray(argument)
-        // https://tc39.github.io/ecma262/#sec-isarray
-        function IsArray(argument) {
-            return Array.isArray
-                ? Array.isArray(argument)
-                : argument instanceof Object
-                    ? argument instanceof Array
-                    : Object.prototype.toString.call(argument) === "[object Array]";
-        }
-        // 7.2.3 IsCallable(argument)
-        // https://tc39.github.io/ecma262/#sec-iscallable
-        function IsCallable(argument) {
-            // NOTE: This is an approximation as we cannot check for [[Call]] internal method.
-            return typeof argument === "function";
-        }
-        // 7.2.4 IsConstructor(argument)
-        // https://tc39.github.io/ecma262/#sec-isconstructor
-        function IsConstructor(argument) {
-            // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.
-            return typeof argument === "function";
-        }
-        // 7.2.7 IsPropertyKey(argument)
-        // https://tc39.github.io/ecma262/#sec-ispropertykey
-        function IsPropertyKey(argument) {
-            switch (Type(argument)) {
-                case 3 /* String */: return true;
-                case 4 /* Symbol */: return true;
-                default: return false;
-            }
-        }
-        // 7.3 Operations on Objects
-        // https://tc39.github.io/ecma262/#sec-operations-on-objects
-        // 7.3.9 GetMethod(V, P)
-        // https://tc39.github.io/ecma262/#sec-getmethod
-        function GetMethod(V, P) {
-            var func = V[P];
-            if (func === undefined || func === null)
-                return undefined;
-            if (!IsCallable(func))
-                throw new TypeError();
-            return func;
-        }
-        // 7.4 Operations on Iterator Objects
-        // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects
-        function GetIterator(obj) {
-            var method = GetMethod(obj, iteratorSymbol);
-            if (!IsCallable(method))
-                throw new TypeError(); // from Call
-            var iterator = method.call(obj);
-            if (!IsObject(iterator))
-                throw new TypeError();
-            return iterator;
-        }
-        // 7.4.4 IteratorValue(iterResult)
-        // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue
-        function IteratorValue(iterResult) {
-            return iterResult.value;
-        }
-        // 7.4.5 IteratorStep(iterator)
-        // https://tc39.github.io/ecma262/#sec-iteratorstep
-        function IteratorStep(iterator) {
-            var result = iterator.next();
-            return result.done ? false : result;
-        }
-        // 7.4.6 IteratorClose(iterator, completion)
-        // https://tc39.github.io/ecma262/#sec-iteratorclose
-        function IteratorClose(iterator) {
-            var f = iterator["return"];
-            if (f)
-                f.call(iterator);
-        }
-        // 9.1 Ordinary Object Internal Methods and Internal Slots
-        // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
-        // 9.1.1.1 OrdinaryGetPrototypeOf(O)
-        // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof
-        function OrdinaryGetPrototypeOf(O) {
-            var proto = Object.getPrototypeOf(O);
-            if (typeof O !== "function" || O === functionPrototype)
-                return proto;
-            // TypeScript doesn't set __proto__ in ES5, as it's non-standard.
-            // Try to determine the superclass constructor. Compatible implementations
-            // must either set __proto__ on a subclass constructor to the superclass constructor,
-            // or ensure each class has a valid `constructor` property on its prototype that
-            // points back to the constructor.
-            // If this is not the same as Function.[[Prototype]], then this is definately inherited.
-            // This is the case when in ES6 or when using __proto__ in a compatible browser.
-            if (proto !== functionPrototype)
-                return proto;
-            // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.
-            var prototype = O.prototype;
-            var prototypeProto = prototype && Object.getPrototypeOf(prototype);
-            if (prototypeProto == null || prototypeProto === Object.prototype)
-                return proto;
-            // If the constructor was not a function, then we cannot determine the heritage.
-            var constructor = prototypeProto.constructor;
-            if (typeof constructor !== "function")
-                return proto;
-            // If we have some kind of self-reference, then we cannot determine the heritage.
-            if (constructor === O)
-                return proto;
-            // we have a pretty good guess at the heritage.
-            return constructor;
-        }
-        // naive Map shim
-        function CreateMapPolyfill() {
-            var cacheSentinel = {};
-            var arraySentinel = [];
-            var MapIterator = (function () {
-                function MapIterator(keys, values, selector) {
-                    this._index = 0;
-                    this._keys = keys;
-                    this._values = values;
-                    this._selector = selector;
-                }
-                MapIterator.prototype["@@iterator"] = function () { return this; };
-                MapIterator.prototype[iteratorSymbol] = function () { return this; };
-                MapIterator.prototype.next = function () {
-                    var index = this._index;
-                    if (index >= 0 && index < this._keys.length) {
-                        var result = this._selector(this._keys[index], this._values[index]);
-                        if (index + 1 >= this._keys.length) {
-                            this._index = -1;
-                            this._keys = arraySentinel;
-                            this._values = arraySentinel;
-                        }
-                        else {
-                            this._index++;
-                        }
-                        return { value: result, done: false };
-                    }
-                    return { value: undefined, done: true };
-                };
-                MapIterator.prototype.throw = function (error) {
-                    if (this._index >= 0) {
-                        this._index = -1;
-                        this._keys = arraySentinel;
-                        this._values = arraySentinel;
-                    }
-                    throw error;
-                };
-                MapIterator.prototype.return = function (value) {
-                    if (this._index >= 0) {
-                        this._index = -1;
-                        this._keys = arraySentinel;
-                        this._values = arraySentinel;
-                    }
-                    return { value: value, done: true };
-                };
-                return MapIterator;
-            }());
-            return (function () {
-                function Map() {
-                    this._keys = [];
-                    this._values = [];
-                    this._cacheKey = cacheSentinel;
-                    this._cacheIndex = -2;
-                }
-                Object.defineProperty(Map.prototype, "size", {
-                    get: function () { return this._keys.length; },
-                    enumerable: true,
-                    configurable: true
-                });
-                Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };
-                Map.prototype.get = function (key) {
-                    var index = this._find(key, /*insert*/ false);
-                    return index >= 0 ? this._values[index] : undefined;
-                };
-                Map.prototype.set = function (key, value) {
-                    var index = this._find(key, /*insert*/ true);
-                    this._values[index] = value;
-                    return this;
-                };
-                Map.prototype.delete = function (key) {
-                    var index = this._find(key, /*insert*/ false);
-                    if (index >= 0) {
-                        var size = this._keys.length;
-                        for (var i = index + 1; i < size; i++) {
-                            this._keys[i - 1] = this._keys[i];
-                            this._values[i - 1] = this._values[i];
-                        }
-                        this._keys.length--;
-                        this._values.length--;
-                        if (key === this._cacheKey) {
-                            this._cacheKey = cacheSentinel;
-                            this._cacheIndex = -2;
-                        }
-                        return true;
-                    }
-                    return false;
-                };
-                Map.prototype.clear = function () {
-                    this._keys.length = 0;
-                    this._values.length = 0;
-                    this._cacheKey = cacheSentinel;
-                    this._cacheIndex = -2;
-                };
-                Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };
-                Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };
-                Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };
-                Map.prototype["@@iterator"] = function () { return this.entries(); };
-                Map.prototype[iteratorSymbol] = function () { return this.entries(); };
-                Map.prototype._find = function (key, insert) {
-                    if (this._cacheKey !== key) {
-                        this._cacheIndex = this._keys.indexOf(this._cacheKey = key);
-                    }
-                    if (this._cacheIndex < 0 && insert) {
-                        this._cacheIndex = this._keys.length;
-                        this._keys.push(key);
-                        this._values.push(undefined);
-                    }
-                    return this._cacheIndex;
-                };
-                return Map;
-            }());
-            function getKey(key, _) {
-                return key;
-            }
-            function getValue(_, value) {
-                return value;
-            }
-            function getEntry(key, value) {
-                return [key, value];
-            }
-        }
-        // naive Set shim
-        function CreateSetPolyfill() {
-            return (function () {
-                function Set() {
-                    this._map = new _Map();
-                }
-                Object.defineProperty(Set.prototype, "size", {
-                    get: function () { return this._map.size; },
-                    enumerable: true,
-                    configurable: true
-                });
-                Set.prototype.has = function (value) { return this._map.has(value); };
-                Set.prototype.add = function (value) { return this._map.set(value, value), this; };
-                Set.prototype.delete = function (value) { return this._map.delete(value); };
-                Set.prototype.clear = function () { this._map.clear(); };
-                Set.prototype.keys = function () { return this._map.keys(); };
-                Set.prototype.values = function () { return this._map.values(); };
-                Set.prototype.entries = function () { return this._map.entries(); };
-                Set.prototype["@@iterator"] = function () { return this.keys(); };
-                Set.prototype[iteratorSymbol] = function () { return this.keys(); };
-                return Set;
-            }());
-        }
-        // naive WeakMap shim
-        function CreateWeakMapPolyfill() {
-            var UUID_SIZE = 16;
-            var keys = HashMap.create();
-            var rootKey = CreateUniqueKey();
-            return (function () {
-                function WeakMap() {
-                    this._key = CreateUniqueKey();
-                }
-                WeakMap.prototype.has = function (target) {
-                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
-                    return table !== undefined ? HashMap.has(table, this._key) : false;
-                };
-                WeakMap.prototype.get = function (target) {
-                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
-                    return table !== undefined ? HashMap.get(table, this._key) : undefined;
-                };
-                WeakMap.prototype.set = function (target, value) {
-                    var table = GetOrCreateWeakMapTable(target, /*create*/ true);
-                    table[this._key] = value;
-                    return this;
-                };
-                WeakMap.prototype.delete = function (target) {
-                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
-                    return table !== undefined ? delete table[this._key] : false;
-                };
-                WeakMap.prototype.clear = function () {
-                    // NOTE: not a real clear, just makes the previous data unreachable
-                    this._key = CreateUniqueKey();
-                };
-                return WeakMap;
-            }());
-            function CreateUniqueKey() {
-                var key;
-                do
-                    key = "@@WeakMap@@" + CreateUUID();
-                while (HashMap.has(keys, key));
-                keys[key] = true;
-                return key;
-            }
-            function GetOrCreateWeakMapTable(target, create) {
-                if (!hasOwn.call(target, rootKey)) {
-                    if (!create)
-                        return undefined;
-                    Object.defineProperty(target, rootKey, { value: HashMap.create() });
-                }
-                return target[rootKey];
-            }
-            function FillRandomBytes(buffer, size) {
-                for (var i = 0; i < size; ++i)
-                    buffer[i] = Math.random() * 0xff | 0;
-                return buffer;
-            }
-            function GenRandomBytes(size) {
-                if (typeof Uint8Array === "function") {
-                    if (typeof crypto !== "undefined")
-                        return crypto.getRandomValues(new Uint8Array(size));
-                    if (typeof msCrypto !== "undefined")
-                        return msCrypto.getRandomValues(new Uint8Array(size));
-                    return FillRandomBytes(new Uint8Array(size), size);
-                }
-                return FillRandomBytes(new Array(size), size);
-            }
-            function CreateUUID() {
-                var data = GenRandomBytes(UUID_SIZE);
-                // mark as random - RFC 4122 § 4.4
-                data[6] = data[6] & 0x4f | 0x40;
-                data[8] = data[8] & 0xbf | 0x80;
-                var result = "";
-                for (var offset = 0; offset < UUID_SIZE; ++offset) {
-                    var byte = data[offset];
-                    if (offset === 4 || offset === 6 || offset === 8)
-                        result += "-";
-                    if (byte < 16)
-                        result += "0";
-                    result += byte.toString(16).toLowerCase();
-                }
-                return result;
-            }
-        }
-        // uses a heuristic used by v8 and chakra to force an object into dictionary mode.
-        function MakeDictionary(obj) {
-            obj.__ = undefined;
-            delete obj.__;
-            return obj;
-        }
-    });
-})(Reflect || (Reflect = {}));
-//# sourceMappingURL=Reflect.js.map
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(239), __webpack_require__(309)))
-
-/***/ }),
-/* 242 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-    value: true
-});
-
-exports.default = function (html) {
-    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
-
-
-    var context = options.context || document;
-
-    // If there's nothing here, return null;
-    if (!html) {
-        return null;
-    }
-
-    // Maintain a list of created vnodes so we can call the create hook.
-    var createdVNodes = [];
-
-    // Parse the string into the AST and convert to VNodes.
-    var vnodes = convertNodes((0, _parse2.default)(html), createdVNodes, context);
-
-    var res = void 0;
-    if (!vnodes) {
-        // If there are no vnodes but there is string content, then the string
-        // must be just text or at least invalid HTML that we should treat as
-        // text (since the AST parser didn't find any well-formed HTML).
-        res = toVNode({ type: 'text', content: html }, createdVNodes, context);
-    } else if (vnodes.length === 1) {
-        // If there's only one root node, just return it as opposed to an array.
-        res = vnodes[0];
-    } else {
-        // Otherwise we have an array of VNodes, which we should return.
-        res = vnodes;
-    }
-
-    // Call the 'create' hook for each created node.
-    options.hooks && options.hooks.create && createdVNodes.forEach(function (node) {
-        options.hooks.create(node);
-    });
-    return res;
-};
-
-var _parse = __webpack_require__(212);
-
-var _parse2 = _interopRequireDefault(_parse);
-
-var _h = __webpack_require__(245);
-
-var _h2 = _interopRequireDefault(_h);
-
-var _utils = __webpack_require__(243);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function convertNodes(nodes, createdVNodes, context) {
-    if (nodes instanceof Array && nodes.length > 0) {
-        return nodes.map(function (node) {
-            return toVNode(node, createdVNodes, context);
-        });
-    } else {
-        return undefined;
-    }
-}
-
-function toVNode(node, createdVNodes, context) {
-    var newNode = void 0;
-    if (node.type === 'text') {
-        newNode = (0, _utils.createTextVNode)(node.content, context);
-    } else {
-        newNode = (0, _h2.default)(node.name, buildVNodeData(node, context), convertNodes(node.children, createdVNodes, context));
-    }
-    createdVNodes.push(newNode);
-    return newNode;
-}
-
-function buildVNodeData(node, context) {
-    var data = {};
-    if (!node.attrs) {
-        return data;
-    }
-
-    var attrs = Object.keys(node.attrs).reduce(function (memo, name) {
-        if (name !== 'style' && name !== 'class') {
-            var val = (0, _utils.unescapeEntities)(node.attrs[name], context);
-            memo ? memo[name] = val : memo = _defineProperty({}, name, val);
-        }
-        return memo;
-    }, null);
-    if (attrs) {
-        data.attrs = attrs;
-    }
-
-    var style = parseStyle(node);
-    if (style) {
-        data.style = style;
-    }
-
-    var classes = parseClass(node);
-    if (classes) {
-        data.class = classes;
-    }
-
-    return data;
-}
-
-function parseStyle(node) {
-    try {
-        return node.attrs.style.split(';').reduce(function (memo, styleProp) {
-            var res = styleProp.split(':');
-            var name = (0, _utils.transformName)(res[0].trim());
-            if (name) {
-                var val = res[1].replace('!important', '').trim();
-                memo ? memo[name] = val : memo = _defineProperty({}, name, val);
-            }
-            return memo;
-        }, null);
-    } catch (e) {
-        return null;
-    }
-}
-
-function parseClass(node) {
-    try {
-        return node.attrs.class.split(' ').reduce(function (memo, className) {
-            className = className.trim();
-            if (className) {
-                memo ? memo[className] = true : memo = _defineProperty({}, className, true);
-            }
-            return memo;
-        }, null);
-    } catch (e) {
-        return null;
-    }
-}
-
-/***/ }),
-/* 243 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-    value: true
-});
-exports.createTextVNode = createTextVNode;
-exports.transformName = transformName;
-exports.unescapeEntities = unescapeEntities;
-
-var _vnode = __webpack_require__(128);
-
-var _vnode2 = _interopRequireDefault(_vnode);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function createTextVNode(text, context) {
-    return (0, _vnode2.default)(undefined, undefined, undefined, unescapeEntities(text, context));
-}
-
-function transformName(name) {
-    // Replace -a with A to help camel case style property names.
-    name = name.replace(/-(\w)/g, function _replace($1, $2) {
-        return $2.toUpperCase();
-    });
-    // Handle properties that start with a -.
-    var firstChar = name.charAt(0).toLowerCase();
-    return '' + firstChar + name.substring(1);
-}
-
-// Regex for matching HTML entities.
-var entityRegex = new RegExp('&[a-z0-9#]+;', 'gi');
-// Element for setting innerHTML for transforming entities.
-var el = null;
-
-function unescapeEntities(text, context) {
-    // Create the element using the context if it doesn't exist.
-    if (!el) {
-        el = context.createElement('div');
-    }
-    return text.replace(entityRegex, function (entity) {
-        el.innerHTML = entity;
-        return el.textContent;
-    });
-}
-
-/***/ }),
-/* 244 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__(242);
-
-
-/***/ }),
-/* 245 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var vnode_1 = __webpack_require__(128);
-var is = __webpack_require__(246);
-function addNS(data, children, sel) {
-    data.ns = 'http://www.w3.org/2000/svg';
-    if (sel !== 'foreignObject' && children !== undefined) {
-        for (var i = 0; i < children.length; ++i) {
-            var childData = children[i].data;
-            if (childData !== undefined) {
-                addNS(childData, children[i].children, children[i].sel);
-            }
-        }
-    }
-}
-function h(sel, b, c) {
-    var data = {}, children, text, i;
-    if (c !== undefined) {
-        data = b;
-        if (is.array(c)) {
-            children = c;
-        }
-        else if (is.primitive(c)) {
-            text = c;
-        }
-        else if (c && c.sel) {
-            children = [c];
-        }
-    }
-    else if (b !== undefined) {
-        if (is.array(b)) {
-            children = b;
-        }
-        else if (is.primitive(b)) {
-            text = b;
-        }
-        else if (b && b.sel) {
-            children = [b];
-        }
-        else {
-            data = b;
-        }
-    }
-    if (is.array(children)) {
-        for (i = 0; i < children.length; ++i) {
-            if (is.primitive(children[i]))
-                children[i] = vnode_1.vnode(undefined, undefined, undefined, children[i], undefined);
-        }
-    }
-    if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&
-        (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {
-        addNS(data, children, sel);
-    }
-    return vnode_1.vnode(sel, data, children, text, undefined);
-}
-exports.h = h;
-;
-exports.default = h;
-//# sourceMappingURL=h.js.map
-
-/***/ }),
-/* 246 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.array = Array.isArray;
-function primitive(s) {
-    return typeof s === 'string' || typeof s === 'number';
-}
-exports.primitive = primitive;
-//# sourceMappingURL=is.js.map
-
-/***/ }),
-/* 247 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var types_1 = __webpack_require__(1);
-function overrideCommandStackOptions(container, options) {
-    var defaultOptions = container.get(types_1.TYPES.CommandStackOptions);
-    for (var p in options) {
-        defaultOptions[p] = options[p];
-    }
-    return defaultOptions;
-}
-exports.overrideCommandStackOptions = overrideCommandStackOptions;
-//# sourceMappingURL=command-stack-options.js.map
-
-/***/ }),
-/* 248 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var smodel_storage_1 = __webpack_require__(87);
-var types_1 = __webpack_require__(1);
-var initialize_canvas_1 = __webpack_require__(60);
-var logging_1 = __webpack_require__(103);
-var action_dispatcher_1 = __webpack_require__(85);
-var action_handler_1 = __webpack_require__(38);
-var command_stack_1 = __webpack_require__(130);
-var smodel_factory_1 = __webpack_require__(17);
-var animation_frame_syncer_1 = __webpack_require__(48);
-var viewer_1 = __webpack_require__(134);
-var mouse_tool_1 = __webpack_require__(30);
-var key_tool_1 = __webpack_require__(35);
-var vnode_decorators_1 = __webpack_require__(135);
-var view_1 = __webpack_require__(132);
-var viewer_cache_1 = __webpack_require__(133);
-var dom_helper_1 = __webpack_require__(88);
-var id_decorator_1 = __webpack_require__(249);
-var command_1 = __webpack_require__(8);
-var defaultContainerModule = new inversify_1.ContainerModule(function (bind) {
-    // Logging ---------------------------------------------
-    bind(types_1.TYPES.ILogger).to(logging_1.NullLogger).inSingletonScope();
-    bind(types_1.TYPES.LogLevel).toConstantValue(logging_1.LogLevel.warn);
-    // Registries ---------------------------------------------
-    bind(types_1.TYPES.ActionHandlerRegistry).to(action_handler_1.ActionHandlerRegistry).inSingletonScope();
-    bind(types_1.TYPES.ViewRegistry).to(view_1.ViewRegistry).inSingletonScope();
-    // Model Creation ---------------------------------------------
-    bind(types_1.TYPES.IModelFactory).to(smodel_factory_1.SModelFactory).inSingletonScope();
-    // Action Dispatcher ---------------------------------------------
-    bind(types_1.TYPES.IActionDispatcher).to(action_dispatcher_1.ActionDispatcher).inSingletonScope();
-    bind(types_1.TYPES.IActionDispatcherProvider).toProvider(function (context) {
-        return function () {
-            return new Promise(function (resolve) {
-                resolve(context.container.get(types_1.TYPES.IActionDispatcher));
-            });
-        };
-    });
-    // Action handler
-    bind(types_1.TYPES.IActionHandlerInitializer).to(command_1.CommandActionHandlerInitializer);
-    // Command Stack ---------------------------------------------
-    bind(types_1.TYPES.ICommandStack).to(command_stack_1.CommandStack).inSingletonScope();
-    bind(types_1.TYPES.ICommandStackProvider).toProvider(function (context) {
-        return function () {
-            return new Promise(function (resolve) {
-                resolve(context.container.get(types_1.TYPES.ICommandStack));
-            });
-        };
-    });
-    bind(types_1.TYPES.CommandStackOptions).toConstantValue({
-        defaultDuration: 250,
-        undoHistoryLimit: 50
-    });
-    // Viewer ---------------------------------------------
-    bind(viewer_1.Viewer).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IViewer).toDynamicValue(function (context) {
-        return context.container.get(viewer_1.Viewer);
-    }).inSingletonScope().whenTargetNamed('delegate');
-    bind(viewer_cache_1.ViewerCache).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IViewer).toDynamicValue(function (context) {
-        return context.container.get(viewer_cache_1.ViewerCache);
-    }).inSingletonScope().whenTargetIsDefault();
-    bind(types_1.TYPES.IViewerProvider).toProvider(function (context) {
-        return function () {
-            return new Promise(function (resolve) {
-                resolve(context.container.get(types_1.TYPES.IViewer));
-            });
-        };
-    });
-    bind(types_1.TYPES.ViewerOptions).toConstantValue({
-        baseDiv: 'sprotty',
-        baseClass: 'sprotty',
-        hiddenDiv: 'sprotty-hidden',
-        hiddenClass: 'sprotty-hidden',
-        popupDiv: 'sprotty-popup',
-        popupClass: 'sprotty-popup',
-        popupClosedClass: 'sprotty-popup-closed',
-        needsClientLayout: true,
-        needsServerLayout: false,
-        popupOpenDelay: 700,
-        popupCloseDelay: 300
-    });
-    bind(types_1.TYPES.DOMHelper).to(dom_helper_1.DOMHelper).inSingletonScope();
-    bind(types_1.TYPES.ModelRendererFactory).toFactory(function (context) {
-        return function (decorators) {
-            var viewRegistry = context.container.get(types_1.TYPES.ViewRegistry);
-            return new viewer_1.ModelRenderer(viewRegistry, decorators);
-        };
-    });
-    // Tools & Decorators --------------------------------------
-    bind(id_decorator_1.IdDecorator).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(id_decorator_1.IdDecorator);
-    }).inSingletonScope();
-    bind(mouse_tool_1.MouseTool).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(mouse_tool_1.MouseTool);
-    }).inSingletonScope();
-    bind(key_tool_1.KeyTool).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(key_tool_1.KeyTool);
-    }).inSingletonScope();
-    bind(vnode_decorators_1.FocusFixDecorator).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(vnode_decorators_1.FocusFixDecorator);
-    }).inSingletonScope();
-    bind(types_1.TYPES.PopupVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(id_decorator_1.IdDecorator);
-    }).inSingletonScope();
-    bind(mouse_tool_1.PopupMouseTool).toSelf().inSingletonScope();
-    bind(types_1.TYPES.PopupVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(mouse_tool_1.PopupMouseTool);
-    }).inSingletonScope();
-    bind(types_1.TYPES.HiddenVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(id_decorator_1.IdDecorator);
-    }).inSingletonScope();
-    // Animation Frame Sync ------------------------------------------
-    bind(types_1.TYPES.AnimationFrameSyncer).to(animation_frame_syncer_1.AnimationFrameSyncer).inSingletonScope();
-    // Canvas Initialization ---------------------------------------------
-    bind(types_1.TYPES.ICommand).toConstructor(initialize_canvas_1.InitializeCanvasBoundsCommand);
-    bind(initialize_canvas_1.CanvasBoundsInitializer).toSelf().inSingletonScope();
-    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {
-        return context.container.get(initialize_canvas_1.CanvasBoundsInitializer);
-    }).inSingletonScope();
-    bind(types_1.TYPES.SModelStorage).to(smodel_storage_1.SModelStorage).inSingletonScope();
-});
-exports.default = defaultContainerModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 249 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var dom_helper_1 = __webpack_require__(88);
-var vnode_utils_1 = __webpack_require__(18);
-var IdDecorator = /** @class */ (function () {
-    function IdDecorator(logger, domHelper) {
-        this.logger = logger;
-        this.domHelper = domHelper;
-    }
-    IdDecorator.prototype.decorate = function (vnode, element) {
-        var attrs = vnode_utils_1.getAttrs(vnode);
-        if (attrs.id !== undefined)
-            this.logger.warn(vnode, 'Overriding id of vnode (' + attrs.id + '). Make sure not to set it manually in view.');
-        attrs.id = this.domHelper.createUniqueDOMElementId(element);
-        if (!vnode.key)
-            vnode.key = element.id;
-        return vnode;
-    };
-    IdDecorator.prototype.postUpdate = function () {
-    };
-    IdDecorator = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ILogger)),
-        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),
-        __metadata("design:paramtypes", [Object, dom_helper_1.DOMHelper])
-    ], IdDecorator);
-    return IdDecorator;
-}());
-exports.IdDecorator = IdDecorator;
-//# sourceMappingURL=id-decorator.js.map
-
-/***/ }),
-/* 250 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var types_1 = __webpack_require__(1);
-function overrideViewerOptions(container, options) {
-    var defaultOptions = container.get(types_1.TYPES.ViewerOptions);
-    for (var p in options) {
-        defaultOptions[p] = options[p];
-    }
-    return defaultOptions;
-}
-exports.overrideViewerOptions = overrideViewerOptions;
-//# sourceMappingURL=viewer-options.js.map
-
-/***/ }),
-/* 251 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var bounds_manipulation_1 = __webpack_require__(50);
-var hidden_bounds_updater_1 = __webpack_require__(252);
-var layout_1 = __webpack_require__(90);
-var boundsModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.ICommand).toConstructor(bounds_manipulation_1.SetBoundsCommand);
-    bind(types_1.TYPES.ICommand).toConstructor(bounds_manipulation_1.RequestBoundsCommand);
-    bind(types_1.TYPES.HiddenVNodeDecorator).to(hidden_bounds_updater_1.HiddenBoundsUpdater).inSingletonScope();
-    bind(types_1.TYPES.Layouter).to(layout_1.Layouter).inSingletonScope();
-    bind(types_1.TYPES.LayoutRegistry).to(layout_1.LayoutRegistry).inSingletonScope();
-});
-exports.default = boundsModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 252 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var geometry_1 = __webpack_require__(3);
-var smodel_1 = __webpack_require__(2);
-var bounds_manipulation_1 = __webpack_require__(50);
-var model_1 = __webpack_require__(9);
-var layout_1 = __webpack_require__(90);
-var model_2 = __webpack_require__(62);
-var BoundsData = /** @class */ (function () {
-    function BoundsData() {
-    }
-    return BoundsData;
-}());
-exports.BoundsData = BoundsData;
-/**
- * Grabs the bounds from hidden SVG DOM elements, applies layouts and fires
- * ComputedBoundsActions.
- *
- * The actual bounds of an element can usually not be determined from the SModel
- * as they depend on the view implementation and CSS stylings. So the best way is
- * to grab them from a live (but hidden) SVG using getBBox().
- *
- * If an element is Alignable, and the top-left corner of its bounding box is not
- * the origin, we also issue a realign with the ComputedBoundsAction.
- */
-var HiddenBoundsUpdater = /** @class */ (function () {
-    function HiddenBoundsUpdater(actionDispatcher, layouter) {
-        this.actionDispatcher = actionDispatcher;
-        this.layouter = layouter;
-        this.element2boundsData = new Map;
-    }
-    HiddenBoundsUpdater.prototype.decorate = function (vnode, element) {
-        if (model_1.isSizeable(element) || model_1.isLayoutContainer(element)) {
-            this.element2boundsData.set(element, {
-                vnode: vnode,
-                bounds: element.bounds,
-                boundsChanged: false,
-                alignmentChanged: false
-            });
-        }
-        if (element instanceof smodel_1.SModelRoot)
-            this.root = element;
-        return vnode;
-    };
-    HiddenBoundsUpdater.prototype.postUpdate = function () {
-        if (this.root !== undefined && model_2.isExportable(this.root) && this.root.export)
-            return;
-        this.getBoundsFromDOM();
-        this.layouter.layout(this.element2boundsData);
-        var resizes = [];
-        var realignments = [];
-        this.element2boundsData.forEach(function (boundsData, element) {
-            if (boundsData.boundsChanged && boundsData.bounds !== undefined)
-                resizes.push({
-                    elementId: element.id,
-                    newBounds: boundsData.bounds
-                });
-            if (boundsData.alignmentChanged && boundsData.alignment !== undefined)
-                realignments.push({
-                    elementId: element.id,
-                    newAlignment: boundsData.alignment
-                });
-        });
-        var revision = (this.root !== undefined) ? this.root.revision : undefined;
-        this.actionDispatcher.dispatch(new bounds_manipulation_1.ComputedBoundsAction(resizes, revision, realignments));
-        this.element2boundsData.clear();
-    };
-    HiddenBoundsUpdater.prototype.getBoundsFromDOM = function () {
-        var _this = this;
-        this.element2boundsData.forEach(function (boundsData, element) {
-            if (boundsData.bounds && model_1.isSizeable(element)) {
-                var vnode = boundsData.vnode;
-                if (vnode && vnode.elm) {
-                    var boundingBox = _this.getBounds(vnode.elm, element);
-                    if (model_1.isAlignable(element) && !(geometry_1.almostEquals(boundingBox.x, 0) && geometry_1.almostEquals(boundingBox.y, 0))) {
-                        boundsData.alignment = {
-                            x: -boundingBox.x,
-                            y: -boundingBox.y
-                        };
-                        boundsData.alignmentChanged = true;
-                    }
-                    var newBounds = {
-                        x: element.bounds.x,
-                        y: element.bounds.y,
-                        width: boundingBox.width,
-                        height: boundingBox.height
-                    };
-                    if (!(geometry_1.almostEquals(newBounds.x, element.bounds.x)
-                        && geometry_1.almostEquals(newBounds.y, element.bounds.y)
-                        && geometry_1.almostEquals(newBounds.width, element.bounds.width)
-                        && geometry_1.almostEquals(newBounds.height, element.bounds.height))) {
-                        boundsData.bounds = newBounds;
-                        boundsData.boundsChanged = true;
-                    }
-                }
-            }
-        });
-    };
-    HiddenBoundsUpdater.prototype.getBounds = function (elm, element) {
-        var bounds = elm.getBBox();
-        return {
-            x: bounds.x,
-            y: bounds.y,
-            width: bounds.width,
-            height: bounds.height
-        };
-    };
-    HiddenBoundsUpdater = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.Layouter)),
-        __metadata("design:paramtypes", [Object, layout_1.Layouter])
-    ], HiddenBoundsUpdater);
-    return HiddenBoundsUpdater;
-}());
-exports.HiddenBoundsUpdater = HiddenBoundsUpdater;
-//# sourceMappingURL=hidden-bounds-updater.js.map
-
-/***/ }),
-/* 253 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
-* Copyright (C) 2017 TypeFox and others.
-*
-* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-*/
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var animation_1 = __webpack_require__(39);
-var ResizeAnimation = /** @class */ (function (_super) {
-    __extends(ResizeAnimation, _super);
-    function ResizeAnimation(model, elementResizes, context, reverse) {
-        if (reverse === void 0) { reverse = false; }
-        var _this = _super.call(this, context) || this;
-        _this.model = model;
-        _this.elementResizes = elementResizes;
-        _this.reverse = reverse;
-        return _this;
-    }
-    ResizeAnimation.prototype.tween = function (t) {
-        var _this = this;
-        this.elementResizes.forEach(function (elementResize) {
-            var element = elementResize.element;
-            var newDimension = (_this.reverse) ? {
-                width: (1 - t) * elementResize.toDimension.width + t * elementResize.fromDimension.width,
-                height: (1 - t) * elementResize.toDimension.height + t * elementResize.fromDimension.height
-            } : {
-                width: (1 - t) * elementResize.fromDimension.width + t * elementResize.toDimension.width,
-                height: (1 - t) * elementResize.fromDimension.height + t * elementResize.toDimension.height
-            };
-            element.bounds = {
-                x: element.bounds.x,
-                y: element.bounds.y,
-                width: newDimension.width,
-                height: newDimension.height
-            };
-        });
-        return this.model;
-    };
-    return ResizeAnimation;
-}(animation_1.Animation));
-exports.ResizeAnimation = ResizeAnimation;
-//# sourceMappingURL=resize.js.map
-
-/***/ }),
-/* 254 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var button_handler_1 = __webpack_require__(91);
-var buttonModule = new inversify_1.ContainerModule(function (bind) {
-    bind(button_handler_1.ButtonHandlerRegistry).toSelf().inSingletonScope();
-});
-exports.default = buttonModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 255 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var expand_1 = __webpack_require__(61);
-var expandModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.IButtonHandler).toConstructor(expand_1.ExpandButtonHandler);
-});
-exports.default = expandModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 256 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var model_1 = __webpack_require__(93);
-var smodel_utils_1 = __webpack_require__(13);
-var JSX = { createElement: snabbdom.svg };
-var ExpandButtonView = /** @class */ (function () {
-    function ExpandButtonView() {
-    }
-    ExpandButtonView.prototype.render = function (button, context) {
-        var expandable = smodel_utils_1.findParentByFeature(button, model_1.isExpandable);
-        var path = (expandable !== undefined && expandable.expanded)
-            ? 'M 1,5 L 8,12 L 15,5 Z'
-            : 'M 1,8 L 8,15 L 8,1 Z';
-        return JSX.createElement("g", { "class-sprotty-button": "{true}", "class-enabled": "{button.enabled}" },
-            JSX.createElement("rect", { x: 0, y: 0, width: 16, height: 16, opacity: 0 }),
-            JSX.createElement("path", { d: path }));
-    };
-    return ExpandButtonView;
-}());
-exports.ExpandButtonView = ExpandButtonView;
-//# sourceMappingURL=views.js.map
-
-/***/ }),
-/* 257 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var export_1 = __webpack_require__(139);
-var svg_exporter_1 = __webpack_require__(40);
-var exportSvgModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.KeyListener).to(export_1.ExportSvgKeyListener).inSingletonScope();
-    bind(types_1.TYPES.HiddenVNodeDecorator).to(export_1.ExportSvgDecorator).inSingletonScope();
-    bind(types_1.TYPES.ICommand).toConstructor(export_1.ExportSvgCommand);
-    bind(types_1.TYPES.SvgExporter).to(svg_exporter_1.SvgExporter).inSingletonScope();
-});
-exports.default = exportSvgModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 258 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var fade_1 = __webpack_require__(94);
-var fadeModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.IVNodeDecorator).to(fade_1.ElementFader).inSingletonScope();
-});
-exports.default = fadeModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 259 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var hover_1 = __webpack_require__(52);
-var popup_position_updater_1 = __webpack_require__(261);
-var initializer_1 = __webpack_require__(260);
-var hoverModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.PopupVNodeDecorator).to(popup_position_updater_1.PopupPositionUpdater).inSingletonScope();
-    bind(types_1.TYPES.IActionHandlerInitializer).to(initializer_1.PopupActionHandlerInitializer);
-    bind(types_1.TYPES.ICommand).toConstructor(hover_1.HoverFeedbackCommand);
-    bind(types_1.TYPES.ICommand).toConstructor(hover_1.SetPopupModelCommand);
-    bind(types_1.TYPES.MouseListener).to(hover_1.HoverMouseListener);
-    bind(types_1.TYPES.PopupMouseListener).to(hover_1.PopupHoverMouseListener);
-    bind(types_1.TYPES.KeyListener).to(hover_1.HoverKeyListener);
-    bind(types_1.TYPES.HoverState).toConstantValue({
-        mouseOverTimer: undefined,
-        mouseOutTimer: undefined,
-        popupOpen: false,
-        previousPopupElement: undefined
-    });
-});
-exports.default = hoverModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 260 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var hover_1 = __webpack_require__(52);
-var smodel_factory_1 = __webpack_require__(17);
-var center_fit_1 = __webpack_require__(99);
-var viewport_1 = __webpack_require__(42);
-var move_1 = __webpack_require__(64);
-var ClosePopupActionHandler = /** @class */ (function () {
-    function ClosePopupActionHandler() {
-        this.popupOpen = false;
-    }
-    ClosePopupActionHandler.prototype.handle = function (action) {
-        if (action.kind === hover_1.SetPopupModelCommand.KIND) {
-            this.popupOpen = action.newRoot.type !== smodel_factory_1.EMPTY_ROOT.type;
-        }
-        else if (this.popupOpen) {
-            return new hover_1.SetPopupModelAction({ id: smodel_factory_1.EMPTY_ROOT.id, type: smodel_factory_1.EMPTY_ROOT.type });
-        }
-    };
-    return ClosePopupActionHandler;
-}());
-var PopupActionHandlerInitializer = /** @class */ (function () {
-    function PopupActionHandlerInitializer() {
-    }
-    PopupActionHandlerInitializer.prototype.initialize = function (registry) {
-        var closePopupActionHandler = new ClosePopupActionHandler();
-        registry.register(center_fit_1.FitToScreenCommand.KIND, closePopupActionHandler);
-        registry.register(center_fit_1.CenterCommand.KIND, closePopupActionHandler);
-        registry.register(viewport_1.ViewportCommand.KIND, closePopupActionHandler);
-        registry.register(hover_1.SetPopupModelCommand.KIND, closePopupActionHandler);
-        registry.register(move_1.MoveCommand.KIND, closePopupActionHandler);
-    };
-    PopupActionHandlerInitializer = __decorate([
-        inversify_1.injectable()
-    ], PopupActionHandlerInitializer);
-    return PopupActionHandlerInitializer;
-}());
-exports.PopupActionHandlerInitializer = PopupActionHandlerInitializer;
-//# sourceMappingURL=initializer.js.map
-
-/***/ }),
-/* 261 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var PopupPositionUpdater = /** @class */ (function () {
-    function PopupPositionUpdater(options) {
-        this.options = options;
-    }
-    PopupPositionUpdater.prototype.decorate = function (vnode, element) {
-        return vnode;
-    };
-    PopupPositionUpdater.prototype.postUpdate = function () {
-        var popupDiv = document.getElementById(this.options.popupDiv);
-        if (popupDiv !== null && typeof window !== 'undefined') {
-            var boundingClientRect = popupDiv.getBoundingClientRect();
-            if (window.innerHeight < boundingClientRect.height + boundingClientRect.top) {
-                popupDiv.style.top = (window.scrollY + window.innerHeight - boundingClientRect.height - 5) + 'px';
-            }
-            if (window.innerWidth < boundingClientRect.left + boundingClientRect.width) {
-                popupDiv.style.left = (window.scrollX + window.innerWidth - boundingClientRect.width - 5) + 'px';
-            }
-            if (boundingClientRect.left < 0) {
-                popupDiv.style.left = '0px';
-            }
-            if (boundingClientRect.top < 0) {
-                popupDiv.style.top = '0px';
-            }
-        }
-    };
-    PopupPositionUpdater = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __metadata("design:paramtypes", [Object])
-    ], PopupPositionUpdater);
-    return PopupPositionUpdater;
-}());
-exports.PopupPositionUpdater = PopupPositionUpdater;
-//# sourceMappingURL=popup-position-updater.js.map
-
-/***/ }),
-/* 262 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var move_1 = __webpack_require__(64);
-var moveModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.MouseListener).to(move_1.MoveMouseListener);
-    bind(types_1.TYPES.ICommand).toConstructor(move_1.MoveCommand);
-    bind(types_1.TYPES.IVNodeDecorator).to(move_1.LocationDecorator);
-    bind(types_1.TYPES.HiddenVNodeDecorator).to(move_1.LocationDecorator);
-});
-exports.default = moveModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 263 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var open_1 = __webpack_require__(95);
-var openModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.MouseListener).to(open_1.OpenMouseListener);
-});
-exports.default = openModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 264 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var select_1 = __webpack_require__(141);
-var selectModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.ICommand).toConstructor(select_1.SelectCommand);
-    bind(types_1.TYPES.ICommand).toConstructor(select_1.SelectAllCommand);
-    bind(types_1.TYPES.KeyListener).to(select_1.SelectKeyboardListener);
-    bind(types_1.TYPES.MouseListener).to(select_1.SelectMouseListener);
-});
-exports.default = selectModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 265 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var undo_redo_1 = __webpack_require__(96);
-var undoRedoModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.KeyListener).to(undo_redo_1.UndoRedoKeyListener);
-});
-exports.default = undoRedoModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 266 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var center_fit_1 = __webpack_require__(99);
-var viewport_1 = __webpack_require__(42);
-var scroll_1 = __webpack_require__(142);
-var zoom_1 = __webpack_require__(143);
-var viewportModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.ICommand).toConstructor(center_fit_1.CenterCommand);
-    bind(types_1.TYPES.ICommand).toConstructor(center_fit_1.FitToScreenCommand);
-    bind(types_1.TYPES.ICommand).toConstructor(viewport_1.ViewportCommand);
-    bind(types_1.TYPES.KeyListener).to(center_fit_1.CenterKeyboardListener);
-    bind(types_1.TYPES.MouseListener).to(scroll_1.ScrollMouseListener);
-    bind(types_1.TYPES.MouseListener).to(zoom_1.ZoomMouseListener);
-});
-exports.default = viewportModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 267 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var smodel_factory_1 = __webpack_require__(17);
-var smodel_utils_1 = __webpack_require__(13);
-var sgraph_1 = __webpack_require__(101);
-var model_1 = __webpack_require__(92);
-var SGraphFactory = /** @class */ (function (_super) {
-    __extends(SGraphFactory, _super);
-    function SGraphFactory() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    SGraphFactory.prototype.createElement = function (schema, parent) {
-        if (this.isNodeSchema(schema))
-            return this.initializeChild(new sgraph_1.SNode(), schema, parent);
-        else if (this.isPortSchema(schema))
-            return this.initializeChild(new sgraph_1.SPort(), schema, parent);
-        else if (this.isEdgeSchema(schema))
-            return this.initializeChild(new sgraph_1.SEdge(), schema, parent);
-        else if (this.isLabelSchema(schema))
-            return this.initializeChild(new sgraph_1.SLabel(), schema, parent);
-        else if (this.isCompartmentSchema(schema))
-            return this.initializeChild(new sgraph_1.SCompartment(), schema, parent);
-        if (this.isButtonSchema(schema))
-            return this.initializeChild(new model_1.SButton(), schema, parent);
-        else
-            return _super.prototype.createElement.call(this, schema, parent);
-    };
-    SGraphFactory.prototype.createRoot = function (schema) {
-        if (this.isGraphSchema(schema))
-            return this.initializeRoot(new sgraph_1.SGraph(), schema);
-        else
-            return _super.prototype.createRoot.call(this, schema);
-    };
-    SGraphFactory.prototype.isGraphSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'graph';
-    };
-    SGraphFactory.prototype.isNodeSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'node';
-    };
-    SGraphFactory.prototype.isPortSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'port';
-    };
-    SGraphFactory.prototype.isEdgeSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'edge';
-    };
-    SGraphFactory.prototype.isLabelSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'label';
-    };
-    SGraphFactory.prototype.isCompartmentSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'comp';
-    };
-    SGraphFactory.prototype.isButtonSchema = function (schema) {
-        return smodel_utils_1.getBasicType(schema) === 'button';
-    };
-    SGraphFactory = __decorate([
-        inversify_1.injectable()
-    ], SGraphFactory);
-    return SGraphFactory;
-}(smodel_factory_1.SModelFactory));
-exports.SGraphFactory = SGraphFactory;
-//# sourceMappingURL=sgraph-factory.js.map
-
-/***/ }),
-/* 268 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var strings_1 = __webpack_require__(244);
-var PreRenderedView = /** @class */ (function () {
-    function PreRenderedView() {
-    }
-    PreRenderedView.prototype.render = function (model, context) {
-        var node = strings_1.default(model.code);
-        this.correctNamespace(node);
-        return node;
-    };
-    PreRenderedView.prototype.correctNamespace = function (node) {
-        if (node.sel === 'svg' || node.sel === 'g')
-            this.setNamespace(node, 'http://www.w3.org/2000/svg');
-    };
-    PreRenderedView.prototype.setNamespace = function (node, ns) {
-        if (node.data === undefined)
-            node.data = {};
-        node.data.ns = ns;
-        var children = node.children;
-        if (children !== undefined) {
-            for (var i = 0; i < children.length; i++) {
-                var child = children[i];
-                if (typeof child !== 'string')
-                    this.setNamespace(child, ns);
-            }
-        }
-    };
-    return PreRenderedView;
-}());
-exports.PreRenderedView = PreRenderedView;
-//# sourceMappingURL=generic-views.js.map
-
-/***/ }),
-/* 269 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var vnode_utils_1 = __webpack_require__(18);
-var JSX = { createElement: snabbdom.html };
-var HtmlRootView = /** @class */ (function () {
-    function HtmlRootView() {
-    }
-    HtmlRootView.prototype.render = function (model, context) {
-        var root = JSX.createElement("div", null, context.renderChildren(model));
-        for (var _i = 0, _a = model.classes; _i < _a.length; _i++) {
-            var c = _a[_i];
-            vnode_utils_1.setClass(root, c, true);
-        }
-        return root;
-    };
-    return HtmlRootView;
-}());
-exports.HtmlRootView = HtmlRootView;
-//# sourceMappingURL=html-views.js.map
-
-/***/ }),
-/* 270 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var smodel_1 = __webpack_require__(2);
-var geometry_1 = __webpack_require__(3);
-var model_1 = __webpack_require__(9);
-var model_2 = __webpack_require__(41);
-var model_3 = __webpack_require__(31);
-/**
- * Root model element class for HTML content. Usually this is rendered with a `div` DOM element.
- */
-var HtmlRoot = /** @class */ (function (_super) {
-    __extends(HtmlRoot, _super);
-    function HtmlRoot() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.classes = [];
-        return _this;
-    }
-    return HtmlRoot;
-}(smodel_1.SModelRoot));
-exports.HtmlRoot = HtmlRoot;
-/**
- * Pre-rendered elements contain HTML or SVG code to be transferred to the DOM. This can be useful to
- * render complex figures or to compute the view on the server instead of the client code.
- */
-var PreRenderedElement = /** @class */ (function (_super) {
-    __extends(PreRenderedElement, _super);
-    function PreRenderedElement() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return PreRenderedElement;
-}(smodel_1.SChildElement));
-exports.PreRenderedElement = PreRenderedElement;
-/**
- * Same as PreRenderedElement, but with a position and a size.
- */
-var ShapedPreRenderedElement = /** @class */ (function (_super) {
-    __extends(ShapedPreRenderedElement, _super);
-    function ShapedPreRenderedElement() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.position = geometry_1.ORIGIN_POINT;
-        _this.size = geometry_1.EMPTY_DIMENSION;
-        _this.selected = false;
-        _this.alignment = geometry_1.ORIGIN_POINT;
-        return _this;
-    }
-    Object.defineProperty(ShapedPreRenderedElement.prototype, "bounds", {
-        get: function () {
-            return {
-                x: this.position.x,
-                y: this.position.y,
-                width: this.size.width,
-                height: this.size.height
-            };
-        },
-        set: function (newBounds) {
-            this.position = {
-                x: newBounds.x,
-                y: newBounds.y
-            };
-            this.size = {
-                width: newBounds.width,
-                height: newBounds.height
-            };
-        },
-        enumerable: true,
-        configurable: true
-    });
-    ShapedPreRenderedElement.prototype.hasFeature = function (feature) {
-        return feature === model_2.moveFeature || feature === model_1.boundsFeature || feature === model_3.selectFeature || feature === model_1.alignFeature;
-    };
-    return ShapedPreRenderedElement;
-}(PreRenderedElement));
-exports.ShapedPreRenderedElement = ShapedPreRenderedElement;
-//# sourceMappingURL=model.js.map
-
-/***/ }),
-/* 271 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var snabbdom = __webpack_require__(7);
-var geometry_1 = __webpack_require__(3);
-var views_1 = __webpack_require__(144);
-var JSX = { createElement: snabbdom.svg };
-var SvgViewportView = /** @class */ (function () {
-    function SvgViewportView() {
-    }
-    SvgViewportView.prototype.render = function (model, context) {
-        var transform = "scale(" + model.zoom + ") translate(" + -model.scroll.x + "," + -model.scroll.y + ")";
-        return JSX.createElement("svg", null,
-            JSX.createElement("g", { transform: transform }, context.renderChildren(model)));
-    };
-    return SvgViewportView;
-}());
-exports.SvgViewportView = SvgViewportView;
-var CircularNodeView = /** @class */ (function (_super) {
-    __extends(CircularNodeView, _super);
-    function CircularNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    CircularNodeView.prototype.render = function (node, context) {
-        var radius = this.getRadius(node);
-        return JSX.createElement("g", null,
-            JSX.createElement("circle", { "class-sprotty-node": true, "class-mouseover": node.hoverFeedback, "class-selected": node.selected, r: radius, cx: radius, cy: radius }));
-    };
-    CircularNodeView.prototype.getRadius = function (node) {
-        var d = Math.min(node.size.width, node.size.height);
-        if (d > 0)
-            return d / 2;
-        else
-            return 0;
-    };
-    CircularNodeView.prototype.getAnchor = function (node, refPoint, anchorCorrection) {
-        var radius = this.getRadius(node);
-        var cx = node.position.x + radius;
-        var cy = node.position.y + radius;
-        var dx = cx - refPoint.x;
-        var dy = cy - refPoint.y;
-        var distance = Math.sqrt(dx * dx + dy * dy);
-        var normX = (dx / distance) || 0;
-        var normY = (dy / distance) || 0;
-        var strokeCorrection = 0.5 * this.getStrokeWidth(node);
-        return {
-            x: cx - normX * (radius + strokeCorrection + anchorCorrection),
-            y: cy - normY * (radius + strokeCorrection + anchorCorrection)
-        };
-    };
-    return CircularNodeView;
-}(views_1.AnchorableView));
-exports.CircularNodeView = CircularNodeView;
-var RectangularNodeView = /** @class */ (function (_super) {
-    __extends(RectangularNodeView, _super);
-    function RectangularNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    RectangularNodeView.prototype.render = function (node, context) {
-        return JSX.createElement("g", null,
-            JSX.createElement("rect", { "class-sprotty-node": true, "class-mouseover": node.hoverFeedback, "class-selected": node.selected, x: "0", y: "0", width: node.size.width, height: node.size.height }));
-    };
-    RectangularNodeView.prototype.getAnchor = function (node, refPoint, anchorCorrection) {
-        var bounds = node.bounds;
-        var correction = 0.5 * this.getStrokeWidth(node) + anchorCorrection;
-        var c = geometry_1.center(bounds);
-        var finder = new NearestPointFinder(c, refPoint);
-        if (!geometry_1.almostEquals(c.y, refPoint.y)) {
-            var xTop = this.getXIntersection(bounds.y, c, refPoint);
-            if (xTop >= bounds.x && xTop <= bounds.x + bounds.width)
-                finder.addCandidate(xTop, bounds.y - correction);
-            var xBottom = this.getXIntersection(bounds.y + bounds.height, c, refPoint);
-            if (xBottom >= bounds.x && xBottom <= bounds.x + bounds.width)
-                finder.addCandidate(xBottom, bounds.y + bounds.height + correction);
-        }
-        if (!geometry_1.almostEquals(c.x, refPoint.x)) {
-            var yLeft = this.getYIntersection(bounds.x, c, refPoint);
-            if (yLeft >= bounds.y && yLeft <= bounds.y + bounds.height)
-                finder.addCandidate(bounds.x - correction, yLeft);
-            var yRight = this.getYIntersection(bounds.x + bounds.width, c, refPoint);
-            if (yRight >= bounds.y && yRight <= bounds.y + bounds.height)
-                finder.addCandidate(bounds.x + bounds.width + correction, yRight);
-        }
-        return finder.best;
-    };
-    RectangularNodeView.prototype.getXIntersection = function (yIntersection, center, point) {
-        var t = (yIntersection - center.y) / (point.y - center.y);
-        return (point.x - center.x) * t + center.x;
-    };
-    RectangularNodeView.prototype.getYIntersection = function (xIntersection, center, point) {
-        var t = (xIntersection - center.x) / (point.x - center.x);
-        return (point.y - center.y) * t + center.y;
-    };
-    return RectangularNodeView;
-}(views_1.AnchorableView));
-exports.RectangularNodeView = RectangularNodeView;
-var NearestPointFinder = /** @class */ (function () {
-    function NearestPointFinder(center, refPoint) {
-        this.center = center;
-        this.refPoint = refPoint;
-        this.currentDist = -1;
-    }
-    NearestPointFinder.prototype.addCandidate = function (x, y) {
-        var dx = this.refPoint.x - x;
-        var dy = this.refPoint.y - y;
-        var dist = dx * dx + dy * dy;
-        if (this.currentDist < 0 || dist < this.currentDist) {
-            this.currentBest = {
-                x: x,
-                y: y
-            };
-            this.currentDist = dist;
-        }
-    };
-    Object.defineProperty(NearestPointFinder.prototype, "best", {
-        get: function () {
-            if (this.currentBest === undefined)
-                return this.center;
-            else
-                return this.currentBest;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    return NearestPointFinder;
-}());
-//# sourceMappingURL=svg-views.js.map
-
-/***/ }),
-/* 272 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-/**
- * This container module does NOT provide any binding for TYPES.ModelSource because that needs to be
- * done according to the needs of the application. You can choose between a local (LocalModelSource)
- * and a remote (e.g. WebSocketDiagramServer) implementation.
- */
-var modelSourceModule = new inversify_1.ContainerModule(function (bind) {
-    bind(types_1.TYPES.ModelSourceProvider).toProvider(function (context) {
-        return function () {
-            return new Promise(function (resolve) {
-                resolve(context.container.get(types_1.TYPES.ModelSource));
-            });
-        };
-    });
-});
-exports.default = modelSourceModule;
-//# sourceMappingURL=di.config.js.map
-
-/***/ }),
-/* 273 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(1);
-var action_handler_1 = __webpack_require__(38);
-var smodel_utils_1 = __webpack_require__(13);
-var set_model_1 = __webpack_require__(49);
-var smodel_1 = __webpack_require__(2);
-var bounds_manipulation_1 = __webpack_require__(50);
-var model_matching_1 = __webpack_require__(97);
-var update_model_1 = __webpack_require__(98);
-var hover_1 = __webpack_require__(52);
-var model_source_1 = __webpack_require__(102);
-var svg_exporter_1 = __webpack_require__(40);
-var file_saver_1 = __webpack_require__(121);
-var expand_1 = __webpack_require__(61);
-var diagram_state_1 = __webpack_require__(146);
-/**
- * A model source that handles actions for bounds calculation and model
- * updates.
- */
-var LocalModelSource = /** @class */ (function (_super) {
-    __extends(LocalModelSource, _super);
-    function LocalModelSource(actionDispatcher, actionHandlerRegistry, viewerOptions, popupModelFactory, modelProvider) {
-        var _this = _super.call(this, actionDispatcher, actionHandlerRegistry, viewerOptions) || this;
-        _this.popupModelFactory = popupModelFactory;
-        _this.modelProvider = modelProvider;
-        _this.currentRoot = {
-            type: 'NONE',
-            id: 'ROOT'
-        };
-        _this.diagramState = {
-            expansionState: new diagram_state_1.ExpansionState(_this.currentRoot)
-        };
-        return _this;
-    }
-    Object.defineProperty(LocalModelSource.prototype, "model", {
-        get: function () {
-            return this.currentRoot;
-        },
-        set: function (root) {
-            this.setModel(root);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    LocalModelSource.prototype.initialize = function (registry) {
-        _super.prototype.initialize.call(this, registry);
-        // Register model manipulation commands
-        registry.registerCommand(update_model_1.UpdateModelCommand);
-        // Register this model source
-        registry.register(bounds_manipulation_1.ComputedBoundsAction.KIND, this);
-        registry.register(hover_1.RequestPopupModelAction.KIND, this);
-        registry.register(expand_1.CollapseExpandAction.KIND, this);
-        registry.register(expand_1.CollapseExpandAllAction.KIND, this);
-    };
-    LocalModelSource.prototype.setModel = function (newRoot) {
-        this.currentRoot = newRoot;
-        this.diagramState = {
-            expansionState: new diagram_state_1.ExpansionState(newRoot)
-        };
-        this.submitModel(newRoot, false);
-    };
-    LocalModelSource.prototype.updateModel = function (newRoot) {
-        if (newRoot === undefined) {
-            this.submitModel(this.currentRoot, true);
-        }
-        else {
-            this.currentRoot = newRoot;
-            this.submitModel(newRoot, true);
-        }
-    };
-    LocalModelSource.prototype.submitModel = function (newRoot, update) {
-        if (this.viewerOptions.needsClientLayout) {
-            this.actionDispatcher.dispatch(new bounds_manipulation_1.RequestBoundsAction(newRoot));
-        }
-        else {
-            if (update) {
-                this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(newRoot));
-            }
-            else {
-                this.actionDispatcher.dispatch(new set_model_1.SetModelAction(newRoot));
-            }
-            if (this.onModelSubmitted !== undefined) {
-                this.onModelSubmitted(newRoot);
-            }
-        }
-    };
-    LocalModelSource.prototype.applyMatches = function (matches) {
-        var root = this.currentRoot;
-        model_matching_1.applyMatches(root, matches);
-        if (this.viewerOptions.needsClientLayout) {
-            this.actionDispatcher.dispatch(new bounds_manipulation_1.RequestBoundsAction(root));
-        }
-        else {
-            var update = new update_model_1.UpdateModelAction();
-            update.matches = matches;
-            this.actionDispatcher.dispatch(update);
-            if (this.onModelSubmitted !== undefined) {
-                this.onModelSubmitted(root);
-            }
-        }
-    };
-    LocalModelSource.prototype.addElements = function (elements) {
-        var matches = [];
-        for (var i in elements) {
-            var e = elements[i];
-            if (e.element !== undefined && e.parentId !== undefined) {
-                matches.push({
-                    right: e.element,
-                    rightParentId: e.parentId
-                });
-            }
-            else if (e.id !== undefined) {
-                matches.push({
-                    right: e,
-                    rightParentId: this.currentRoot.id
-                });
-            }
-        }
-        this.applyMatches(matches);
-    };
-    LocalModelSource.prototype.removeElements = function (elements) {
-        var matches = [];
-        var index = new smodel_1.SModelIndex();
-        index.add(this.currentRoot);
-        for (var i in elements) {
-            var e = elements[i];
-            if (e.elementId !== undefined && e.parentId !== undefined) {
-                var element = index.getById(e.elementId);
-                if (element !== undefined) {
-                    matches.push({
-                        left: element,
-                        leftParentId: e.parentId
-                    });
-                }
-            }
-            else {
-                var element = index.getById(e);
-                if (element !== undefined) {
-                    matches.push({
-                        left: element,
-                        leftParentId: this.currentRoot.id
-                    });
-                }
-            }
-        }
-        this.applyMatches(matches);
-    };
-    LocalModelSource.prototype.handle = function (action) {
-        switch (action.kind) {
-            case set_model_1.RequestModelAction.KIND:
-                this.handleRequestModel(action);
-                break;
-            case bounds_manipulation_1.ComputedBoundsAction.KIND:
-                this.handleComputedBounds(action);
-                break;
-            case hover_1.RequestPopupModelAction.KIND:
-                this.handleRequestPopupModel(action);
-                break;
-            case svg_exporter_1.ExportSvgAction.KIND:
-                this.handleExportSvgAction(action);
-                break;
-            case expand_1.CollapseExpandAction.KIND:
-                this.handleCollapseExpandAction(action);
-                break;
-            case expand_1.CollapseExpandAllAction.KIND:
-                this.handleCollapseExpandAllAction(action);
-                break;
-        }
-    };
-    LocalModelSource.prototype.handleRequestModel = function (action) {
-        this.submitModel(this.currentRoot, false);
-    };
-    LocalModelSource.prototype.handleComputedBounds = function (action) {
-        var root = this.currentRoot;
-        var index = new smodel_1.SModelIndex();
-        index.add(root);
-        for (var _i = 0, _a = action.bounds; _i < _a.length; _i++) {
-            var b = _a[_i];
-            var element = index.getById(b.elementId);
-            if (element !== undefined)
-                this.applyBounds(element, b.newBounds);
-        }
-        if (action.alignments !== undefined) {
-            for (var _b = 0, _c = action.alignments; _b < _c.length; _b++) {
-                var a = _c[_b];
-                var element = index.getById(a.elementId);
-                if (element !== undefined)
-                    this.applyAlignment(element, a.newAlignment);
-            }
-        }
-        this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(root));
-        if (this.onModelSubmitted !== undefined) {
-            this.onModelSubmitted(root);
-        }
-    };
-    LocalModelSource.prototype.applyBounds = function (element, newBounds) {
-        var e = element;
-        e.position = { x: newBounds.x, y: newBounds.y };
-        e.size = { width: newBounds.width, height: newBounds.height };
-    };
-    LocalModelSource.prototype.applyAlignment = function (element, newAlignment) {
-        var e = element;
-        e.alignment = { x: newAlignment.x, y: newAlignment.y };
-    };
-    LocalModelSource.prototype.handleRequestPopupModel = function (action) {
-        if (this.popupModelFactory !== undefined) {
-            var element = smodel_utils_1.findElement(this.currentRoot, action.elementId);
-            var popupRoot = this.popupModelFactory(action, element);
-            if (popupRoot !== undefined) {
-                popupRoot.canvasBounds = action.bounds;
-                this.actionDispatcher.dispatch(new hover_1.SetPopupModelAction(popupRoot));
-            }
-        }
-    };
-    LocalModelSource.prototype.handleExportSvgAction = function (action) {
-        var blob = new Blob([action.svg], { type: "text/plain;charset=utf-8" });
-        file_saver_1.saveAs(blob, "diagram.svg");
-    };
-    LocalModelSource.prototype.handleCollapseExpandAction = function (action) {
-        if (this.modelProvider !== undefined) {
-            this.diagramState.expansionState.apply(action);
-            var expandedModel = this.modelProvider.getModel(this.diagramState, this.currentRoot);
-            this.updateModel(expandedModel);
-        }
-    };
-    LocalModelSource.prototype.handleCollapseExpandAllAction = function (action) {
-        if (this.modelProvider !== undefined) {
-            if (action.expand) {
-                // Expanding all elements locally is currently not supported
-            }
-            else {
-                this.diagramState.expansionState.collapseAll();
-            }
-            var expandedModel = this.modelProvider.getModel(this.diagramState, this.currentRoot);
-            this.updateModel(expandedModel);
-        }
-    };
-    LocalModelSource = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),
-        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),
-        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),
-        __param(3, inversify_1.inject(types_1.TYPES.PopupModelFactory)), __param(3, inversify_1.optional()),
-        __param(4, inversify_1.inject(types_1.TYPES.StateAwareModelProvider)), __param(4, inversify_1.optional()),
-        __metadata("design:paramtypes", [Object, action_handler_1.ActionHandlerRegistry, Object, Function, Object])
-    ], LocalModelSource);
-    return LocalModelSource;
-}(model_source_1.ModelSource));
-exports.LocalModelSource = LocalModelSource;
-//# sourceMappingURL=local-model-source.js.map
-
-/***/ }),
-/* 274 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-var __param = (this && this.__param) || function (paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var logging_1 = __webpack_require__(103);
-var types_1 = __webpack_require__(1);
-var LoggingAction = /** @class */ (function () {
-    function LoggingAction(severity, time, caller, message, params) {
-        this.severity = severity;
-        this.time = time;
-        this.caller = caller;
-        this.message = message;
-        this.params = params;
-        this.kind = LoggingAction.KIND;
-    }
-    LoggingAction.KIND = 'logging';
-    return LoggingAction;
-}());
-exports.LoggingAction = LoggingAction;
-/**
- * A logger that forwards messages of type 'error', 'warn', and 'info' to the model source.
- */
-var ForwardingLogger = /** @class */ (function () {
-    function ForwardingLogger(modelSourceProvider, logLevel) {
-        this.modelSourceProvider = modelSourceProvider;
-        this.logLevel = logLevel;
-    }
-    ForwardingLogger.prototype.error = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= logging_1.LogLevel.error)
-            this.forward(thisArg, message, logging_1.LogLevel.error, params);
-    };
-    ForwardingLogger.prototype.warn = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= logging_1.LogLevel.warn)
-            this.forward(thisArg, message, logging_1.LogLevel.warn, params);
-    };
-    ForwardingLogger.prototype.info = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= logging_1.LogLevel.info)
-            this.forward(thisArg, message, logging_1.LogLevel.info, params);
-    };
-    ForwardingLogger.prototype.log = function (thisArg, message) {
-        var params = [];
-        for (var _i = 2; _i < arguments.length; _i++) {
-            params[_i - 2] = arguments[_i];
-        }
-        if (this.logLevel >= logging_1.LogLevel.log) {
-            // We cannot forward 'log' level messages since that would lead to endless loops
-            try {
-                var caller = typeof thisArg === 'object' ? thisArg.constructor.name : String(thisArg);
-                console.log.apply(thisArg, [caller + ': ' + message].concat(params));
-            }
-            catch (error) { }
-        }
-    };
-    ForwardingLogger.prototype.forward = function (thisArg, message, logLevel, params) {
-        var date = new Date();
-        var action = new LoggingAction(logging_1.LogLevel[logLevel], date.toLocaleTimeString(), typeof thisArg === 'object' ? thisArg.constructor.name : String(thisArg), message, params.map(function (p) { return JSON.stringify(p); }));
-        this.modelSourceProvider().then(function (modelSource) {
-            try {
-                modelSource.handle(action);
-            }
-            catch (error) {
-                try {
-                    console.log.apply(thisArg, [message, action, error]);
-                }
-                catch (error) { }
-            }
-        });
-    };
-    ForwardingLogger = __decorate([
-        inversify_1.injectable(),
-        __param(0, inversify_1.inject(types_1.TYPES.ModelSourceProvider)),
-        __param(1, inversify_1.inject(types_1.TYPES.LogLevel)),
-        __metadata("design:paramtypes", [Function, Number])
-    ], ForwardingLogger);
-    return ForwardingLogger;
-}());
-exports.ForwardingLogger = ForwardingLogger;
-//# sourceMappingURL=logging.js.map
-
-/***/ }),
-/* 275 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var inversify_1 = __webpack_require__(0);
-var diagram_server_1 = __webpack_require__(145);
-/**
- * An external ModelSource that connects to the model provider using a
- * websocket.
- */
-var WebSocketDiagramServer = /** @class */ (function (_super) {
-    __extends(WebSocketDiagramServer, _super);
-    function WebSocketDiagramServer() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    WebSocketDiagramServer.prototype.listen = function (webSocket) {
-        var _this = this;
-        webSocket.addEventListener('message', function (event) {
-            _this.messageReceived(event.data);
-        });
-        webSocket.addEventListener('error', function (event) {
-            _this.logger.error(_this, 'error event received', event);
-        });
-        this.webSocket = webSocket;
-    };
-    WebSocketDiagramServer.prototype.disconnect = function () {
-        if (this.webSocket) {
-            this.webSocket.close();
-            this.webSocket = undefined;
-        }
-    };
-    WebSocketDiagramServer.prototype.sendMessage = function (message) {
-        if (this.webSocket) {
-            this.webSocket.send(JSON.stringify(message));
-        }
-        else {
-            throw new Error('WebSocket is not connected');
-        }
-    };
-    WebSocketDiagramServer = __decorate([
-        inversify_1.injectable()
-    ], WebSocketDiagramServer);
-    return WebSocketDiagramServer;
-}(diagram_server_1.DiagramServer));
-exports.WebSocketDiagramServer = WebSocketDiagramServer;
-//# sourceMappingURL=websocket.js.map
-
-/***/ }),
-/* 276 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-/*
- * Copyright (C) 2017 TypeFox and others.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-function rgb(red, green, blue) {
-    return {
-        red: red,
-        green: green,
-        blue: blue
-    };
-}
-exports.rgb = rgb;
-function toSVG(c) {
-    return 'rgb(' + c.red + ',' + c.green + ',' + c.blue + ')';
-}
-exports.toSVG = toSVG;
-var ColorMap = /** @class */ (function () {
-    function ColorMap(stops) {
-        this.stops = stops;
-    }
-    ColorMap.prototype.getColor = function (t) {
-        t = Math.max(0, Math.min(0.99999999, t));
-        var i = Math.floor(t * this.stops.length);
-        return this.stops[i];
-    };
-    return ColorMap;
-}());
-exports.ColorMap = ColorMap;
-//# sourceMappingURL=color.js.map
-
-/***/ }),
-/* 277 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* unused harmony export htmlDomApi */
-function createElement(tagName) {
-    return document.createElement(tagName);
-}
-function createElementNS(namespaceURI, qualifiedName) {
-    return document.createElementNS(namespaceURI, qualifiedName);
-}
-function createTextNode(text) {
-    return document.createTextNode(text);
-}
-function createComment(text) {
-    return document.createComment(text);
-}
-function insertBefore(parentNode, newNode, referenceNode) {
-    parentNode.insertBefore(newNode, referenceNode);
-}
-function removeChild(node, child) {
-    node.removeChild(child);
-}
-function appendChild(node, child) {
-    node.appendChild(child);
-}
-function parentNode(node) {
-    return node.parentNode;
-}
-function nextSibling(node) {
-    return node.nextSibling;
-}
-function tagName(elm) {
-    return elm.tagName;
-}
-function setTextContent(node, text) {
-    node.textContent = text;
-}
-function getTextContent(node) {
-    return node.textContent;
-}
-function isElement(node) {
-    return node.nodeType === 1;
-}
-function isText(node) {
-    return node.nodeType === 3;
-}
-function isComment(node) {
-    return node.nodeType === 8;
-}
-var htmlDomApi = {
-    createElement: createElement,
-    createElementNS: createElementNS,
-    createTextNode: createTextNode,
-    createComment: createComment,
-    insertBefore: insertBefore,
-    removeChild: removeChild,
-    appendChild: appendChild,
-    parentNode: parentNode,
-    nextSibling: nextSibling,
-    tagName: tagName,
-    setTextContent: setTextContent,
-    getTextContent: getTextContent,
-    isElement: isElement,
-    isText: isText,
-    isComment: isComment,
-};
-/* harmony default export */ __webpack_exports__["a"] = (htmlDomApi);
-//# sourceMappingURL=htmldomapi.js.map
-
-/***/ }),
-/* 278 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return thunk; });
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__h__ = __webpack_require__(147);
-
-function copyToThunk(vnode, thunk) {
-    thunk.elm = vnode.elm;
-    vnode.data.fn = thunk.data.fn;
-    vnode.data.args = thunk.data.args;
-    thunk.data = vnode.data;
-    thunk.children = vnode.children;
-    thunk.text = vnode.text;
-    thunk.elm = vnode.elm;
-}
-function init(thunk) {
-    var cur = thunk.data;
-    var vnode = cur.fn.apply(undefined, cur.args);
-    copyToThunk(vnode, thunk);
-}
-function prepatch(oldVnode, thunk) {
-    var i, old = oldVnode.data, cur = thunk.data;
-    var oldArgs = old.args, args = cur.args;
-    if (old.fn !== cur.fn || oldArgs.length !== args.length) {
-        copyToThunk(cur.fn.apply(undefined, args), thunk);
-        return;
-    }
-    for (i = 0; i < args.length; ++i) {
-        if (oldArgs[i] !== args[i]) {
-            copyToThunk(cur.fn.apply(undefined, args), thunk);
-            return;
-        }
-    }
-    copyToThunk(oldVnode, thunk);
-}
-var thunk = function thunk(sel, key, fn, args) {
-    if (args === undefined) {
-        args = fn;
-        fn = key;
-        key = undefined;
-    }
-    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__h__["a" /* h */])(sel, {
-        key: key,
-        hook: { init: init, prepatch: prepatch },
-        fn: fn,
-        args: args
-    });
-};
-/* unused harmony default export */ var _unused_webpack_default_export = (thunk);
-//# sourceMappingURL=thunk.js.map
-
-/***/ }),
-/* 279 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var xlinkNS = 'http://www.w3.org/1999/xlink';
-var xmlNS = 'http://www.w3.org/XML/1998/namespace';
-var colonChar = 58;
-var xChar = 120;
-function updateAttrs(oldVnode, vnode) {
-    var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;
-    if (!oldAttrs && !attrs)
-        return;
-    if (oldAttrs === attrs)
-        return;
-    oldAttrs = oldAttrs || {};
-    attrs = attrs || {};
-    // update modified attributes, add new attributes
-    for (key in attrs) {
-        var cur = attrs[key];
-        var old = oldAttrs[key];
-        if (old !== cur) {
-            if (cur === true) {
-                elm.setAttribute(key, "");
-            }
-            else if (cur === false) {
-                elm.removeAttribute(key);
-            }
-            else {
-                if (key.charCodeAt(0) !== xChar) {
-                    elm.setAttribute(key, cur);
-                }
-                else if (key.charCodeAt(3) === colonChar) {
-                    // Assume xml namespace
-                    elm.setAttributeNS(xmlNS, key, cur);
-                }
-                else if (key.charCodeAt(5) === colonChar) {
-                    // Assume xlink namespace
-                    elm.setAttributeNS(xlinkNS, key, cur);
-                }
-                else {
-                    elm.setAttribute(key, cur);
-                }
-            }
-        }
-    }
-    // remove removed attributes
-    // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)
-    // the other option is to remove all attributes with value == undefined
-    for (key in oldAttrs) {
-        if (!(key in attrs)) {
-            elm.removeAttribute(key);
-        }
-    }
-}
-exports.attributesModule = { create: updateAttrs, update: updateAttrs };
-exports.default = exports.attributesModule;
-//# sourceMappingURL=attributes.js.map
-
-/***/ }),
-/* 280 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-function updateClass(oldVnode, vnode) {
-    var cur, name, elm = vnode.elm, oldClass = oldVnode.data.class, klass = vnode.data.class;
-    if (!oldClass && !klass)
-        return;
-    if (oldClass === klass)
-        return;
-    oldClass = oldClass || {};
-    klass = klass || {};
-    for (name in oldClass) {
-        if (!klass[name]) {
-            elm.classList.remove(name);
-        }
-    }
-    for (name in klass) {
-        cur = klass[name];
-        if (cur !== oldClass[name]) {
-            elm.classList[cur ? 'add' : 'remove'](name);
-        }
-    }
-}
-exports.classModule = { create: updateClass, update: updateClass };
-exports.default = exports.classModule;
-//# sourceMappingURL=class.js.map
-
-/***/ }),
-/* 281 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-function invokeHandler(handler, vnode, event) {
-    if (typeof handler === "function") {
-        // call function handler
-        handler.call(vnode, event, vnode);
-    }
-    else if (typeof handler === "object") {
-        // call handler with arguments
-        if (typeof handler[0] === "function") {
-            // special case for single argument for performance
-            if (handler.length === 2) {
-                handler[0].call(vnode, handler[1], event, vnode);
-            }
-            else {
-                var args = handler.slice(1);
-                args.push(event);
-                args.push(vnode);
-                handler[0].apply(vnode, args);
-            }
-        }
-        else {
-            // call multiple handlers
-            for (var i = 0; i < handler.length; i++) {
-                invokeHandler(handler[i]);
-            }
-        }
-    }
-}
-function handleEvent(event, vnode) {
-    var name = event.type, on = vnode.data.on;
-    // call event handler(s) if exists
-    if (on && on[name]) {
-        invokeHandler(on[name], vnode, event);
-    }
-}
-function createListener() {
-    return function handler(event) {
-        handleEvent(event, handler.vnode);
-    };
-}
-function updateEventListeners(oldVnode, vnode) {
-    var oldOn = oldVnode.data.on, oldListener = oldVnode.listener, oldElm = oldVnode.elm, on = vnode && vnode.data.on, elm = (vnode && vnode.elm), name;
-    // optimization for reused immutable handlers
-    if (oldOn === on) {
-        return;
-    }
-    // remove existing listeners which no longer used
-    if (oldOn && oldListener) {
-        // if element changed or deleted we remove all existing listeners unconditionally
-        if (!on) {
-            for (name in oldOn) {
-                // remove listener if element was changed or existing listeners removed
-                oldElm.removeEventListener(name, oldListener, false);
-            }
-        }
-        else {
-            for (name in oldOn) {
-                // remove listener if existing listener removed
-                if (!on[name]) {
-                    oldElm.removeEventListener(name, oldListener, false);
-                }
-            }
-        }
-    }
-    // add new listeners which has not already attached
-    if (on) {
-        // reuse existing listener or create new
-        var listener = vnode.listener = oldVnode.listener || createListener();
-        // update vnode for listener
-        listener.vnode = vnode;
-        // if element changed or added we add all needed listeners unconditionally
-        if (!oldOn) {
-            for (name in on) {
-                // add listener if element was changed or new listeners added
-                elm.addEventListener(name, listener, false);
-            }
-        }
-        else {
-            for (name in on) {
-                // add listener if new listener added
-                if (!oldOn[name]) {
-                    elm.addEventListener(name, listener, false);
-                }
-            }
-        }
-    }
-}
-exports.eventListenersModule = {
-    create: updateEventListeners,
-    update: updateEventListeners,
-    destroy: updateEventListeners
-};
-exports.default = exports.eventListenersModule;
-//# sourceMappingURL=eventlisteners.js.map
-
-/***/ }),
-/* 282 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-function updateProps(oldVnode, vnode) {
-    var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;
-    if (!oldProps && !props)
-        return;
-    if (oldProps === props)
-        return;
-    oldProps = oldProps || {};
-    props = props || {};
-    for (key in oldProps) {
-        if (!props[key]) {
-            delete elm[key];
-        }
-    }
-    for (key in props) {
-        cur = props[key];
-        old = oldProps[key];
-        if (old !== cur && (key !== 'value' || elm[key] !== cur)) {
-            elm[key] = cur;
-        }
-    }
-}
-exports.propsModule = { create: updateProps, update: updateProps };
-exports.default = exports.propsModule;
-//# sourceMappingURL=props.js.map
-
-/***/ }),
-/* 283 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;
-var nextFrame = function (fn) { raf(function () { raf(fn); }); };
-function setNextFrame(obj, prop, val) {
-    nextFrame(function () { obj[prop] = val; });
-}
-function updateStyle(oldVnode, vnode) {
-    var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;
-    if (!oldStyle && !style)
-        return;
-    if (oldStyle === style)
-        return;
-    oldStyle = oldStyle || {};
-    style = style || {};
-    var oldHasDel = 'delayed' in oldStyle;
-    for (name in oldStyle) {
-        if (!style[name]) {
-            if (name[0] === '-' && name[1] === '-') {
-                elm.style.removeProperty(name);
-            }
-            else {
-                elm.style[name] = '';
-            }
-        }
-    }
-    for (name in style) {
-        cur = style[name];
-        if (name === 'delayed' && style.delayed) {
-            for (var name2 in style.delayed) {
-                cur = style.delayed[name2];
-                if (!oldHasDel || cur !== oldStyle.delayed[name2]) {
-                    setNextFrame(elm.style, name2, cur);
-                }
-            }
-        }
-        else if (name !== 'remove' && cur !== oldStyle[name]) {
-            if (name[0] === '-' && name[1] === '-') {
-                elm.style.setProperty(name, cur);
-            }
-            else {
-                elm.style[name] = cur;
-            }
-        }
-    }
-}
-function applyDestroyStyle(vnode) {
-    var style, name, elm = vnode.elm, s = vnode.data.style;
-    if (!s || !(style = s.destroy))
-        return;
-    for (name in style) {
-        elm.style[name] = style[name];
-    }
-}
-function applyRemoveStyle(vnode, rm) {
-    var s = vnode.data.style;
-    if (!s || !s.remove) {
-        rm();
-        return;
-    }
-    var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];
-    for (name in style) {
-        applied.push(name);
-        elm.style[name] = style[name];
-    }
-    compStyle = getComputedStyle(elm);
-    var props = compStyle['transition-property'].split(', ');
-    for (; i < props.length; ++i) {
-        if (applied.indexOf(props[i]) !== -1)
-            amount++;
-    }
-    elm.addEventListener('transitionend', function (ev) {
-        if (ev.target === elm)
-            --amount;
-        if (amount === 0)
-            rm();
-    });
-}
-exports.styleModule = {
-    create: updateStyle,
-    update: updateStyle,
-    destroy: applyDestroyStyle,
-    remove: applyRemoveStyle
-};
-exports.default = exports.styleModule;
-//# sourceMappingURL=style.js.map
-
-/***/ }),
-/* 284 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to execute container creation tools.
- *
- * @sbegaudeau
- */
-var ExecuteContainerCreationToolAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param toolName The name of the tool to execute
-     */
-    function ExecuteContainerCreationToolAction(toolName) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = ExecuteContainerCreationToolAction.KIND;
-        this.toolName = toolName;
-    }
-    /**
-     * The kind of the action.
-     */
-    ExecuteContainerCreationToolAction.KIND = 'executeContainerCreationTool';
-    /**
-     * The type of the action.
-     */
-    ExecuteContainerCreationToolAction.TYPE = 'ContainerCreationDescriptionImpl';
-    return ExecuteContainerCreationToolAction;
-}());
-exports.ExecuteContainerCreationToolAction = ExecuteContainerCreationToolAction;
-
-
-/***/ }),
-/* 285 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to execute node creation tools.
- *
- * @gcoutable
- */
-var ExecuteNodeCreationToolAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param toolName The name of the tool to execute
-     */
-    function ExecuteNodeCreationToolAction(toolName) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = ExecuteNodeCreationToolAction.KIND;
-        this.toolName = toolName;
-    }
-    /**
-     * The kind of the action.
-     */
-    ExecuteNodeCreationToolAction.KIND = 'executeNodeCreationTool';
-    /**
-     * The type of the action.
-     */
-    ExecuteNodeCreationToolAction.TYPE = 'NodeCreationDescriptionImpl';
-    return ExecuteNodeCreationToolAction;
-}());
-exports.ExecuteNodeCreationToolAction = ExecuteNodeCreationToolAction;
-
-
-/***/ }),
-/* 286 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to generic tools.
- *
- * @sbegaudeau
- */
-var ExecuteToolAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param toolName The name of the tool to execute
-     */
-    function ExecuteToolAction(toolName) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = ExecuteToolAction.KIND;
-        this.toolName = toolName;
-    }
-    /**
-     * The kind of the action.
-     */
-    ExecuteToolAction.KIND = 'executeTool';
-    /**
-     * The type of the action.
-     */
-    ExecuteToolAction.TYPE = 'ToolDescriptionImpl';
-    return ExecuteToolAction;
-}());
-exports.ExecuteToolAction = ExecuteToolAction;
-
-
-/***/ }),
-/* 287 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to retrieve the layers of the diagram.
- *
- * @gcoutable
- */
-var RequestLayersAction = /** @class */ (function () {
-    function RequestLayersAction() {
-        /**
-         * The kind of the action.
-         */
-        this.kind = RequestLayersAction.KIND;
-    }
-    /**
-     * The kind of the action.
-     */
-    RequestLayersAction.KIND = 'requestLayers';
-    return RequestLayersAction;
-}());
-exports.RequestLayersAction = RequestLayersAction;
-
-
-/***/ }),
-/* 288 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to retrieve the tools of the diagram.
- *
- * @gcoutable
- */
-var RequestToolsAction = /** @class */ (function () {
-    function RequestToolsAction() {
-        /**
-         * The kind of the action.
-         */
-        this.kind = RequestToolsAction.KIND;
-    }
-    /**
-     * The kind of the action.
-     */
-    RequestToolsAction.KIND = 'requestTools';
-    return RequestToolsAction;
-}());
-exports.RequestToolsAction = RequestToolsAction;
-
-
-/***/ }),
-/* 289 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to set the layers of the diagram.
- *
- * @gcoutable
- */
-var SetLayersAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param layers The layers of the diagram
-     */
-    function SetLayersAction(layers) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = SetLayersAction.KIND;
-        this.layers = layers;
-    }
-    /**
-     * The kind of the action.
-     */
-    SetLayersAction.KIND = 'setLayers';
-    return SetLayersAction;
-}());
-exports.SetLayersAction = SetLayersAction;
-
-
-/***/ }),
-/* 290 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to set the tools of the diagram.
- *
- * @gcoutable
- */
-var SetToolsAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param tools The tools of the diagram
-     */
-    function SetToolsAction(tools) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = SetToolsAction.KIND;
-        this.tools = tools;
-    }
-    /**
-     * The kind of the action.
-     */
-    SetToolsAction.KIND = 'setTools';
-    return SetToolsAction;
-}());
-exports.SetToolsAction = SetToolsAction;
-
-
-/***/ }),
-/* 291 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Action used to toggle a layer.
- *
- * @author gcoutable
- */
-var ToggleLayerAction = /** @class */ (function () {
-    /**
-     * The constructor.
-     * @param layerName The name of the layer
-     * @param newState The new state of the layer
-     */
-    function ToggleLayerAction(layerName, newState) {
-        /**
-         * The kind of the action.
-         */
-        this.kind = ToggleLayerAction.KIND;
-        this.layerName = layerName;
-        this.newState = newState;
-    }
-    /**
-     * The kind of the action.
-     */
-    ToggleLayerAction.KIND = 'toggleLayer';
-    return ToggleLayerAction;
-}());
-exports.ToggleLayerAction = ToggleLayerAction;
-
-
-/***/ }),
-/* 292 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var request_layers_action_1 = __webpack_require__(287);
-var request_tools_action_1 = __webpack_require__(288);
-var set_layers_action_1 = __webpack_require__(289);
-var set_tools_action_1 = __webpack_require__(290);
-var di_config_1 = __webpack_require__(294);
-var tools_utils_1 = __webpack_require__(293);
-__webpack_require__(240);
-/* tslint:disable */
-var SetLayersActionHandler = /** @class */ (function () {
-    function SetLayersActionHandler(diagramServer) {
-        this.diagramServer = diagramServer;
-    }
-    /**
-     * Handles the given action received by the server.
-     * @param action The action
-     */
-    SetLayersActionHandler.prototype.handle = function (action) {
-        this.handleSetLayersAction(action);
-    };
-    /**
-     * Handles the set layers action.
-     * @param action The action
-     */
-    SetLayersActionHandler.prototype.handleSetLayersAction = function (action) {
-        tools_utils_1.cleanDOMElement(document.getElementById('layers-palette'));
-        tools_utils_1.createDOMElementForLayers(this.diagramServer, action.layers);
-    };
-    return SetLayersActionHandler;
-}());
-exports.SetLayersActionHandler = SetLayersActionHandler;
-/* tslint:enable */
-/* tslint:disable */
-var SetToolsActionHandler = /** @class */ (function () {
-    function SetToolsActionHandler(diagramServer) {
-        this.diagramServer = diagramServer;
-    }
-    /**
-     * Handles the given action received by the server.
-     * @param action The action
-     */
-    SetToolsActionHandler.prototype.handle = function (action) {
-        this.handleSetToolsAction(action);
-    };
-    /**
-   * Handles the set tools action.
-   * @param action The action
-   */
-    SetToolsActionHandler.prototype.handleSetToolsAction = function (action) {
-        var tools = action.tools.filter(function (tool) {
-            return tools_utils_1.canHandleTool(tool);
-        });
-        tools_utils_1.cleanDOMElement(document.getElementById('tools-palette'));
-        tools_utils_1.createDOMElementsForTools(this.diagramServer, tools);
-    };
-    return SetToolsActionHandler;
-}());
-exports.SetToolsActionHandler = SetToolsActionHandler;
-/* tslint:enable */
-/**
- * Creates the Sirius diagram and connect it to the server.
- *
- * @sbegaudeau
- */
-function initializeSiriusDiagram() {
-    var websocket = new WebSocket('ws://' + window.location.host + '/diagrams/api');
-    var container = di_config_1.createContainer('sprotty');
-    var diagramServer = container.get(lib_1.TYPES.ModelSource);
-    diagramServer.listen(websocket);
-    var actionHandlerRegistry = container.get(lib_1.TYPES.ActionHandlerRegistry);
-    actionHandlerRegistry.register(set_layers_action_1.SetLayersAction.KIND, new SetLayersActionHandler(diagramServer));
-    actionHandlerRegistry.register(set_tools_action_1.SetToolsAction.KIND, new SetToolsActionHandler(diagramServer));
-    // Connect to the diagram server
-    websocket.addEventListener('open', function (event) {
-        var url = new URL(window.location.href);
-        var parameters = new URLSearchParams(url.search);
-        var project = parameters.get('project') || '';
-        var aird = parameters.get('aird') || '';
-        var representationName = parameters.get('representationName') || '';
-        diagramServer.clientId = "__PROJECT__" + project + "__AIRD__" + aird + "__REPRESENTATION__" + representationName + "__CLIENT_ID__" + Math.random();
-        diagramServer.handle(new request_tools_action_1.RequestToolsAction());
-        diagramServer.handle(new request_layers_action_1.RequestLayersAction());
-        diagramServer.handle(new lib_1.RequestModelAction({
-            project: project,
-            aird: aird,
-            representationName: representationName
-        }));
-    });
-}
-exports.initializeSiriusDiagram = initializeSiriusDiagram;
-
-
-/***/ }),
-/* 293 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var execute_container_creation_tool_action_1 = __webpack_require__(284);
-var execute_node_creation_tool_action_1 = __webpack_require__(285);
-var execute_tool_action_1 = __webpack_require__(286);
-var toogle_layers_action_1 = __webpack_require__(291);
-/**
- * Indicates if the given tool is supported by the diagram.
- * @param tool The tool
- * @returns true if the tool is supported, false otherwise
- */
-function canHandleTool(tool) {
-    var canHandle = false;
-    switch (tool.toolType) {
-        case execute_node_creation_tool_action_1.ExecuteNodeCreationToolAction.TYPE:
-            canHandle = true;
-            break;
-        case execute_container_creation_tool_action_1.ExecuteContainerCreationToolAction.TYPE:
-            canHandle = true;
-            break;
-        case execute_tool_action_1.ExecuteToolAction.TYPE:
-            canHandle = true;
-            break;
-        default:
-            canHandle = false;
-            break;
-    }
-    return canHandle;
-}
-exports.canHandleTool = canHandleTool;
-/**
- * Creates the action for the given tool.
- * @param tool The tool
- * @returns The action used to run the given tool or null if the tool is not supported
- */
-function createToolAction(tool) {
-    var action = null;
-    switch (tool.toolType) {
-        case execute_node_creation_tool_action_1.ExecuteNodeCreationToolAction.TYPE:
-            action = new execute_node_creation_tool_action_1.ExecuteNodeCreationToolAction(tool.id);
-            break;
-        case execute_container_creation_tool_action_1.ExecuteContainerCreationToolAction.TYPE:
-            action = new execute_container_creation_tool_action_1.ExecuteContainerCreationToolAction(tool.id);
-            break;
-        case execute_tool_action_1.ExecuteToolAction.TYPE:
-            action = new execute_tool_action_1.ExecuteToolAction(tool.id);
-        default:
-            break;
-    }
-    return action;
-}
-/**
- * Creates the action for the given layer.
- * @param layer The layer
- * @returns The action used to toggle the given layer
- */
-function createLayerAction(layer, newState) {
-    return new toogle_layers_action_1.ToggleLayerAction(layer.id, newState);
-}
-/**
- * Creates the DOM elements used to execute the given tools.
- * @param diagramServer The diagram server
- * @param tools The tools to display
- */
-function createDOMElementsForTools(diagramServer, tools) {
-    var toolPaletteElement = document.getElementById('tools-palette');
-    if (toolPaletteElement !== null) {
-        tools.forEach(function (tool) {
-            var button = document.createElement('button');
-            button.setAttribute('type', 'button');
-            button.setAttribute('class', 'tool');
-            var toolLabel = tool.name || tool.id;
-            var image = document.createElement('img');
-            // FIXME Change the computation of the tool image source
-            var imageSource = 'assets/ToolDescription.gif';
-            if (toolLabel.includes('Woman')) {
-                imageSource = 'assets/woman.svg';
-            }
-            else if (toolLabel.includes('Man')) {
-                imageSource = 'assets/man.svg';
-            }
-            else if (toolLabel.includes('New customer')) {
-                imageSource = 'assets/LaneSet.png';
-            }
-            else if (toolLabel.includes('Start')) {
-                imageSource = 'assets/start.svg';
-            }
-            else if (toolLabel.includes('Select')) {
-                imageSource = 'assets/Task.svg';
-            }
-            else if (toolLabel.includes('Order')) {
-                imageSource = 'assets/Task.svg';
-            }
-            else if (toolLabel.includes('Wait')) {
-                imageSource = 'assets/event-based-gateway.svg';
-            }
-            else if (toolLabel.includes('Eat')) {
-                imageSource = 'assets/end.svg';
-            }
-            image.setAttribute('src', imageSource);
-            button.appendChild(image);
-            var label = document.createElement('label');
-            label.textContent = toolLabel;
-            button.appendChild(label);
-            button.addEventListener('click', function (event) {
-                var toolAction = createToolAction(tool);
-                if (toolAction !== null) {
-                    diagramServer.handle(toolAction);
-                }
-            });
-            toolPaletteElement.appendChild(button);
-        });
-    }
-}
-exports.createDOMElementsForTools = createDOMElementsForTools;
-/**
- * Creates the DOM elements used to activate or deactivate layers.
- * @param diagramServer The diagram server
- * @param layers The layers to display
- */
-function createDOMElementForLayers(diagramServer, layers) {
-    var layerPaletteElement = document.getElementById('layers-palette');
-    if (layerPaletteElement != null) {
-        layers.forEach(function (layer) {
-            var layerId = "layer-" + layer.id;
-            var layerContainerElement = document.createElement('div');
-            layerContainerElement.setAttribute('class', 'layer');
-            var layerLabelElement = document.createElement('label');
-            layerLabelElement.setAttribute('for', layerId);
-            layerLabelElement.textContent = (layer.name || layer.id) + " ";
-            layerContainerElement.appendChild(layerLabelElement);
-            var layerCheckboxElement = document.createElement('input');
-            layerCheckboxElement.setAttribute('type', 'checkbox');
-            if (layer.isActive) {
-                layerCheckboxElement.setAttribute('checked', 'checked');
-            }
-            layerCheckboxElement.setAttribute('id', layerId);
-            layerCheckboxElement.addEventListener('click', function (event) {
-                var eventTarget = event.target;
-                var layerAction = createLayerAction(layer, eventTarget.checked);
-                if (layerAction !== null) {
-                    diagramServer.handle(layerAction);
-                }
-            });
-            layerContainerElement.appendChild(layerCheckboxElement);
-            layerPaletteElement.appendChild(layerContainerElement);
-        });
-    }
-}
-exports.createDOMElementForLayers = createDOMElementForLayers;
-/**
- * Cleans the content of the HTMLElement.
- * @param element The HTMLElement
- */
-function cleanDOMElement(element) {
-    if (element !== null) {
-        for (var index = 0; index < element.children.length;) {
-            var item = element.children.item(index);
-            element.removeChild(item);
-        }
-    }
-}
-exports.cleanDOMElement = cleanDOMElement;
-
-
-/***/ }),
-/* 294 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var inversify_1 = __webpack_require__(0);
-var lib_1 = __webpack_require__(15);
-var sirius_edge_view_1 = __webpack_require__(298);
-var sirius_free_form_flat_container_node_view_1 = __webpack_require__(299);
-var sirius_list_flat_container_node_view_1 = __webpack_require__(301);
-var sirius_square_border_node_view_1 = __webpack_require__(302);
-var sirius_svg_border_node_view_1 = __webpack_require__(304);
-var sirius_label_view_1 = __webpack_require__(300);
-var sirius_square_node_view_1 = __webpack_require__(303);
-var sirius_svg_node_view_1 = __webpack_require__(305);
-var sirius_graph_factory_1 = __webpack_require__(296);
-var popup_1 = __webpack_require__(295);
-var sirius_websocket_diagram_server_1 = __webpack_require__(297);
-var siriusContainerModule = new inversify_1.ContainerModule(function (bind, unbind, isBound, rebind) {
-    rebind(lib_1.TYPES.ILogger)
-        .to(lib_1.ConsoleLogger)
-        .inSingletonScope();
-    rebind(lib_1.TYPES.LogLevel).toConstantValue(lib_1.LogLevel.log);
-    rebind(lib_1.TYPES.IModelFactory)
-        .to(sirius_graph_factory_1.SiriusGraphFactory)
-        .inSingletonScope();
-    bind(lib_1.TYPES.PopupModelFactory).toConstantValue(popup_1.siriusPopupModelFactory);
-});
-/**
- * Create the dependency injection container.
- * @param containerId The identifier of the container
- */
-exports.createContainer = function (containerId) {
-    var container = new inversify_1.Container();
-    container.load(lib_1.defaultModule, lib_1.selectModule, lib_1.moveModule, lib_1.boundsModule, lib_1.undoRedoModule, lib_1.viewportModule, lib_1.hoverModule, lib_1.exportModule, siriusContainerModule);
-    container
-        .bind(lib_1.TYPES.ModelSource)
-        .to(sirius_websocket_diagram_server_1.SiriusWebSocketDiagramServer)
-        .inSingletonScope();
-    lib_1.overrideViewerOptions(container, {
-        needsClientLayout: true,
-        needsServerLayout: true,
-        baseDiv: containerId,
-        hiddenDiv: containerId + '-hidden'
-    });
-    var viewRegistry = container.get(lib_1.TYPES.ViewRegistry);
-    viewRegistry.register('graph', lib_1.SGraphView);
-    viewRegistry.register('node:square', sirius_square_node_view_1.SiriusSquareNodeView);
-    viewRegistry.register('node:svg', sirius_svg_node_view_1.SiriusSVGNodeView);
-    viewRegistry.register('port:square', sirius_square_border_node_view_1.SiriusSquareBorderNodeView);
-    viewRegistry.register('port:image', sirius_svg_border_node_view_1.SiriusSvgBorderNodeView);
-    viewRegistry.register('node:freeformflatcontainer', sirius_free_form_flat_container_node_view_1.SiriusFreeFormFlatContainerNodeView);
-    viewRegistry.register('node:listflatcontainer', sirius_list_flat_container_node_view_1.SiriusListFlatContainerNodeView);
-    viewRegistry.register('comp:listflatcontainer_label', lib_1.SCompartmentView);
-    viewRegistry.register('comp:listflatcontainer_body', lib_1.SCompartmentView);
-    viewRegistry.register('edge:straight', sirius_edge_view_1.SiriusEdgeView);
-    viewRegistry.register('label:inside-left', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:inside-center', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:inside-right', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:outside-left', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:outside-center', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:outside-right', sirius_label_view_1.SiriusLabelView);
-    viewRegistry.register('label:text', lib_1.SLabelView);
-    viewRegistry.register('comp:main', lib_1.SCompartmentView);
-    viewRegistry.register('html', lib_1.HtmlRootView);
-    viewRegistry.register('pre-rendered', lib_1.PreRenderedView);
-    return container;
-};
-
-
-/***/ }),
-/* 295 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * Creates a popup for the given action.
- * @param request The request popup model action
- * @param element The model element schema
- */
-exports.siriusPopupModelFactory = function (request, element) {
-    if (element !== undefined && element.type === 'node:svg') {
-        return {
-            type: 'html',
-            id: 'popup',
-            children: [
-                {
-                    type: 'pre-rendered',
-                    id: 'popup-title',
-                    code: "<div class=\"popup-title\">Class " + (element.id === 'node0' ? 'Foo' : 'Bar') + "</div>"
-                },
-                {
-                    type: 'pre-rendered',
-                    id: 'popup-body',
-                    code: '<div class="popup-body">Hello World</div>'
-                }
-            ]
-        };
-    }
-    return undefined;
-};
-
-
-/***/ }),
-/* 296 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-/**
- * The Sirius graph factory used to create all the graph elements.
- *
- * @sbegaudeau
- */
-var SiriusGraphFactory = /** @class */ (function (_super) {
-    __extends(SiriusGraphFactory, _super);
-    function SiriusGraphFactory() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Creates the element with the given schema.
-     * @param schema The model element schema
-     * @param parent The parent element
-     */
-    SiriusGraphFactory.prototype.createElement = function (schema, parent) {
-        /*if (this.isNodeSchema(schema)) {
-          return this.initializeChild(new SiriusNode(), schema, parent)
-        } else */
-        if (this.isPreRenderedSchema(schema)) {
-            return this.initializeChild(new lib_1.PreRenderedElement(), schema, parent);
-        }
-        else {
-            return _super.prototype.createElement.call(this, schema, parent);
-        }
-    };
-    /**
-     * Creates the root for the given schema.
-     * @param schema The schema
-     */
-    SiriusGraphFactory.prototype.createRoot = function (schema) {
-        if (this.isHtmlRootSchema(schema)) {
-            return this.initializeRoot(new lib_1.HtmlRoot(), schema);
-        }
-        else {
-            return _super.prototype.createRoot.call(this, schema);
-        }
-    };
-    /**
-     * Indicates if the given schema is an HTML root schema.
-     * @param schema The model root schema
-     */
-    SiriusGraphFactory.prototype.isHtmlRootSchema = function (schema) {
-        return lib_1.getBasicType(schema) === 'html';
-    };
-    /**
-     * Indicates if the given schema is a pre-rendered schema.
-     * @param schema The model element schema
-     */
-    SiriusGraphFactory.prototype.isPreRenderedSchema = function (schema) {
-        return lib_1.getBasicType(schema) === 'pre-rendered';
-    };
-    return SiriusGraphFactory;
-}(lib_1.SGraphFactory));
-exports.SiriusGraphFactory = SiriusGraphFactory;
-
-
-/***/ }),
-/* 297 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-/**
- * The Sirius WebSocket diagram server used to communicate with the remote server.
- *
- * @gcoutable
- */
-var SiriusWebSocketDiagramServer = /** @class */ (function (_super) {
-    __extends(SiriusWebSocketDiagramServer, _super);
-    function SiriusWebSocketDiagramServer() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Initializes the given action handler registry.
-     * @param registry The action handler registry
-     */
-    SiriusWebSocketDiagramServer.prototype.initialize = function (registry) {
-        _super.prototype.initialize.call(this, registry);
-    };
-    /**
-     * Handles the given action received by the server.
-     * @param action The action
-     */
-    SiriusWebSocketDiagramServer.prototype.handle = function (action) {
-        switch (action.kind) {
-            default:
-                _super.prototype.handle.call(this, action);
-                break;
-        }
-    };
-    return SiriusWebSocketDiagramServer;
-}(lib_1.WebSocketDiagramServer));
-exports.SiriusWebSocketDiagramServer = SiriusWebSocketDiagramServer;
-
-
-/***/ }),
-/* 298 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display Sirius edges.
- *
- * @sbegaudeau
- */
-var SiriusEdgeView = /** @class */ (function (_super) {
-    __extends(SiriusEdgeView, _super);
-    function SiriusEdgeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the line of the edge with a specific style configured.
-     * @param edge The edge
-     * @param segments The segments
-     * @param context The context
-     */
-    SiriusEdgeView.prototype.renderLine = function (edge, segments, context) {
-        var style = edge.style;
-        var firstPoint = segments[0];
-        var path = "M " + firstPoint.x + "," + firstPoint.y;
-        for (var i = 1; i < segments.length; i++) {
-            var p = segments[i];
-            path += " L " + p.x + "," + p.y;
-        }
-        return JSX.createElement("path", { "class-sprotty-edge": true, d: path, style: JSON.parse(style) });
-    };
-    /**
-     * Renders additionals element for the given Edge. This method is overriden in order to let
-     * us add decorators to the beggining or the end of the edge (to create an arrow for example).
-     * @param edge The edge
-     * @param segments The segments
-     * @param context The context
-     */
-    SiriusEdgeView.prototype.renderAdditionals = function (edge, segments, context) {
-        var style = edge.style;
-        var styleObject = JSON.parse(style);
-        styleObject.fill = styleObject.stroke;
-        var p1 = segments[segments.length - 2];
-        var p2 = segments[segments.length - 1];
-        return [
-            JSX.createElement("path", { "class-edge": true, "class-arrow": true, d: "M 0,0 L 6,-3 L 6,3 Z", transform: "rotate(" + lib_1.toDegrees(lib_1.angle(p2, p1)) + " " + p2.x + " " + p2.y + ") translate(" + p2.x + " " + p2.y + ")", style: styleObject })
-        ];
-    };
-    return SiriusEdgeView;
-}(lib_1.PolylineEdgeView));
-exports.SiriusEdgeView = SiriusEdgeView;
-
-
-/***/ }),
-/* 299 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display free form containers with a flat style.
- *
- * @sbegaudeau
- */
-var SiriusFreeFormFlatContainerNodeView = /** @class */ (function (_super) {
-    __extends(SiriusFreeFormFlatContainerNodeView, _super);
-    function SiriusFreeFormFlatContainerNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given node in the context.
-     * @param node The node
-     * @param context The context
-     */
-    SiriusFreeFormFlatContainerNodeView.prototype.render = function (node, context) {
-        var style = node.style;
-        return (JSX.createElement("g", null,
-            JSX.createElement("rect", { "class-selected": node.selected, "class-mouseover": node.hoverFeedback, x: 0, y: 0, rx: "5", ry: "5", width: Math.max(0, node.bounds.width), height: Math.max(0, node.bounds.height), style: JSON.parse(style) }),
-            context.renderChildren(node)));
-    };
-    return SiriusFreeFormFlatContainerNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusFreeFormFlatContainerNodeView = SiriusFreeFormFlatContainerNodeView;
-
-
-/***/ }),
-/* 300 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display labels.
- *
- * @sbegaudeau
- */
-var SiriusLabelView = /** @class */ (function (_super) {
-    __extends(SiriusLabelView, _super);
-    function SiriusLabelView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given label in the context.
-     * @param label The label
-     * @param context The context
-     */
-    SiriusLabelView.prototype.render = function (label, context) {
-        var style = label.style;
-        var styleObject = JSON.parse(style);
-        var vnode = JSX.createElement("text", { "class-sprotty-label": true, style: styleObject }, label.text);
-        var subType = lib_1.getSubType(label);
-        if (subType) {
-            lib_1.setAttr(vnode, 'class', subType);
-        }
-        return vnode;
-    };
-    return SiriusLabelView;
-}(lib_1.SLabelView));
-exports.SiriusLabelView = SiriusLabelView;
-
-
-/***/ }),
-/* 301 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display list containers with a flat style.
- *
- * @sbegaudeau
- */
-var SiriusListFlatContainerNodeView = /** @class */ (function (_super) {
-    __extends(SiriusListFlatContainerNodeView, _super);
-    function SiriusListFlatContainerNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given node in the context.
-     * @param node The node
-     * @param context The context
-     */
-    SiriusListFlatContainerNodeView.prototype.render = function (node, context) {
-        var style = node.style;
-        return (JSX.createElement("g", null,
-            JSX.createElement("rect", { "class-selected": node.selected, "class-mouseover": node.hoverFeedback, x: 0, y: 0, rx: "5", ry: "5", width: Math.max(0, node.bounds.width), height: Math.max(0, node.bounds.height), style: JSON.parse(style) }),
-            context.renderChildren(node)));
-    };
-    return SiriusListFlatContainerNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusListFlatContainerNodeView = SiriusListFlatContainerNodeView;
-
-
-/***/ }),
-/* 302 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display a border node nodes with a square style.
- *
- * @hmarchadour
- */
-var SiriusSquareBorderNodeView = /** @class */ (function (_super) {
-    __extends(SiriusSquareBorderNodeView, _super);
-    function SiriusSquareBorderNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given port in the context.
-     * @param port The port
-     * @param context The context
-     */
-    SiriusSquareBorderNodeView.prototype.render = function (port, context) {
-        var style = port.style;
-        return (JSX.createElement("g", null,
-            JSX.createElement("rect", { "class-selected": port.selected, "class-mouseover": port.hoverFeedback, x: 0, y: 0, width: Math.max(5, port.bounds.width), height: Math.max(5, port.bounds.height), style: JSON.parse(style) }),
-            context.renderChildren(port)));
-    };
-    return SiriusSquareBorderNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusSquareBorderNodeView = SiriusSquareBorderNodeView;
-
-
-/***/ }),
-/* 303 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display nodes with a square style.
- *
- * @sbegaudeau
- */
-var SiriusSquareNodeView = /** @class */ (function (_super) {
-    __extends(SiriusSquareNodeView, _super);
-    function SiriusSquareNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given node in the context.
-     * @param node The node
-     * @param context The context
-     */
-    SiriusSquareNodeView.prototype.render = function (node, context) {
-        var style = node.style;
-        return (JSX.createElement("g", null,
-            JSX.createElement("rect", { "class-selected": node.selected, "class-mouseover": node.hoverFeedback, x: 0, y: 0, rx: "5", ry: "5", width: Math.max(0, node.bounds.width), height: Math.max(0, node.bounds.height), style: JSON.parse(style) }),
-            context.renderChildren(node)));
-    };
-    return SiriusSquareNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusSquareNodeView = SiriusSquareNodeView;
-
-
-/***/ }),
-/* 304 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display an SVG border node.
- *
- * @hmarchadour
- */
-var SiriusSvgBorderNodeView = /** @class */ (function (_super) {
-    __extends(SiriusSvgBorderNodeView, _super);
-    function SiriusSvgBorderNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given port in the context.
-     * @param port The port
-     * @param context The context
-     */
-    SiriusSvgBorderNodeView.prototype.render = function (port, context) {
-        var url = port.url;
-        return (JSX.createElement("g", null,
-            JSX.createElement("image", { x: "0", y: "0", height: "10", width: "10", href: url })));
-    };
-    return SiriusSvgBorderNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusSvgBorderNodeView = SiriusSvgBorderNodeView;
-
-
-/***/ }),
-/* 305 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-var lib_1 = __webpack_require__(15);
-var snabbdom = __webpack_require__(7);
-var JSX = { createElement: snabbdom.svg };
-/**
- * The view used to display nodes with an SVG image.
- */
-var SiriusSVGNodeView = /** @class */ (function (_super) {
-    __extends(SiriusSVGNodeView, _super);
-    function SiriusSVGNodeView() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    /**
-     * Renders the given node in the context.
-     * @param node The node
-     * @param context The context
-     */
-    SiriusSVGNodeView.prototype.render = function (node, context) {
-        var svgData = node.svgData;
-        return (JSX.createElement("g", null,
-            JSX.createElement("image", { x: "0", y: "0", href: "data:image/svg+xml;utf," + svgData, width: 30, height: 30 }),
-            context.renderChildren(node)));
-    };
-    return SiriusSVGNodeView;
-}(lib_1.RectangularNodeView));
-exports.SiriusSVGNodeView = SiriusSVGNodeView;
-
-
-/***/ }),
-/* 306 */
-/***/ (function(module, exports) {
-
-/**
- * This file automatically generated from `pre-publish.js`.
- * Do not manually edit.
- */
-
-module.exports = {
-  "area": true,
-  "base": true,
-  "br": true,
-  "col": true,
-  "embed": true,
-  "hr": true,
-  "img": true,
-  "input": true,
-  "keygen": true,
-  "link": true,
-  "menuitem": true,
-  "meta": true,
-  "param": true,
-  "source": true,
-  "track": true,
-  "wbr": true
-};
-
-
-/***/ }),
-/* 307 */
-/***/ (function(module, exports) {
-
-module.exports = function() {
-	throw new Error("define cannot be used indirect");
-};
-
-
-/***/ }),
-/* 308 */
-/***/ (function(module, exports) {
-
-/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */
-module.exports = __webpack_amd_options__;
-
-/* WEBPACK VAR INJECTION */}.call(exports, {}))
-
-/***/ }),
-/* 309 */
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
-	return this;
-})();
-
-try {
-	// This works if eval is allowed (see CSP)
-	g = g || Function("return this")() || (1,eval)("this");
-} catch(e) {
-	// This works if the window reference is available
-	if(typeof window === "object")
-		g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
-/***/ }),
-/* 310 */
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__(151);
-__webpack_require__(152);
-__webpack_require__(153);
-__webpack_require__(154);
-module.exports = __webpack_require__(155);
-
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=bundle.js.map
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js.map b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js.map
deleted file mode 100644
index eac4086..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/bundle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap de617373a0fa5acf5972","webpack:///./~/inversify/lib/inversify.js","webpack:///./~/sprotty/lib/base/types.js","webpack:///./~/sprotty/lib/base/model/smodel.js","webpack:///./~/sprotty/lib/utils/geometry.js","webpack:///./~/core-js/modules/_wks.js","webpack:///./~/inversify/lib/constants/metadata_keys.js","webpack:///./~/core-js/modules/_global.js","webpack:///./~/snabbdom-jsx/snabbdom-jsx.js","webpack:///./~/sprotty/lib/base/commands/command.js","webpack:///./~/sprotty/lib/features/bounds/model.js","webpack:///./~/core-js/modules/_export.js","webpack:///./~/core-js/modules/_string-html.js","webpack:///./~/inversify/lib/constants/error_msgs.js","webpack:///./~/sprotty/lib/base/model/smodel-utils.js","webpack:///./~/core-js/modules/_is-object.js","webpack:///./~/sprotty/lib/index.js","webpack:///./~/inversify/lib/planning/metadata.js","webpack:///./~/sprotty/lib/base/model/smodel-factory.js","webpack:///./~/sprotty/lib/base/views/vnode-utils.js","webpack:///./~/core-js/modules/_an-object.js","webpack:///./~/core-js/modules/_core.js","webpack:///./~/inversify/lib/constants/literal_types.js","webpack:///./~/core-js/modules/_defined.js","webpack:///./~/core-js/modules/_descriptors.js","webpack:///./~/core-js/modules/_fails.js","webpack:///./~/core-js/modules/_has.js","webpack:///./~/core-js/modules/_hide.js","webpack:///./~/core-js/modules/_object-dp.js","webpack:///./~/core-js/modules/_redefine.js","webpack:///./~/inversify/lib/annotation/decorator_utils.js","webpack:///./~/sprotty/lib/base/views/mouse-tool.js","webpack:///./~/sprotty/lib/features/select/model.js","webpack:///./~/sprotty/lib/features/viewport/model.js","webpack:///./~/core-js/modules/_to-iobject.js","webpack:///./~/inversify/lib/utils/guid.js","webpack:///./~/sprotty/lib/base/views/key-tool.js","webpack:///./~/core-js/modules/_cof.js","webpack:///./~/core-js/modules/_ctx.js","webpack:///./~/sprotty/lib/base/actions/action-handler.js","webpack:///./~/sprotty/lib/base/animations/animation.js","webpack:///./~/sprotty/lib/features/export/svg-exporter.js","webpack:///./~/sprotty/lib/features/move/model.js","webpack:///./~/sprotty/lib/features/viewport/viewport.js","webpack:///./~/core-js/modules/_iterators.js","webpack:///./~/core-js/modules/_set-to-string-tag.js","webpack:///./~/core-js/modules/_to-length.js","webpack:///./~/core-js/modules/_uid.js","webpack:///./~/inversify/lib/utils/serialization.js","webpack:///./~/sprotty/lib/base/animations/animation-frame-syncer.js","webpack:///./~/sprotty/lib/base/features/set-model.js","webpack:///./~/sprotty/lib/features/bounds/bounds-manipulation.js","webpack:///./~/sprotty/lib/features/fade/model.js","webpack:///./~/sprotty/lib/features/hover/hover.js","webpack:///./~/sprotty/lib/utils/registry.js","webpack:///./~/core-js/modules/_a-function.js","webpack:///./~/core-js/modules/_fix-re-wks.js","webpack:///./~/core-js/modules/_library.js","webpack:///./~/core-js/modules/_object-keys.js","webpack:///./~/core-js/modules/_property-desc.js","webpack:///./~/core-js/modules/_to-integer.js","webpack:///./~/sprotty/lib/base/features/initialize-canvas.js","webpack:///./~/sprotty/lib/features/expand/expand.js","webpack:///./~/sprotty/lib/features/export/model.js","webpack:///./~/sprotty/lib/features/hover/model.js","webpack:///./~/sprotty/lib/features/move/move.js","webpack:///./~/sprotty/lib/utils/browser.js","webpack:///./~/core-js/modules/_an-instance.js","webpack:///./~/core-js/modules/_classof.js","webpack:///./~/core-js/modules/_dom-create.js","webpack:///./~/core-js/modules/_enum-bug-keys.js","webpack:///./~/core-js/modules/_fails-is-regexp.js","webpack:///./~/core-js/modules/_for-of.js","webpack:///./~/core-js/modules/_iter-define.js","webpack:///./~/core-js/modules/_meta.js","webpack:///./~/core-js/modules/_object-create.js","webpack:///./~/core-js/modules/_object-pie.js","webpack:///./~/core-js/modules/_redefine-all.js","webpack:///./~/core-js/modules/_shared-key.js","webpack:///./~/core-js/modules/_shared.js","webpack:///./~/core-js/modules/_string-context.js","webpack:///./~/core-js/modules/_to-primitive.js","webpack:///./~/core-js/modules/es6.object.to-string.js","webpack:///./~/core-js/modules/es6.string.iterator.js","webpack:///./~/inversify/lib/syntax/binding_on_syntax.js","webpack:///./~/inversify/lib/syntax/binding_when_syntax.js","webpack:///./~/sprotty/lib/base/actions/action-dispatcher.js","webpack:///./~/sprotty/lib/base/actions/action.js","webpack:///./~/sprotty/lib/base/model/smodel-storage.js","webpack:///./~/sprotty/lib/base/views/dom-helper.js","webpack:///./~/sprotty/lib/features/bounds/abstract-layout.js","webpack:///./~/sprotty/lib/features/bounds/layout.js","webpack:///./~/sprotty/lib/features/button/button-handler.js","webpack:///./~/sprotty/lib/features/button/model.js","webpack:///./~/sprotty/lib/features/expand/model.js","webpack:///./~/sprotty/lib/features/fade/fade.js","webpack:///./~/sprotty/lib/features/open/open.js","webpack:///./~/sprotty/lib/features/undo-redo/undo-redo.js","webpack:///./~/sprotty/lib/features/update/model-matching.js","webpack:///./~/sprotty/lib/features/update/update-model.js","webpack:///./~/sprotty/lib/features/viewport/center-fit.js","webpack:///./~/sprotty/lib/features/viewport/viewport-root.js","webpack:///./~/sprotty/lib/graph/sgraph.js","webpack:///./~/sprotty/lib/model-source/model-source.js","webpack:///./~/sprotty/lib/utils/logging.js","webpack:///./~/core-js/modules/_html.js","webpack:///./~/core-js/modules/_ie8-dom-define.js","webpack:///./~/core-js/modules/_is-regexp.js","webpack:///./~/core-js/modules/_iter-detect.js","webpack:///./~/core-js/modules/_iter-step.js","webpack:///./~/core-js/modules/_new-promise-capability.js","webpack:///./~/core-js/modules/_object-gopd.js","webpack:///./~/core-js/modules/_object-gopn.js","webpack:///./~/core-js/modules/_object-gops.js","webpack:///./~/core-js/modules/_object-keys-internal.js","webpack:///./~/core-js/modules/_set-species.js","webpack:///./~/core-js/modules/_string-at.js","webpack:///./~/core-js/modules/_task.js","webpack:///./~/core-js/modules/_to-absolute-index.js","webpack:///./~/core-js/modules/_validate-collection.js","webpack:///./~/core-js/modules/_wks-ext.js","webpack:///./~/core-js/modules/web.dom.iterable.js","webpack:///./~/file-saver/FileSaver.js","webpack:///./~/inversify/lib/annotation/inject.js","webpack:///./~/inversify/lib/planning/metadata_reader.js","webpack:///./~/inversify/lib/planning/target.js","webpack:///./~/inversify/lib/syntax/binding_when_on_syntax.js","webpack:///./~/inversify/lib/syntax/constraint_helpers.js","webpack:///./~/inversify/lib/utils/exceptions.js","webpack:///./~/snabbdom/vnode.js","webpack:///./~/sprotty/lib/base/animations/easing.js","webpack:///./~/sprotty/lib/base/commands/command-stack.js","webpack:///./~/sprotty/lib/base/views/thunk-view.js","webpack:///./~/sprotty/lib/base/views/view.js","webpack:///./~/sprotty/lib/base/views/viewer-cache.js","webpack:///./~/sprotty/lib/base/views/viewer.js","webpack:///./~/sprotty/lib/base/views/vnode-decorators.js","webpack:///./~/sprotty/lib/features/bounds/hbox-layout.js","webpack:///./~/sprotty/lib/features/bounds/stack-layout.js","webpack:///./~/sprotty/lib/features/bounds/vbox-layout.js","webpack:///./~/sprotty/lib/features/export/export.js","webpack:///./~/sprotty/lib/features/open/model.js","webpack:///./~/sprotty/lib/features/select/select.js","webpack:///./~/sprotty/lib/features/viewport/scroll.js","webpack:///./~/sprotty/lib/features/viewport/zoom.js","webpack:///./~/sprotty/lib/graph/views.js","webpack:///./~/sprotty/lib/model-source/diagram-server.js","webpack:///./~/sprotty/lib/model-source/diagram-state.js","webpack:///./~/sprotty/~/snabbdom/es/h.js","webpack:///./~/sprotty/~/snabbdom/es/is.js","webpack:///./~/sprotty/~/snabbdom/es/snabbdom.js","webpack:///./~/sprotty/~/snabbdom/es/vnode.js","webpack:///./~/core-js/es6/map.js","webpack:///./~/core-js/es6/promise.js","webpack:///./~/core-js/es6/string.js","webpack:///./~/core-js/es6/symbol.js","webpack:///./index.ts","webpack:///./~/core-js/modules/_add-to-unscopables.js","webpack:///./~/core-js/modules/_array-includes.js","webpack:///./~/core-js/modules/_collection-strong.js","webpack:///./~/core-js/modules/_collection.js","webpack:///./~/core-js/modules/_enum-keys.js","webpack:///./~/core-js/modules/_inherit-if-required.js","webpack:///./~/core-js/modules/_invoke.js","webpack:///./~/core-js/modules/_iobject.js","webpack:///./~/core-js/modules/_is-array-iter.js","webpack:///./~/core-js/modules/_is-array.js","webpack:///./~/core-js/modules/_iter-call.js","webpack:///./~/core-js/modules/_iter-create.js","webpack:///./~/core-js/modules/_microtask.js","webpack:///./~/core-js/modules/_object-dps.js","webpack:///./~/core-js/modules/_object-gopn-ext.js","webpack:///./~/core-js/modules/_object-gpo.js","webpack:///./~/core-js/modules/_perform.js","webpack:///./~/core-js/modules/_promise-resolve.js","webpack:///./~/core-js/modules/_set-proto.js","webpack:///./~/core-js/modules/_species-constructor.js","webpack:///./~/core-js/modules/_string-repeat.js","webpack:///./~/core-js/modules/_string-trim.js","webpack:///./~/core-js/modules/_string-ws.js","webpack:///./~/core-js/modules/_to-object.js","webpack:///./~/core-js/modules/_wks-define.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/es6.array.iterator.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/es6.promise.js","webpack:///./~/core-js/modules/es6.regexp.match.js","webpack:///./~/core-js/modules/es6.regexp.replace.js","webpack:///./~/core-js/modules/es6.regexp.search.js","webpack:///./~/core-js/modules/es6.regexp.split.js","webpack:///./~/core-js/modules/es6.string.anchor.js","webpack:///./~/core-js/modules/es6.string.big.js","webpack:///./~/core-js/modules/es6.string.blink.js","webpack:///./~/core-js/modules/es6.string.bold.js","webpack:///./~/core-js/modules/es6.string.code-point-at.js","webpack:///./~/core-js/modules/es6.string.ends-with.js","webpack:///./~/core-js/modules/es6.string.fixed.js","webpack:///./~/core-js/modules/es6.string.fontcolor.js","webpack:///./~/core-js/modules/es6.string.fontsize.js","webpack:///./~/core-js/modules/es6.string.from-code-point.js","webpack:///./~/core-js/modules/es6.string.includes.js","webpack:///./~/core-js/modules/es6.string.italics.js","webpack:///./~/core-js/modules/es6.string.link.js","webpack:///./~/core-js/modules/es6.string.raw.js","webpack:///./~/core-js/modules/es6.string.repeat.js","webpack:///./~/core-js/modules/es6.string.small.js","webpack:///./~/core-js/modules/es6.string.starts-with.js","webpack:///./~/core-js/modules/es6.string.strike.js","webpack:///./~/core-js/modules/es6.string.sub.js","webpack:///./~/core-js/modules/es6.string.sup.js","webpack:///./~/core-js/modules/es6.string.trim.js","webpack:///./~/core-js/modules/es6.symbol.js","webpack:///./~/html-parse-stringify2/lib/parse-tag.js","webpack:///./~/html-parse-stringify2/lib/parse.js","webpack:///./~/inversify/lib/annotation/injectable.js","webpack:///./~/inversify/lib/annotation/multi_inject.js","webpack:///./~/inversify/lib/annotation/named.js","webpack:///./~/inversify/lib/annotation/optional.js","webpack:///./~/inversify/lib/annotation/post_construct.js","webpack:///./~/inversify/lib/annotation/tagged.js","webpack:///./~/inversify/lib/annotation/target_name.js","webpack:///./~/inversify/lib/annotation/unmanaged.js","webpack:///./~/inversify/lib/bindings/binding.js","webpack:///./~/inversify/lib/bindings/binding_count.js","webpack:///./~/inversify/lib/container/container.js","webpack:///./~/inversify/lib/container/container_module.js","webpack:///./~/inversify/lib/container/container_snapshot.js","webpack:///./~/inversify/lib/container/lookup.js","webpack:///./~/inversify/lib/planning/context.js","webpack:///./~/inversify/lib/planning/plan.js","webpack:///./~/inversify/lib/planning/planner.js","webpack:///./~/inversify/lib/planning/queryable_string.js","webpack:///./~/inversify/lib/planning/reflection_utils.js","webpack:///./~/inversify/lib/planning/request.js","webpack:///./~/inversify/lib/resolution/instantiation.js","webpack:///./~/inversify/lib/resolution/resolver.js","webpack:///./~/inversify/lib/syntax/binding_in_syntax.js","webpack:///./~/inversify/lib/syntax/binding_in_when_on_syntax.js","webpack:///./~/inversify/lib/syntax/binding_to_syntax.js","webpack:///./~/inversify/lib/utils/binding_utils.js","webpack:///./~/process/browser.js","webpack:///./~/reconnecting-websocket/dist/index.js","webpack:///./~/reflect-metadata/Reflect.js","webpack:///./~/snabbdom-virtualize/lib/strings.js","webpack:///./~/snabbdom-virtualize/lib/utils.js","webpack:///./~/snabbdom-virtualize/strings.js","webpack:///./~/snabbdom/h.js","webpack:///./~/snabbdom/is.js","webpack:///./~/sprotty/lib/base/commands/command-stack-options.js","webpack:///./~/sprotty/lib/base/di.config.js","webpack:///./~/sprotty/lib/base/views/id-decorator.js","webpack:///./~/sprotty/lib/base/views/viewer-options.js","webpack:///./~/sprotty/lib/features/bounds/di.config.js","webpack:///./~/sprotty/lib/features/bounds/hidden-bounds-updater.js","webpack:///./~/sprotty/lib/features/bounds/resize.js","webpack:///./~/sprotty/lib/features/button/di.config.js","webpack:///./~/sprotty/lib/features/expand/di.config.js","webpack:///./~/sprotty/lib/features/expand/views.js","webpack:///./~/sprotty/lib/features/export/di.config.js","webpack:///./~/sprotty/lib/features/fade/di.config.js","webpack:///./~/sprotty/lib/features/hover/di.config.js","webpack:///./~/sprotty/lib/features/hover/initializer.js","webpack:///./~/sprotty/lib/features/hover/popup-position-updater.js","webpack:///./~/sprotty/lib/features/move/di.config.js","webpack:///./~/sprotty/lib/features/open/di.config.js","webpack:///./~/sprotty/lib/features/select/di.config.js","webpack:///./~/sprotty/lib/features/undo-redo/di.config.js","webpack:///./~/sprotty/lib/features/viewport/di.config.js","webpack:///./~/sprotty/lib/graph/sgraph-factory.js","webpack:///./~/sprotty/lib/lib/generic-views.js","webpack:///./~/sprotty/lib/lib/html-views.js","webpack:///./~/sprotty/lib/lib/model.js","webpack:///./~/sprotty/lib/lib/svg-views.js","webpack:///./~/sprotty/lib/model-source/di.config.js","webpack:///./~/sprotty/lib/model-source/local-model-source.js","webpack:///./~/sprotty/lib/model-source/logging.js","webpack:///./~/sprotty/lib/model-source/websocket.js","webpack:///./~/sprotty/lib/utils/color.js","webpack:///./~/sprotty/~/snabbdom/es/htmldomapi.js","webpack:///./~/sprotty/~/snabbdom/es/thunk.js","webpack:///./~/sprotty/~/snabbdom/modules/attributes.js","webpack:///./~/sprotty/~/snabbdom/modules/class.js","webpack:///./~/sprotty/~/snabbdom/modules/eventlisteners.js","webpack:///./~/sprotty/~/snabbdom/modules/props.js","webpack:///./~/sprotty/~/snabbdom/modules/style.js","webpack:///./src/actions/execute-container-creation-tool-action.ts","webpack:///./src/actions/execute-node-creation-tool-action.ts","webpack:///./src/actions/execute-tool-action.ts","webpack:///./src/actions/request-layers-action.ts","webpack:///./src/actions/request-tools-action.ts","webpack:///./src/actions/set-layers-action.ts","webpack:///./src/actions/set-tools-action.ts","webpack:///./src/actions/toogle-layers-action.ts","webpack:///./src/app/standalone.ts","webpack:///./src/app/tools-utils.ts","webpack:///./src/di.config.ts","webpack:///./src/popup.ts","webpack:///./src/sirius-graph-factory.ts","webpack:///./src/sirius-websocket-diagram-server.ts","webpack:///./src/views/sirius-edge-view.tsx","webpack:///./src/views/sirius-free-form-flat-container-node-view.tsx","webpack:///./src/views/sirius-label-view.tsx","webpack:///./src/views/sirius-list-flat-container-node-view.tsx","webpack:///./src/views/sirius-square-border-node-view.tsx","webpack:///./src/views/sirius-square-node-view.tsx","webpack:///./src/views/sirius-svg-border-node-view.tsx","webpack:///./src/views/sirius-svg-node-view.tsx","webpack:///./~/void-elements/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;AC5CA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B,EAAE;AAChF;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;AC5MA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,oC;;;;;;AC5KA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;ACVA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;ACLzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;AC1HA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6CAA6C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mC;;;;;;;ACnJA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;AClBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wC;;;;;;ACnHA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACtHA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA6D;AAC1F;AACA;AACA;AACA,CAAC;AACD;;;;;;;;AClBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,kCAAkC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iDAAiD,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD,0C;;;;;;;AC/FA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uC;;;;;;AC1EA;AACA;AACA;AACA;AACA;;;;;;;ACJA,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;ACHD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA,uBAAuB;AACvB;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,uCAAuC;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+DAA+D,EAAE;AACvG,qCAAqC,oBAAoB,EAAE;AAC3D;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uEAAuE,0CAA0C,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sC;;;;;;;ACnNA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACbA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAA6D,EAAE;AACrG,qCAAqC,oBAAoB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oC;;;;;;ACjFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAmD,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0C;;;;;;;AC1DA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;AC7FA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qDAAqD,qCAAqC,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;AC/GA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACjBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oC;;;;;;AChGA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;ACNA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtGA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,wBAAwB,EAAE;AACjF;AACA,4CAA4C,wBAAwB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mCAAmC,EAAE;AAC5E,0CAA0C,mCAAmC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kD;;;;;;;ACzDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACjGA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,uCAAuC,EAAE;AACnF;AACA;AACA;AACA,0CAA0C,uCAAuC,EAAE;AACnF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA,+C;;;;;;;ACvHA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACbA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6EAA6E;AAC9H,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iCAAiC;AAC3G;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6EAA6E;AAC1H;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;AChSA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oC;;;;;;ACpHA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;AC3BA;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uCAAuC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,6C;;;;;;;AClHA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;AClEA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACbA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;AClBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0DAA0D,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gC;;;;;;;AC3OA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mC;;;;;;ACnCA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK,YAAY;AACjB,GAAG;AACH;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;ACxCA,cAAc;;;;;;;ACAd;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA,kDAAkD;AAClD;AACA,uCAAuC;AACvC;;;;;;;ACLA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACTA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,cAAc;AACd;AACA,CAAC;AACD;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,UAAU;AACV,CAAC;;;;;;;;AChBD;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACbA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACjGA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8CAA8C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,6C;;;;;;;AC3GA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,kC;;;;;;;ACZA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0C;;;;;;;AChEA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sC;;;;;;;AC7CA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,2BAA2B,EAAE;AACzF;AACA;AACA,CAAC;AACD;AACA,2C;;;;;;;ACxHA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;ACxHA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oDAAoD,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0C;;;;;;;AChDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;ACjCA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACbA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gC;;;;;;;AC3EA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gC;;;;;;;AC7CA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACrDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;ACpGA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;ACxRA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,+DAA+D,2DAA2D,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sC;;;;;;;ACpNA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yC;;;;;;;ACnEA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;ACnJA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;AClEA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,uDAAuD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,kCAAkC,yBAAyB;AAC3D,qCAAqC,gBAAgB,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mC;;;;;;ACrIA;AACA;;;;;;;ACDA;AACA,qEAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;ACFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,GAAG;AACH;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;ACJA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,GAAG,yBAAyB;AAC7G;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AAAA;AACH;;;;;;;;AC3LA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACpBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACzFA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;AC5DA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;;;;;;ACvCA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,iC;;;;;;;ACTA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kC;;;;;;;ACtBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0DAA0D,mBAAmB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sCAAsC,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yC;;;;;;;AClWA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,6BAA6B,gDAAgD,EAAE;AAC/E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,sC;;;;;;;ACpFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B;AACvE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8DAA8D;AACxG;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gC;;;;;;;AC9EA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;ACrFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,uCAAuC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mCAAmC,EAAE;AAC3F;AACA;AACA,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uCAAuC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6BAA6B;AAC7E;AACA;AACA;AACA;AACA,gDAAgD,6BAA6B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gDAAgD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;ACzOA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,4C;;;;;;;ACpCA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,CAAC;AACD;AACA,uC;;;;;;;ACzFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;AC/EA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,CAAC;AACD;AACA,uC;;;;;;;ACzFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;ACvHA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;ACbA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0BAA0B;AACvE,+CAA+C,4BAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0DAA0D,EAAE;AAChH,iDAAiD,mBAAmB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gCAAgC,EAAE,oBAAoB,aAAa,EAAE;AACxJ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;AClSA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;AC7EA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gC;;;;;;;AClDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B;AACvE,oCAAoC,uBAAuB;AAC3D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA,0CAA0C,sCAAsC;AAChF;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAsD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+CAA+C,KAAK,GAAG;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;AChKA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2CAA2C,mBAAmB,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0C;;;;;;;AC/MA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yC;;;;;;;;;;ACtCgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6B;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA,8B;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,mBAAmB,wBAAwB;AAC3C,qGAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY;AACI;AAChB;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yIAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,oC;;;;;;;;AC/SA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,iC;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;;;;;;;;;;ACFA;;;;;;;;;iFASiF;AACjF,yBAA0B;AAC1B,4CAA+D;AAE/D,oCAAuB,EAAE,CAAC;;;;;;;ACb1B;AACA;AACA;AACA,6FAAwF;AACxF;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,mCAAmC,gCAAgC,aAAa;AACvF,8BAA8B,mCAAmC,aAAa;AAC9E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA,wDAAwD,aAAa,EAAE,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAkF,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,sBAAsB,EAAE;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;ACnEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACZA;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;ACNA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM;AACd;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAsB;AAChF,kFAAkF,wBAAwB;AAC1G;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;;;;ACjCA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,kCAAkC;AACrD,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,uCAAuC;AACtD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,yBAAyB,KAAK;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,oBAAoB;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;AChRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;ACtED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACnBD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACND;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACtBD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACND;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;ACjBD;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;ACLD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACjBD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB,uBAAuB,WAAW,IAAI;AAC5D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,QAAQ,iCAAiC;AACpG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzOA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACtGA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACnCA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,oDAAoD;AACpD;AACA,UAAU;AACV;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gCAAgC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,qEAAqE,mBAAmB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;AC1PA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACVA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACbA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0BAA0B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAiC,EAAE;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;;;;;;;;AC9EA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;AChBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACTA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;AC1BA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/HA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACvBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjDA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,sDAAsD,EAAE;AAC3J;AACA;AACA,8FAA8F,iDAAiD,EAAE;AACjJ;AACA;AACA,+FAA+F,kDAAkD,EAAE;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjGA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACtBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;ACvEA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iDAAiD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uCAAuC,EAAE;AACzF;AACA;AACA,CAAC;AACD;;;;;;;;ACxEA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,+CAA+C,6CAA6C,EAAE;AAC9F;AACA;AACA;;;;;;;ACZA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA,0BAA0B,kBAAkB,EAAE;AAC9C,+BAA+B,mBAAmB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC,EAAE;AACtE,iCAAiC,mCAAmC,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK,KAAK;AACV;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,gCAAgC,aAAa;AAC7C,mCAAmC;AACnC,gCAAgC,wIAAwI;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;;;;;ACtNA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mDAAmD;AAC3G;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,6BAA6B,gBAAgB,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA,mCAAmC,wBAAwB,kBAAkB,EAAE;AAC/E,mCAAmC,yBAAyB,EAAE,EAAE;AAChE;AACA,uCAAuC,8BAA8B;AACrE,uCAAuC,mBAAmB,EAAE;AAC5D;AACA,uCAAuC,qDAAqD;AAC5F,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA,iBAAiB;AACjB,oDAAoD,+CAA+C;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0DAA0D;AAC5G,oDAAoD,4DAA4D;AAChH,qDAAqD,4DAA4D;AACjH,2DAA2D,uBAAuB;AAClF,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAuB,EAAE;AAC/D;AACA;AACA,iBAAiB;AACjB,sDAAsD,6BAA6B;AACnF,sDAAsD,0CAA0C;AAChG,yDAAyD,gCAAgC;AACzF,mDAAmD,mBAAmB;AACtE,kDAAkD,yBAAyB;AAC3E,oDAAoD,2BAA2B;AAC/E,qDAAqD,4BAA4B;AACjF,2DAA2D,oBAAoB;AAC/E,6DAA6D,oBAAoB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,0BAA0B;AAC3B,mC;;;;;;;;AC3mCA;;AAEA;AACA;AACA,CAAC;;AAED;AACA,0EAA0E;;;AAG1E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,C;;;;;;;ACzIA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,C;;;;;;AC3CA;;;;;;;;ACAA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6B;;;;;;;AC1DA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,8B;;;;;;;ACPA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;;;;;;;ACjBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,qC;;;;;;;ACtIA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wC;;;;;;;ACjDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;ACjBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACrBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iD;;;;;;;ACxIA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA,kC;;;;;;;ACpDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACdA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACfA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2BAA2B,KAAK,sBAAsB,eAAe,GAAG;AAC/G,uCAAuC,gDAAgD;AACvF,uCAAuC,UAAU;AACjD;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;AC3BA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACnBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACfA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA,qC;;;;;;;AC7BA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,6EAA6E;AACjI;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,uC;;;;;;;ACnDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kD;;;;;;;ACvDA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;AClBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACfA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;AClBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACfA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACvBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0C;;;;;;;ACnFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yC;;;;;;;ACrCA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sC;;;;;;;ACzBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;ACzFA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wIAAwI;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uKAAuK;AAC9M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,qC;;;;;;;AC7IA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,CAAC;AACD;AACA,qC;;;;;;;ACzBA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8C;;;;;;;ACvRA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,4MAA4M,0BAA0B,EAAE;AACxO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mC;;;;;;;AC1GA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,qC;;;;;;;ACjEA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iC;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sC;;;;;;;;;AC/DY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA,iC;;;;;;;AC5CA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,sC;;;;;;;ACtDA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,iC;;;;;;;ACxBA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;AC9FA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 310);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap de617373a0fa5acf5972","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar keys = require(\"./constants/metadata_keys\");\nexports.METADATA_KEY = keys;\nvar container_1 = require(\"./container/container\");\nexports.Container = container_1.Container;\nvar literal_types_1 = require(\"./constants/literal_types\");\nexports.BindingScopeEnum = literal_types_1.BindingScopeEnum;\nexports.BindingTypeEnum = literal_types_1.BindingTypeEnum;\nexports.TargetTypeEnum = literal_types_1.TargetTypeEnum;\nvar container_module_1 = require(\"./container/container_module\");\nexports.ContainerModule = container_module_1.ContainerModule;\nvar injectable_1 = require(\"./annotation/injectable\");\nexports.injectable = injectable_1.injectable;\nvar tagged_1 = require(\"./annotation/tagged\");\nexports.tagged = tagged_1.tagged;\nvar named_1 = require(\"./annotation/named\");\nexports.named = named_1.named;\nvar inject_1 = require(\"./annotation/inject\");\nexports.inject = inject_1.inject;\nexports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;\nvar optional_1 = require(\"./annotation/optional\");\nexports.optional = optional_1.optional;\nvar unmanaged_1 = require(\"./annotation/unmanaged\");\nexports.unmanaged = unmanaged_1.unmanaged;\nvar multi_inject_1 = require(\"./annotation/multi_inject\");\nexports.multiInject = multi_inject_1.multiInject;\nvar target_name_1 = require(\"./annotation/target_name\");\nexports.targetName = target_name_1.targetName;\nvar post_construct_1 = require(\"./annotation/post_construct\");\nexports.postConstruct = post_construct_1.postConstruct;\nvar metadata_reader_1 = require(\"./planning/metadata_reader\");\nexports.MetadataReader = metadata_reader_1.MetadataReader;\nvar guid_1 = require(\"./utils/guid\");\nexports.guid = guid_1.guid;\nvar decorator_utils_1 = require(\"./annotation/decorator_utils\");\nexports.decorate = decorator_utils_1.decorate;\nvar constraint_helpers_1 = require(\"./syntax/constraint_helpers\");\nexports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;\nexports.taggedConstraint = constraint_helpers_1.taggedConstraint;\nexports.namedConstraint = constraint_helpers_1.namedConstraint;\nexports.typeConstraint = constraint_helpers_1.typeConstraint;\nvar serialization_1 = require(\"./utils/serialization\");\nexports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;\nvar binding_utils_1 = require(\"./utils/binding_utils\");\nexports.multiBindToService = binding_utils_1.multiBindToService;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/inversify.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TYPES = {\n    IActionDispatcher: Symbol('IActionDispatcher'),\n    IActionDispatcherProvider: Symbol('IActionDispatcherProvider'),\n    IActionHandlerInitializer: Symbol('IActionHandlerInitializer'),\n    ActionHandlerRegistry: Symbol('ActionHandlerRegistry'),\n    AnimationFrameSyncer: Symbol('AnimationFrameSyncer'),\n    CommandStackOptions: Symbol('CommandStackOptions'),\n    IButtonHandler: Symbol('IButtonHandler'),\n    ICommand: Symbol('ICommand'),\n    ICommandStack: Symbol('ICommandStack'),\n    ICommandStackProvider: Symbol('ICommandStackProvider'),\n    DOMHelper: Symbol('DOMHelper'),\n    HiddenVNodeDecorator: Symbol('HiddenVNodeDecorator'),\n    HoverState: Symbol('HoverState'),\n    KeyListener: Symbol('KeyListener'),\n    Layouter: Symbol('Layouter'),\n    LayoutRegistry: Symbol('LayoutRegistry'),\n    ILogger: Symbol('ILogger'),\n    LogLevel: Symbol('LogLevel'),\n    IModelFactory: Symbol('IModelFactory'),\n    ModelRendererFactory: Symbol('ModelRendererFactory'),\n    ModelSource: Symbol('ModelSource'),\n    ModelSourceProvider: Symbol('ModelSourceProvider'),\n    MouseListener: Symbol('MouseListener'),\n    PopupModelFactory: Symbol('PopupModelFactory'),\n    PopupMouseListener: Symbol('PopupMouseListener'),\n    PopupVNodeDecorator: Symbol('PopupVNodeDecorator'),\n    SModelStorage: Symbol('SModelStorage'),\n    StateAwareModelProvider: Symbol('StateAwareModelProvider'),\n    SvgExporter: Symbol('SvgExporter'),\n    IViewer: Symbol('IViewer'),\n    ViewerOptions: Symbol('ViewerOptions'),\n    IViewerProvider: Symbol('IViewerProvider'),\n    ViewRegistry: Symbol('ViewRegistry'),\n    IVNodeDecorator: Symbol('IVNodeDecorator')\n};\n//# sourceMappingURL=types.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/types.js\n// module id = 1\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\n/**\n * Base class for all elements of the diagram model.\n * Each model element must have a unique ID and a type that is used to look up its view.\n */\nvar SModelElement = /** @class */ (function () {\n    function SModelElement() {\n    }\n    Object.defineProperty(SModelElement.prototype, \"root\", {\n        get: function () {\n            var current = this;\n            while (current) {\n                if (current instanceof SModelRoot)\n                    return current;\n                else if (current instanceof SChildElement)\n                    current = current.parent;\n                else\n                    current = undefined;\n            }\n            throw new Error(\"Element has no root\");\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(SModelElement.prototype, \"index\", {\n        get: function () {\n            return this.root.index;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * A feature is a symbol identifying some functionality that can be enabled or disabled for\n     * a model element. The base implementation always returns false, so it disables all features.\n     */\n    SModelElement.prototype.hasFeature = function (feature) {\n        return false;\n    };\n    return SModelElement;\n}());\nexports.SModelElement = SModelElement;\n/**\n * A parent element may contain child elements, thus the diagram model forms a tree.\n */\nvar SParentElement = /** @class */ (function (_super) {\n    __extends(SParentElement, _super);\n    function SParentElement() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.children = [];\n        return _this;\n    }\n    SParentElement.prototype.add = function (child, i) {\n        if (i === undefined) {\n            this.children.push(child);\n        }\n        else {\n            if (i < 0 || i > this.children.length) {\n                throw \"Child index out of bounds \" + i + \" (0..\" + this.children.length + \")\";\n            }\n            this.children.splice(i, 0, child);\n        }\n        child.parent = this;\n        this.index.add(child);\n    };\n    SParentElement.prototype.remove = function (child) {\n        var i = this.children.indexOf(child);\n        if (i < 0) {\n            throw \"No such child \" + child;\n        }\n        this.children.splice(i, 1);\n        delete child.parent;\n        this.index.remove(child);\n    };\n    SParentElement.prototype.move = function (child, newIndex) {\n        var i = this.children.indexOf(child);\n        if (i === -1) {\n            throw \"No such child \" + child;\n        }\n        else {\n            if (newIndex < 0 || newIndex > this.children.length - 1) {\n                throw \"Child index out of bounds \" + i + \" (0..\" + this.children.length + \")\";\n            }\n            this.children.splice(i, 1);\n            this.children.splice(newIndex, 0, child);\n        }\n    };\n    /**\n     * Transform the given bounds from the local coordinate system of this element to the coordinate\n     * system of its parent. This function should consider any transformation that is applied to the\n     * view of this element and its contents.\n     * The base implementation assumes that this element does not define a local coordinate system,\n     * so it leaves the bounds unchanged.\n     */\n    SParentElement.prototype.localToParent = function (point) {\n        return geometry_1.isBounds(point) ? point : { x: point.x, y: point.y, width: -1, height: -1 };\n    };\n    /**\n     * Transform the given bounds from the coordinate system of this element's parent to its local\n     * coordinate system. This function should consider any transformation that is applied to the\n     * view of this element and its contents.\n     * The base implementation assumes that this element does not define a local coordinate system,\n     * so it leaves the bounds unchanged.\n     */\n    SParentElement.prototype.parentToLocal = function (point) {\n        return geometry_1.isBounds(point) ? point : { x: point.x, y: point.y, width: -1, height: -1 };\n    };\n    return SParentElement;\n}(SModelElement));\nexports.SParentElement = SParentElement;\n/**\n * A child element is contained in a parent element. All elements except the model root are child\n * elements. In order to keep the model class hierarchy simple, every child element is also a\n * parent element, although for many elements the array of children is empty (i.e. they are\n * leafs in the model element tree).\n */\nvar SChildElement = /** @class */ (function (_super) {\n    __extends(SChildElement, _super);\n    function SChildElement() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return SChildElement;\n}(SParentElement));\nexports.SChildElement = SChildElement;\n/**\n * Base class for the root element of the diagram model tree.\n */\nvar SModelRoot = /** @class */ (function (_super) {\n    __extends(SModelRoot, _super);\n    function SModelRoot() {\n        var _this = _super.call(this) || this;\n        _this.canvasBounds = geometry_1.EMPTY_BOUNDS;\n        // Override the index property from SModelElement, which has a getter, with a data property\n        Object.defineProperty(_this, 'index', {\n            value: new SModelIndex(),\n            writable: false\n        });\n        return _this;\n    }\n    return SModelRoot;\n}(SParentElement));\nexports.SModelRoot = SModelRoot;\n/**\n * Used to speed up model element lookup by id.\n */\nvar SModelIndex = /** @class */ (function () {\n    function SModelIndex() {\n        this.id2element = new Map;\n    }\n    SModelIndex.prototype.add = function (element) {\n        if (this.contains(element)) {\n            throw new Error(\"Duplicate ID in model: \" + element.id);\n        }\n        this.id2element.set(element.id, element);\n        if (element.children !== undefined && element.children.constructor === Array) {\n            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n                var child = _a[_i];\n                this.add(child);\n            }\n        }\n    };\n    SModelIndex.prototype.remove = function (element) {\n        this.id2element.delete(element.id);\n        if (element.children !== undefined && element.children.constructor === Array) {\n            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n                var child = _a[_i];\n                this.remove(child);\n            }\n        }\n    };\n    SModelIndex.prototype.contains = function (element) {\n        return this.id2element.get(element.id) !== undefined;\n    };\n    SModelIndex.prototype.removeById = function (elementId) {\n        this.id2element.delete(elementId);\n    };\n    SModelIndex.prototype.getById = function (id) {\n        return this.id2element.get(id);\n    };\n    SModelIndex.prototype.all = function () {\n        var all = [];\n        this.id2element.forEach(function (element) { return all.push(element); });\n        return all;\n    };\n    return SModelIndex;\n}());\nexports.SModelIndex = SModelIndex;\n//# sourceMappingURL=smodel.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/model/smodel.js\n// module id = 2\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * (x,y) coordinates of the origin.\n */\nexports.ORIGIN_POINT = Object.freeze({\n    x: 0,\n    y: 0\n});\n/**\n * A dimension with both width and height set to a negative value, which is considered as undefined.\n */\nexports.EMPTY_DIMENSION = Object.freeze({\n    width: -1,\n    height: -1\n});\n/**\n * Checks whether the given dimention is valid, i.e. the width and height are non-zero.\n * @param {Dimension} b - Dimension object\n * @returns {boolean}\n */\nfunction isValidDimension(d) {\n    return d.width >= 0 && d.height >= 0;\n}\nexports.isValidDimension = isValidDimension;\nexports.EMPTY_BOUNDS = Object.freeze({\n    x: 0,\n    y: 0,\n    width: -1,\n    height: -1\n});\nfunction isBounds(element) {\n    return 'x' in element\n        && 'y' in element\n        && 'width' in element\n        && 'height' in element;\n}\nexports.isBounds = isBounds;\n/**\n * Combines the bounds of two objects into one, so that the new bounds\n * are the minimum bounds that covers both of the original bounds.\n * @param {Bounds} b0 - First bounds object\n * @param {Bounds} b1 - Second bounds object\n * @returns {Bounds} The combined bounds\n */\nfunction combine(b0, b1) {\n    var minX = Math.min(b0.x, b1.x);\n    var minY = Math.min(b0.y, b1.y);\n    var maxX = Math.max(b0.x + (b0.width >= 0 ? b0.width : 0), b1.x + (b1.width >= 0 ? b1.width : 0));\n    var maxY = Math.max(b0.y + (b0.height >= 0 ? b0.height : 0), b1.y + (b1.height >= 0 ? b1.height : 0));\n    return {\n        x: minX, y: minY, width: maxX - minX, height: maxY - minY\n    };\n}\nexports.combine = combine;\n/**\n * Translates the given bounds.\n * @param {Bounds} b - Bounds object\n * @param {Point} p - Vector by which to translate the bounds\n * @returns {Bounds} The translated bounds\n */\nfunction translate(b, p) {\n    return {\n        x: b.x + p.x,\n        y: b.y + p.y,\n        width: b.width,\n        height: b.height\n    };\n}\nexports.translate = translate;\n/**\n * Returns the center point of the bounds of an object\n * @param {Bounds} b - Bounds object\n * @returns {Point} the center point\n */\nfunction center(b) {\n    return {\n        x: b.x + (b.width >= 0 ? 0.5 * b.width : 0),\n        y: b.y + (b.height >= 0 ? 0.5 * b.height : 0)\n    };\n}\nexports.center = center;\n/**\n * Checks whether the point p is included in the bounds b.\n */\nfunction includes(b, p) {\n    return p.x >= b.x && p.x <= b.x + b.width && p.y >= b.y && p.y <= b.y + b.height;\n}\nexports.includes = includes;\n/**\n * Enumeration of possible directions (left, right, up, down)\n */\nvar Direction;\n(function (Direction) {\n    Direction[Direction[\"left\"] = 0] = \"left\";\n    Direction[Direction[\"right\"] = 1] = \"right\";\n    Direction[Direction[\"up\"] = 2] = \"up\";\n    Direction[Direction[\"down\"] = 3] = \"down\";\n})(Direction = exports.Direction || (exports.Direction = {}));\n/**\n * Returns the \"straight line\" distance between two points\n * @param {Point} a - First point\n * @param {Point} b - Second point\n * @returns {number} The eucledian distance\n */\nfunction euclideanDistance(a, b) {\n    var dx = b.x - a.x;\n    var dy = b.y - a.y;\n    return Math.sqrt(dx * dx + dy * dy);\n}\nexports.euclideanDistance = euclideanDistance;\n/**\n * Returns the distance between two points in a grid, using a\n * strictly vertical and/or horizontal path (versus straight line)\n * @param {Point} a - First point\n * @param {Point} b - Second point\n * @returns {number} The manhattan distance\n */\nfunction manhattanDistance(a, b) {\n    return Math.abs(b.x - a.x) + Math.abs(b.y - a.y);\n}\nexports.manhattanDistance = manhattanDistance;\n/**\n * Returns the distance between two points in a grid, using a\n * strictly vertical and/or horizontal path (versus straight line)\n * @param {Point} a - First point\n * @param {Point} b - Second point\n * @returns {number} The manhattan distance\n */\nfunction maxDistance(a, b) {\n    return Math.max(Math.abs(b.x - a.x), Math.abs(b.y - a.y));\n}\nexports.maxDistance = maxDistance;\n// range (-PI, PI]\nfunction angle(a, b) {\n    return Math.atan2(b.y - a.y, b.x - a.x);\n}\nexports.angle = angle;\n/**\n * Converts from radians to degrees\n * @param {number} a - A value in radians\n * @returns {number} The converted value\n */\nfunction toDegrees(a) {\n    return a * 180 / Math.PI;\n}\nexports.toDegrees = toDegrees;\n/**\n * Converts from degrees to radians\n * @param {number} a - A value in degrees\n * @returns {number} The converted value\n */\nfunction toRadians(a) {\n    return a * Math.PI / 180;\n}\nexports.toRadians = toRadians;\n/**\n * Returns whether two numbers are almost equal, within a small margin (0.001)\n * @param {number} a - First number\n * @param {number} b - Second number\n * @returns {boolean} True if the two numbers are almost equal\n */\nfunction almostEquals(a, b) {\n    return Math.abs(a - b) < 1e-3;\n}\nexports.almostEquals = almostEquals;\n//# sourceMappingURL=geometry.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/utils/geometry.js\n// module id = 3\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks.js\n// module id = 4\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NAMED_TAG = \"named\";\nexports.NAME_TAG = \"name\";\nexports.UNMANAGED_TAG = \"unmanaged\";\nexports.OPTIONAL_TAG = \"optional\";\nexports.INJECT_TAG = \"inject\";\nexports.MULTI_INJECT_TAG = \"multi_inject\";\nexports.TAGGED = \"inversify:tagged\";\nexports.TAGGED_PROP = \"inversify:tagged_props\";\nexports.PARAM_TYPES = \"inversify:paramtypes\";\nexports.DESIGN_PARAM_TYPES = \"design:paramtypes\";\nexports.POST_CONSTRUCT = \"post_construct\";\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/constants/metadata_keys.js\n// module id = 5\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_global.js\n// module id = 6\n// module chunks = 0","\"use strict\";\r\n\r\nvar SVGNS = 'http://www.w3.org/2000/svg';\r\nvar modulesNS = ['hook', 'on', 'style', 'class', 'props', 'attrs', 'dataset'];\r\nvar slice = Array.prototype.slice;\r\n\r\nfunction isPrimitive(val) {\r\n  return  typeof val === 'string'   ||\r\n          typeof val === 'number'   ||\r\n          typeof val === 'boolean'  ||\r\n          typeof val === 'symbol'   ||\r\n          val === null              ||\r\n          val === undefined;\r\n}\r\n\r\nfunction normalizeAttrs(attrs, nsURI, defNS, modules) {\r\n  var map = { ns: nsURI };\r\n  for (var i = 0, len = modules.length; i < len; i++) {\r\n    var mod = modules[i];\r\n    if(attrs[mod])\r\n      map[mod] = attrs[mod];\r\n  }\r\n  for(var key in attrs) {\r\n    if(key !== 'key' && key !== 'classNames' && key !== 'selector') {\r\n      var idx = key.indexOf('-');\r\n      if(idx > 0)\r\n        addAttr(key.slice(0, idx), key.slice(idx+1), attrs[key]);\r\n      else if(!map[key])\r\n        addAttr(defNS, key, attrs[key]);\r\n    }\r\n  }\r\n  return map;\r\n\r\n  function addAttr(namespace, key, val) {\r\n    var ns = map[namespace] || (map[namespace] = {});\r\n    ns[key] = val;\r\n  }\r\n}\r\n\r\nfunction buildFromStringTag(nsURI, defNS, modules, tag, attrs, children) {\r\n\r\n  if(attrs.selector) {\r\n    tag = tag + attrs.selector;\r\n  }\r\n  if(attrs.classNames) {\r\n    var cns = attrs.classNames;\r\n    tag = tag + '.' + (\r\n      Array.isArray(cns) ? cns.join('.') : cns.replace(/\\s+/g, '.')\r\n    );\r\n  }\r\n\r\n  return {\r\n    sel       : tag,\r\n    data      : normalizeAttrs(attrs, nsURI, defNS, modules),\r\n    children  : children.map( function(c) {\r\n      return isPrimitive(c) ? {text: c} : c;\r\n    }),\r\n    key: attrs.key\r\n  };\r\n}\r\n\r\nfunction buildFromComponent(nsURI, defNS, modules, tag, attrs, children) {\r\n  var res;\r\n  if(typeof tag === 'function')\r\n    res = tag(attrs, children);\r\n  else if(tag && typeof tag.view === 'function')\r\n    res = tag.view(attrs, children);\r\n  else if(tag && typeof tag.render === 'function')\r\n    res = tag.render(attrs, children);\r\n  else\r\n    throw \"JSX tag must be either a string, a function or an object with 'view' or 'render' methods\";\r\n  res.key = attrs.key;\r\n  return res;\r\n}\r\n\r\nfunction flatten(nested, start, flat) {\r\n  for (var i = start, len = nested.length; i < len; i++) {\r\n    var item = nested[i];\r\n    if (Array.isArray(item)) {\r\n      flatten(item, 0, flat);\r\n    } else {\r\n      flat.push(item);\r\n    }\r\n  }\r\n}\r\n\r\nfunction maybeFlatten(array) {\r\n  if (array) {\r\n    for (var i = 0, len = array.length; i < len; i++) {\r\n      if (Array.isArray(array[i])) {\r\n        var flat = array.slice(0, i);\r\n        flatten(array, i, flat);\r\n        array = flat;\r\n        break;\r\n      }\r\n    }\r\n  }\r\n  return array;\r\n}\r\n\r\nfunction buildVnode(nsURI, defNS, modules, tag, attrs, children) {\r\n  attrs = attrs || {};\r\n  children = maybeFlatten(children);\r\n  if(typeof tag === 'string') {\r\n    return buildFromStringTag(nsURI, defNS, modules, tag, attrs, children)\r\n  } else {\r\n    return buildFromComponent(nsURI, defNS, modules, tag, attrs, children)\r\n  }\r\n}\r\n\r\nfunction JSX(nsURI, defNS, modules) {\r\n  return function jsxWithCustomNS(tag, attrs, children) {\r\n    if(arguments.length > 3 || !Array.isArray(children))\r\n      children = slice.call(arguments, 2);\r\n    return buildVnode(nsURI, defNS || 'props', modules || modulesNS, tag, attrs, children);\r\n  };\r\n}\r\n\r\nmodule.exports = {\r\n  html: JSX(undefined),\r\n  svg: JSX(SVGNS, 'attrs'),\r\n  JSX: JSX\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom-jsx/snabbdom-jsx.js\n// module id = 7\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\n/**\n * Base class for all commands.\n */\nvar Command = /** @class */ (function () {\n    function Command() {\n    }\n    return Command;\n}());\nexports.Command = Command;\n/**\n * A mergeable command can accumulate subsequent commands of the same kind.\n *\n * For example, multiple subsequent move commands can be merged to yield a\n * single command, such that undo will roll them back altogether. Otherwise\n * the user would have to push CTRL-Z for each mouse move element that\n * resuted in a command.\n */\nvar MergeableCommand = /** @class */ (function (_super) {\n    __extends(MergeableCommand, _super);\n    function MergeableCommand() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * Tries to merge the given command with this.\n     *\n     * @param command\n     * @param context\n     */\n    MergeableCommand.prototype.merge = function (command, context) {\n        return false;\n    };\n    return MergeableCommand;\n}(Command));\nexports.MergeableCommand = MergeableCommand;\n/**\n * A hidden command is used to trigger the rendering of a model on a\n * hidden canvas.\n *\n * Some graphical elements are styled using CSS, others have bounds that\n * require to layout their children before being computed. In such cases\n * we cannot tell about the size of elements without acutally rendering\n * the DOM. We render them to an invisible canvas. This can be achieved\n * using hidden commands.\n *\n * Hidden commands do not change the model directly, and are as such\n * neither undoable nor redoable. The command stack does not push them on\n * any stack and forwards the resulting model to the invisible viewer.\n */\nvar HiddenCommand = /** @class */ (function (_super) {\n    __extends(HiddenCommand, _super);\n    function HiddenCommand() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    HiddenCommand.prototype.undo = function (context) {\n        context.logger.error(this, 'Cannot undo a hidden command');\n        return context.root;\n    };\n    HiddenCommand.prototype.redo = function (context) {\n        context.logger.error(this, 'Cannot redo a hidden command');\n        return context.root;\n    };\n    return HiddenCommand;\n}(Command));\nexports.HiddenCommand = HiddenCommand;\nvar PopupCommand = /** @class */ (function (_super) {\n    __extends(PopupCommand, _super);\n    function PopupCommand() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return PopupCommand;\n}(Command));\nexports.PopupCommand = PopupCommand;\n/**\n * A system command is triggered by the system, e.g. in order to update bounds\n * in the model with data fetched from the DOM.\n *\n * As it is automatically triggered it should not count as a single command in\n * undo/redo operations. Into the bargain, such an automatic command could occur\n * after an undo and as such make the next redo command invalid because it is\n * based on a model state that has changed. The command stack handles system\n * commands in a special way to overcome these issues.\n */\nvar SystemCommand = /** @class */ (function (_super) {\n    __extends(SystemCommand, _super);\n    function SystemCommand() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return SystemCommand;\n}(Command));\nexports.SystemCommand = SystemCommand;\nvar CommandActionHandler = /** @class */ (function () {\n    function CommandActionHandler(commandType) {\n        this.commandType = commandType;\n    }\n    CommandActionHandler.prototype.handle = function (action) {\n        return new this.commandType(action);\n    };\n    return CommandActionHandler;\n}());\nexports.CommandActionHandler = CommandActionHandler;\nvar CommandActionHandlerInitializer = /** @class */ (function () {\n    function CommandActionHandlerInitializer(commandCtrs) {\n        this.commandCtrs = commandCtrs;\n    }\n    CommandActionHandlerInitializer.prototype.initialize = function (registry) {\n        this.commandCtrs.forEach(function (commandCtr) { return registry.registerCommand(commandCtr); });\n    };\n    CommandActionHandlerInitializer = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.multiInject(types_1.TYPES.ICommand)), __param(0, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Array])\n    ], CommandActionHandlerInitializer);\n    return CommandActionHandlerInitializer;\n}());\nexports.CommandActionHandlerInitializer = CommandActionHandlerInitializer;\n//# sourceMappingURL=command.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/commands/command.js\n// module id = 8\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nexports.boundsFeature = Symbol('boundsFeature');\nexports.layoutContainerFeature = Symbol('layoutContainerFeature');\nexports.layoutableChildFeature = Symbol('layoutableChildFeature');\nexports.alignFeature = Symbol('alignFeature');\nfunction isBoundsAware(element) {\n    return 'bounds' in element;\n}\nexports.isBoundsAware = isBoundsAware;\nfunction isLayoutContainer(element) {\n    return 'layout' in element\n        && isBoundsAware(element)\n        && element.hasFeature(exports.layoutContainerFeature);\n}\nexports.isLayoutContainer = isLayoutContainer;\nfunction isLayoutableChild(element) {\n    return isBoundsAware(element)\n        && element.hasFeature(exports.layoutableChildFeature);\n}\nexports.isLayoutableChild = isLayoutableChild;\nfunction isSizeable(element) {\n    return element.hasFeature(exports.boundsFeature) && isBoundsAware(element);\n}\nexports.isSizeable = isSizeable;\nfunction isAlignable(element) {\n    return 'alignment' in element\n        && element.hasFeature(exports.alignFeature);\n}\nexports.isAlignable = isAlignable;\nfunction getAbsoluteBounds(element) {\n    var boundsAware = smodel_utils_1.findParentByFeature(element, isBoundsAware);\n    if (boundsAware !== undefined) {\n        var bounds = boundsAware.bounds;\n        var current = boundsAware;\n        while (current instanceof smodel_1.SChildElement) {\n            var parent_1 = current.parent;\n            bounds = parent_1.localToParent(bounds);\n            current = parent_1;\n        }\n        return bounds;\n    }\n    else {\n        return geometry_1.EMPTY_BOUNDS;\n    }\n}\nexports.getAbsoluteBounds = getAbsoluteBounds;\n/**\n * Abstract class for elements with a position and a size.\n */\nvar SShapeElement = /** @class */ (function (_super) {\n    __extends(SShapeElement, _super);\n    function SShapeElement() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.position = geometry_1.ORIGIN_POINT;\n        _this.size = geometry_1.EMPTY_DIMENSION;\n        return _this;\n    }\n    Object.defineProperty(SShapeElement.prototype, \"bounds\", {\n        get: function () {\n            return {\n                x: this.position.x,\n                y: this.position.y,\n                width: this.size.width,\n                height: this.size.height\n            };\n        },\n        set: function (newBounds) {\n            this.position = {\n                x: newBounds.x,\n                y: newBounds.y\n            };\n            this.size = {\n                width: newBounds.width,\n                height: newBounds.height\n            };\n        },\n        enumerable: true,\n        configurable: true\n    });\n    SShapeElement.prototype.localToParent = function (point) {\n        var result = {\n            x: point.x + this.position.x,\n            y: point.y + this.position.y,\n            width: -1,\n            height: -1\n        };\n        if (geometry_1.isBounds(point)) {\n            result.width = point.width;\n            result.height = point.height;\n        }\n        return result;\n    };\n    SShapeElement.prototype.parentToLocal = function (point) {\n        var result = {\n            x: point.x - this.position.x,\n            y: point.y - this.position.y,\n            width: -1,\n            height: -1\n        };\n        if (geometry_1.isBounds(point)) {\n            result.width = point.width;\n            result.height = point.height;\n        }\n        return result;\n    };\n    return SShapeElement;\n}(smodel_1.SChildElement));\nexports.SShapeElement = SShapeElement;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/model.js\n// module id = 9\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    // export native or passed\n    out = (own ? target : source)[key];\n    // bind timers to global for call from export context\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // extend global\n    if (target) redefine(target, key, out, type & $export.U);\n    // export\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_export.js\n// module id = 10\n// module chunks = 0","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n  var S = String(defined(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n  var O = {};\n  O[NAME] = exec(createHTML);\n  $export($export.P + $export.F * fails(function () {\n    var test = ''[NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  }), 'String', O);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-html.js\n// module id = 11\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DUPLICATED_INJECTABLE_DECORATOR = \"Cannot apply @injectable decorator multiple times.\";\nexports.DUPLICATED_METADATA = \"Metadata key was used more than once in a parameter:\";\nexports.NULL_ARGUMENT = \"NULL argument\";\nexports.KEY_NOT_FOUND = \"Key Not Found\";\nexports.AMBIGUOUS_MATCH = \"Ambiguous match found for serviceIdentifier:\";\nexports.CANNOT_UNBIND = \"Could not unbind serviceIdentifier:\";\nexports.NOT_REGISTERED = \"No matching bindings found for serviceIdentifier:\";\nexports.MISSING_INJECTABLE_ANNOTATION = \"Missing required @injectable annotation in:\";\nexports.MISSING_INJECT_ANNOTATION = \"Missing required @inject or @multiInject annotation in:\";\nexports.UNDEFINED_INJECT_ANNOTATION = function (name) {\n    return \"@inject called with undefined this could mean that the class \" + name + \" has \" +\n        \"a circular dependency problem. You can use a LazyServiceIdentifer to  \" +\n        \"overcome this limitation.\";\n};\nexports.CIRCULAR_DEPENDENCY = \"Circular dependency found:\";\nexports.NOT_IMPLEMENTED = \"Sorry, this feature is not fully implemented yet.\";\nexports.INVALID_BINDING_TYPE = \"Invalid binding type:\";\nexports.NO_MORE_SNAPSHOTS_AVAILABLE = \"No snapshot available to restore.\";\nexports.INVALID_MIDDLEWARE_RETURN = \"Invalid return type in middleware. Middleware must return!\";\nexports.INVALID_FUNCTION_BINDING = \"Value provided to function binding must be a function!\";\nexports.INVALID_TO_SELF_VALUE = \"The toSelf function can only be applied when a constructor is \" +\n    \"used as service identifier\";\nexports.INVALID_DECORATOR_OPERATION = \"The @inject @multiInject @tagged and @named decorators \" +\n    \"must be applied to the parameters of a class constructor or a class property.\";\nexports.ARGUMENTS_LENGTH_MISMATCH_1 = \"The number of constructor arguments in the derived class \";\nexports.ARGUMENTS_LENGTH_MISMATCH_2 = \" must be >= than the number of constructor arguments of its base class.\";\nexports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = \"Invalid Container constructor argument. Container options \" +\n    \"must be an object.\";\nexports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = \"Invalid Container option. Default scope must \" +\n    \"be a string ('singleton' or 'transient').\";\nexports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = \"Invalid Container option. Auto bind injectable must \" +\n    \"be a boolean\";\nexports.MULTIPLE_POST_CONSTRUCT_METHODS = \"Cannot apply @postConstruct decorator multiple times in the same class\";\nexports.POST_CONSTRUCT_ERROR = function () {\n    var values = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        values[_i] = arguments[_i];\n    }\n    return \"@postConstruct error in class \" + values[0] + \": \" + values[1];\n};\nexports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {\n    var values = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        values[_i] = arguments[_i];\n    }\n    return \"It looks like there is a circular dependency \" +\n        (\"in one of the '\" + values[0] + \"' bindings. Please investigate bindings with\") +\n        (\"service identifier '\" + values[1] + \"'.\");\n};\nexports.STACK_OVERFLOW = \"Maximum call stack size exceeded\";\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/constants/error_msgs.js\n// module id = 12\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"./smodel\");\n/**\n * Model element types can include a colon to separate the basic type and a sub-type. This function\n * extracts the basic type of a model element.\n */\nfunction getBasicType(schema) {\n    if (!schema.type)\n        return '';\n    var colonIndex = schema.type.indexOf(':');\n    if (colonIndex >= 0)\n        return schema.type.substring(0, colonIndex);\n    else\n        return schema.type;\n}\nexports.getBasicType = getBasicType;\n/**\n * Model element types can include a colon to separate the basic type and a sub-type. This function\n * extracts the sub-type of a model element.\n */\nfunction getSubType(schema) {\n    if (!schema.type)\n        return '';\n    var colonIndex = schema.type.indexOf(':');\n    if (colonIndex >= 0)\n        return schema.type.substring(colonIndex + 1);\n    else\n        return schema.type;\n}\nexports.getSubType = getSubType;\n/**\n * Find the element with the given identifier. If you need to find multiple elements, using an\n * SModelIndex might be more effective.\n */\nfunction findElement(parent, elementId) {\n    if (parent.id === elementId)\n        return parent;\n    if (parent.children !== undefined) {\n        for (var _i = 0, _a = parent.children; _i < _a.length; _i++) {\n            var child = _a[_i];\n            var result = findElement(child, elementId);\n            if (result !== undefined)\n                return result;\n        }\n    }\n    return undefined;\n}\nexports.findElement = findElement;\n/**\n * Find a parent element that satisfies the given predicate.\n */\nfunction findParent(element, predicate) {\n    var current = element;\n    while (current !== undefined) {\n        if (predicate(current))\n            return current;\n        else if (current instanceof smodel_1.SChildElement)\n            current = current.parent;\n        else\n            current = undefined;\n    }\n    return current;\n}\nexports.findParent = findParent;\n/**\n * Find a parent element that implements the feature identified with the given predicate.\n */\nfunction findParentByFeature(element, predicate) {\n    var current = element;\n    while (current !== undefined) {\n        if (predicate(current))\n            return current;\n        else if (current instanceof smodel_1.SChildElement)\n            current = current.parent;\n        else\n            current = undefined;\n    }\n    return current;\n}\nexports.findParentByFeature = findParentByFeature;\n/**\n * Translate a point from the coordinate system of the source element to the coordinate system\n * of the target element.\n */\nfunction translatePoint(point, source, target) {\n    if (source !== target) {\n        // Translate from the source to the root element\n        while (source instanceof smodel_1.SChildElement) {\n            point = source.localToParent(point);\n            source = source.parent;\n            if (source === target)\n                return point;\n        }\n        // Translate from the root to the target element\n        var targetTrace = [];\n        while (target instanceof smodel_1.SChildElement) {\n            targetTrace.push(target);\n            target = target.parent;\n        }\n        if (source !== target)\n            throw new Error(\"Incompatible source and target: \" + source.id + \", \" + target.id);\n        for (var i = targetTrace.length - 1; i >= 0; i--) {\n            point = targetTrace[i].parentToLocal(point);\n        }\n    }\n    return point;\n}\nexports.translatePoint = translatePoint;\n//# sourceMappingURL=smodel-utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/model/smodel-utils.js\n// module id = 13\n// module chunks = 0","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-object.js\n// module id = 14\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the 'License'); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nfunction __export(m) {\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// ------------------ Base ------------------\n__export(require(\"./base/actions/action\"));\n__export(require(\"./base/actions/action-dispatcher\"));\n__export(require(\"./base/actions/action-handler\"));\n__export(require(\"./base/animations/animation-frame-syncer\"));\n__export(require(\"./base/animations/animation\"));\n__export(require(\"./base/animations/easing\"));\n__export(require(\"./base/commands/command-stack-options\"));\n__export(require(\"./base/commands/command-stack\"));\n__export(require(\"./base/commands/command\"));\n__export(require(\"./base/features/initialize-canvas\"));\n__export(require(\"./base/features/set-model\"));\n__export(require(\"./base/model/smodel-factory\"));\n__export(require(\"./base/model/smodel-storage\"));\n__export(require(\"./base/model/smodel-utils\"));\n__export(require(\"./base/model/smodel\"));\n__export(require(\"./base/views/key-tool\"));\n__export(require(\"./base/views/mouse-tool\"));\n__export(require(\"./base/views/thunk-view\"));\n__export(require(\"./base/views/view\"));\n__export(require(\"./base/views/viewer-cache\"));\n__export(require(\"./base/views/viewer-options\"));\n__export(require(\"./base/views/viewer\"));\n__export(require(\"./base/views/vnode-decorators\"));\n__export(require(\"./base/views/vnode-utils\"));\n__export(require(\"./base/types\"));\nvar di_config_1 = require(\"./base/di.config\");\nexports.defaultModule = di_config_1.default;\n// ------------------ Features ------------------\n__export(require(\"./features/bounds/bounds-manipulation\"));\n__export(require(\"./features/bounds/layout\"));\n__export(require(\"./features/bounds/model\"));\n__export(require(\"./features/bounds/vbox-layout\"));\n__export(require(\"./features/bounds/hbox-layout\"));\n__export(require(\"./features/bounds/stack-layout\"));\n__export(require(\"./features/button/button-handler\"));\n__export(require(\"./features/button/model\"));\n__export(require(\"./features/expand/expand\"));\n__export(require(\"./features/expand/model\"));\n__export(require(\"./features/expand/views\"));\n__export(require(\"./features/export/export\"));\n__export(require(\"./features/export/model\"));\n__export(require(\"./features/export/svg-exporter\"));\n__export(require(\"./features/fade/fade\"));\n__export(require(\"./features/fade/model\"));\n__export(require(\"./features/hover/hover\"));\n__export(require(\"./features/hover/model\"));\n__export(require(\"./features/move/model\"));\n__export(require(\"./features/move/move\"));\n__export(require(\"./features/open/open\"));\n__export(require(\"./features/open/model\"));\n__export(require(\"./features/select/model\"));\n__export(require(\"./features/select/select\"));\n__export(require(\"./features/undo-redo/undo-redo\"));\n__export(require(\"./features/update/model-matching\"));\n__export(require(\"./features/update/update-model\"));\n__export(require(\"./features/viewport/center-fit\"));\n__export(require(\"./features/viewport/model\"));\n__export(require(\"./features/viewport/scroll\"));\n__export(require(\"./features/viewport/viewport-root\"));\n__export(require(\"./features/viewport/viewport\"));\n__export(require(\"./features/viewport/zoom\"));\nvar di_config_2 = require(\"./features/move/di.config\");\nexports.moveModule = di_config_2.default;\nvar di_config_3 = require(\"./features/bounds/di.config\");\nexports.boundsModule = di_config_3.default;\nvar di_config_4 = require(\"./features/fade/di.config\");\nexports.fadeModule = di_config_4.default;\nvar di_config_5 = require(\"./features/select/di.config\");\nexports.selectModule = di_config_5.default;\nvar di_config_6 = require(\"./features/undo-redo/di.config\");\nexports.undoRedoModule = di_config_6.default;\nvar di_config_7 = require(\"./features/viewport/di.config\");\nexports.viewportModule = di_config_7.default;\nvar di_config_8 = require(\"./features/hover/di.config\");\nexports.hoverModule = di_config_8.default;\nvar di_config_9 = require(\"./features/export/di.config\");\nexports.exportModule = di_config_9.default;\nvar di_config_10 = require(\"./features/expand/di.config\");\nexports.expandModule = di_config_10.default;\nvar di_config_11 = require(\"./features/open/di.config\");\nexports.openModule = di_config_11.default;\nvar di_config_12 = require(\"./features/button/di.config\");\nexports.buttonModule = di_config_12.default;\n// ------------------ Graph ------------------\n__export(require(\"./graph/sgraph-factory\"));\n__export(require(\"./graph/sgraph\"));\n__export(require(\"./graph/views\"));\n// ------------------ Library ------------------\n__export(require(\"./lib/generic-views\"));\n__export(require(\"./lib/html-views\"));\n__export(require(\"./lib/model\"));\n__export(require(\"./lib/svg-views\"));\n// ------------------ Model Source ------------------\n__export(require(\"./model-source/diagram-server\"));\n__export(require(\"./model-source/diagram-state\"));\n__export(require(\"./model-source/local-model-source\"));\n__export(require(\"./model-source/logging\"));\n__export(require(\"./model-source/model-source\"));\n__export(require(\"./model-source/websocket\"));\nvar di_config_13 = require(\"./model-source/di.config\");\nexports.modelSourceModule = di_config_13.default;\n// ------------------ Utilities ------------------\n__export(require(\"./utils/color\"));\n__export(require(\"./utils/geometry\"));\n__export(require(\"./utils/logging\"));\n__export(require(\"./utils/registry\"));\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/index.js\n// module id = 15\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar Metadata = (function () {\n    function Metadata(key, value) {\n        this.key = key;\n        this.value = value;\n    }\n    Metadata.prototype.toString = function () {\n        if (this.key === METADATA_KEY.NAMED_TAG) {\n            return \"named: \" + this.value.toString() + \" \";\n        }\n        else {\n            return \"tagged: { key:\" + this.key.toString() + \", value: \" + this.value + \" }\";\n        }\n    };\n    return Metadata;\n}());\nexports.Metadata = Metadata;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/metadata.js\n// module id = 16\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar smodel_1 = require(\"./smodel\");\n/**\n * The default model factory creates SModelRoot for the root element and SChildElement for all other\n * model elements.\n */\nvar SModelFactory = /** @class */ (function () {\n    function SModelFactory() {\n    }\n    SModelFactory.prototype.createElement = function (schema, parent) {\n        return this.initializeChild(new smodel_1.SChildElement(), schema, parent);\n    };\n    SModelFactory.prototype.createRoot = function (schema) {\n        return this.initializeRoot(new smodel_1.SModelRoot(), schema);\n    };\n    SModelFactory.prototype.createSchema = function (element) {\n        var _this = this;\n        var schema = {};\n        for (var key in element) {\n            if (!this.isReserved(element, key)) {\n                var value = element[key];\n                if (typeof value !== 'function')\n                    schema[key] = value;\n            }\n        }\n        if (element instanceof smodel_1.SParentElement)\n            schema['children'] = element.children.map(function (child) { return _this.createSchema(child); });\n        return schema;\n    };\n    SModelFactory.prototype.initializeElement = function (element, schema) {\n        for (var key in schema) {\n            if (!this.isReserved(element, key)) {\n                var value = schema[key];\n                if (typeof value !== 'function')\n                    element[key] = value;\n            }\n        }\n        return element;\n    };\n    SModelFactory.prototype.isReserved = function (element, propertyName) {\n        if (['children', 'parent', 'index'].indexOf(propertyName) >= 0)\n            return true;\n        var obj = element;\n        do {\n            var descriptor = Object.getOwnPropertyDescriptor(obj, propertyName);\n            if (descriptor !== undefined)\n                return descriptor.get !== undefined;\n            obj = Object.getPrototypeOf(obj);\n        } while (obj);\n        return false;\n    };\n    SModelFactory.prototype.initializeParent = function (parent, schema) {\n        var _this = this;\n        this.initializeElement(parent, schema);\n        if (schema.children !== undefined && schema.children.constructor === Array) {\n            parent.children = schema.children.map(function (childSchema) { return _this.createElement(childSchema, parent); });\n        }\n        return parent;\n    };\n    SModelFactory.prototype.initializeChild = function (child, schema, parent) {\n        this.initializeParent(child, schema);\n        if (parent !== undefined) {\n            child.parent = parent;\n        }\n        return child;\n    };\n    SModelFactory.prototype.initializeRoot = function (root, schema) {\n        this.initializeParent(root, schema);\n        root.index.add(root);\n        return root;\n    };\n    SModelFactory = __decorate([\n        inversify_1.injectable()\n    ], SModelFactory);\n    return SModelFactory;\n}());\nexports.SModelFactory = SModelFactory;\nexports.EMPTY_ROOT = Object.freeze({\n    type: 'NONE',\n    id: 'EMPTY'\n});\n//# sourceMappingURL=smodel-factory.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/model/smodel-factory.js\n// module id = 17\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction setAttr(vnode, name, value) {\n    getAttrs(vnode)[name] = value;\n}\nexports.setAttr = setAttr;\nfunction setClass(vnode, name, value) {\n    getClass(vnode)[name] = value;\n}\nexports.setClass = setClass;\nfunction copyClassesFromVNode(source, target) {\n    var classList = getClass(source);\n    for (var c in classList) {\n        setClass(target, c, true);\n    }\n}\nexports.copyClassesFromVNode = copyClassesFromVNode;\nfunction copyClassesFromElement(element, target) {\n    var classList = element.classList;\n    for (var i = 0; i < classList.length; i++) {\n        setClass(target, classList.item(i), true);\n    }\n}\nexports.copyClassesFromElement = copyClassesFromElement;\nfunction mergeStyle(vnode, style) {\n    getData(vnode).style = __assign({}, (getData(vnode).style || {}), style);\n}\nexports.mergeStyle = mergeStyle;\nfunction on(vnode, event, listener, element) {\n    var on = getOn(vnode);\n    if (on[event]) {\n        throw new Error('EventListener for ' + event + ' already registered on VNode');\n    }\n    on[event] = [listener, element];\n}\nexports.on = on;\nfunction getAttrs(vnode) {\n    var data = getData(vnode);\n    if (!data.attrs)\n        data.attrs = {};\n    return data.attrs;\n}\nexports.getAttrs = getAttrs;\nfunction getData(vnode) {\n    if (!vnode.data)\n        vnode.data = {};\n    return vnode.data;\n}\nfunction getClass(vnode) {\n    var data = getData(vnode);\n    if (!data.class)\n        data.class = {};\n    return data.class;\n}\nfunction getOn(vnode) {\n    var data = getData(vnode);\n    if (!data.on)\n        data.on = {};\n    return data.on;\n}\n//# sourceMappingURL=vnode-utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/vnode-utils.js\n// module id = 18\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-object.js\n// module id = 19\n// module chunks = 0","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_core.js\n// module id = 20\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BindingScopeEnum = {\n    Request: \"Request\",\n    Singleton: \"Singleton\",\n    Transient: \"Transient\"\n};\nexports.BindingScopeEnum = BindingScopeEnum;\nvar BindingTypeEnum = {\n    ConstantValue: \"ConstantValue\",\n    Constructor: \"Constructor\",\n    DynamicValue: \"DynamicValue\",\n    Factory: \"Factory\",\n    Function: \"Function\",\n    Instance: \"Instance\",\n    Invalid: \"Invalid\",\n    Provider: \"Provider\"\n};\nexports.BindingTypeEnum = BindingTypeEnum;\nvar TargetTypeEnum = {\n    ClassProperty: \"ClassProperty\",\n    ConstructorArgument: \"ConstructorArgument\",\n    Variable: \"Variable\"\n};\nexports.TargetTypeEnum = TargetTypeEnum;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/constants/literal_types.js\n// module id = 21\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_defined.js\n// module id = 22\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_descriptors.js\n// module id = 23\n// module chunks = 0","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails.js\n// module id = 24\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_has.js\n// module id = 25\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_hide.js\n// module id = 26\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dp.js\n// module id = 27\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine.js\n// module id = 28\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {\n    var metadataKey = METADATA_KEY.TAGGED;\n    _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);\n}\nexports.tagParameter = tagParameter;\nfunction tagProperty(annotationTarget, propertyName, metadata) {\n    var metadataKey = METADATA_KEY.TAGGED_PROP;\n    _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);\n}\nexports.tagProperty = tagProperty;\nfunction _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {\n    var paramsOrPropertiesMetadata = {};\n    var isParameterDecorator = (typeof parameterIndex === \"number\");\n    var key = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;\n    if (isParameterDecorator && propertyName !== undefined) {\n        throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\n    }\n    if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {\n        paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);\n    }\n    var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];\n    if (!Array.isArray(paramOrPropertyMetadata)) {\n        paramOrPropertyMetadata = [];\n    }\n    else {\n        for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {\n            var m = paramOrPropertyMetadata_1[_i];\n            if (m.key === metadata.key) {\n                throw new Error(ERROR_MSGS.DUPLICATED_METADATA + \" \" + m.key);\n            }\n        }\n    }\n    paramOrPropertyMetadata.push(metadata);\n    paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;\n    Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);\n}\nfunction _decorate(decorators, target) {\n    Reflect.decorate(decorators, target);\n}\nfunction _param(paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); };\n}\nfunction decorate(decorator, target, parameterIndex) {\n    if (typeof parameterIndex === \"number\") {\n        _decorate([_param(parameterIndex, decorator)], target);\n    }\n    else if (typeof parameterIndex === \"string\") {\n        Reflect.decorate([decorator], target, parameterIndex);\n    }\n    else {\n        _decorate([decorator], target);\n    }\n}\nexports.decorate = decorate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/decorator_utils.js\n// module id = 29\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar smodel_1 = require(\"../model/smodel\");\nvar action_1 = require(\"../actions/action\");\nvar vnode_utils_1 = require(\"./vnode-utils\");\nvar dom_helper_1 = require(\"./dom-helper\");\nvar MouseTool = /** @class */ (function () {\n    function MouseTool(actionDispatcher, domHelper, mouseListeners) {\n        if (mouseListeners === void 0) { mouseListeners = []; }\n        this.actionDispatcher = actionDispatcher;\n        this.domHelper = domHelper;\n        this.mouseListeners = mouseListeners;\n    }\n    MouseTool.prototype.register = function (mouseListener) {\n        this.mouseListeners.push(mouseListener);\n    };\n    MouseTool.prototype.deregister = function (mouseListener) {\n        var index = this.mouseListeners.indexOf(mouseListener);\n        if (index >= 0)\n            this.mouseListeners.splice(index, 1);\n    };\n    MouseTool.prototype.getTargetElement = function (model, event) {\n        var target = event.target;\n        var index = model.index;\n        while (target) {\n            if (target.id) {\n                var element = index.getById(this.domHelper.findSModelIdByDOMElement(target));\n                if (element !== undefined)\n                    return element;\n            }\n            target = target.parentNode;\n        }\n        return undefined;\n    };\n    MouseTool.prototype.handleEvent = function (methodName, model, event) {\n        var _this = this;\n        this.focusOnMouseEvent(methodName, model);\n        var element = this.getTargetElement(model, event);\n        if (!element)\n            return;\n        var actions = this.mouseListeners\n            .map(function (listener) { return listener[methodName].apply(listener, [element, event]); })\n            .reduce(function (a, b) { return a.concat(b); });\n        if (actions.length > 0) {\n            event.preventDefault();\n            for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {\n                var actionOrPromise = actions_1[_i];\n                if (action_1.isAction(actionOrPromise)) {\n                    this.actionDispatcher.dispatch(actionOrPromise);\n                }\n                else {\n                    actionOrPromise.then(function (action) {\n                        _this.actionDispatcher.dispatch(action);\n                    });\n                }\n            }\n        }\n    };\n    MouseTool.prototype.focusOnMouseEvent = function (methodName, model) {\n        if (document) {\n            var domElement = document.getElementById(this.domHelper.createUniqueDOMElementId(model));\n            if (methodName === 'mouseDown' && domElement !== null && typeof domElement.focus === 'function')\n                domElement.focus();\n        }\n    };\n    MouseTool.prototype.mouseOver = function (model, event) {\n        this.handleEvent('mouseOver', model, event);\n    };\n    MouseTool.prototype.mouseOut = function (model, event) {\n        this.handleEvent('mouseOut', model, event);\n    };\n    MouseTool.prototype.mouseEnter = function (model, event) {\n        this.handleEvent('mouseEnter', model, event);\n    };\n    MouseTool.prototype.mouseLeave = function (model, event) {\n        this.handleEvent('mouseLeave', model, event);\n    };\n    MouseTool.prototype.mouseDown = function (model, event) {\n        this.handleEvent('mouseDown', model, event);\n    };\n    MouseTool.prototype.mouseMove = function (model, event) {\n        this.handleEvent('mouseMove', model, event);\n    };\n    MouseTool.prototype.mouseUp = function (model, event) {\n        this.handleEvent('mouseUp', model, event);\n    };\n    MouseTool.prototype.wheel = function (model, event) {\n        this.handleEvent('wheel', model, event);\n    };\n    MouseTool.prototype.doubleClick = function (model, event) {\n        this.handleEvent('doubleClick', model, event);\n    };\n    MouseTool.prototype.decorate = function (vnode, element) {\n        if (element instanceof smodel_1.SModelRoot) {\n            vnode_utils_1.on(vnode, 'mouseover', this.mouseOver.bind(this), element);\n            vnode_utils_1.on(vnode, 'mouseout', this.mouseOut.bind(this), element);\n            vnode_utils_1.on(vnode, 'mouseenter', this.mouseEnter.bind(this), element);\n            vnode_utils_1.on(vnode, 'mouseleave', this.mouseLeave.bind(this), element);\n            vnode_utils_1.on(vnode, 'mousedown', this.mouseDown.bind(this), element);\n            vnode_utils_1.on(vnode, 'mouseup', this.mouseUp.bind(this), element);\n            vnode_utils_1.on(vnode, 'mousemove', this.mouseMove.bind(this), element);\n            vnode_utils_1.on(vnode, 'wheel', this.wheel.bind(this), element);\n            vnode_utils_1.on(vnode, 'contextmenu', function (target, event) {\n                event.preventDefault();\n            }, element);\n            vnode_utils_1.on(vnode, 'dblclick', this.doubleClick.bind(this), element);\n        }\n        vnode = this.mouseListeners.reduce(function (vnode, listener) { return listener.decorate(vnode, element); }, vnode);\n        return vnode;\n    };\n    MouseTool.prototype.postUpdate = function () {\n    };\n    MouseTool = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),\n        __param(2, inversify_1.multiInject(types_1.TYPES.MouseListener)), __param(2, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Object, dom_helper_1.DOMHelper, Array])\n    ], MouseTool);\n    return MouseTool;\n}());\nexports.MouseTool = MouseTool;\nvar PopupMouseTool = /** @class */ (function (_super) {\n    __extends(PopupMouseTool, _super);\n    function PopupMouseTool(actionDispatcher, domHelper, mouseListeners) {\n        if (mouseListeners === void 0) { mouseListeners = []; }\n        var _this = _super.call(this, actionDispatcher, domHelper, mouseListeners) || this;\n        _this.actionDispatcher = actionDispatcher;\n        _this.domHelper = domHelper;\n        _this.mouseListeners = mouseListeners;\n        return _this;\n    }\n    PopupMouseTool = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),\n        __param(2, inversify_1.multiInject(types_1.TYPES.PopupMouseListener)), __param(2, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Object, dom_helper_1.DOMHelper, Array])\n    ], PopupMouseTool);\n    return PopupMouseTool;\n}(MouseTool));\nexports.PopupMouseTool = PopupMouseTool;\nvar MouseListener = /** @class */ (function () {\n    function MouseListener() {\n    }\n    MouseListener.prototype.mouseOver = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseOut = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseEnter = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseLeave = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseDown = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseMove = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.mouseUp = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.wheel = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.doubleClick = function (target, event) {\n        return [];\n    };\n    MouseListener.prototype.decorate = function (vnode, element) {\n        return vnode;\n    };\n    MouseListener = __decorate([\n        inversify_1.injectable()\n    ], MouseListener);\n    return MouseListener;\n}());\nexports.MouseListener = MouseListener;\n//# sourceMappingURL=mouse-tool.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/mouse-tool.js\n// module id = 30\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectFeature = Symbol('selectFeature');\nfunction isSelectable(element) {\n    return element.hasFeature(exports.selectFeature);\n}\nexports.isSelectable = isSelectable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/select/model.js\n// module id = 31\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../../base/model/smodel\");\nexports.viewportFeature = Symbol('viewportFeature');\nfunction isViewport(element) {\n    return element instanceof smodel_1.SModelRoot\n        && element.hasFeature(exports.viewportFeature)\n        && 'zoom' in element\n        && 'scroll' in element;\n}\nexports.isViewport = isViewport;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/model.js\n// module id = 32\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-iobject.js\n// module id = 33\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction guid() {\n    function s4() {\n        return Math.floor((Math.random() + 1) * 0x10000)\n            .toString(16)\n            .substring(1);\n    }\n    return s4() + s4() + \"-\" + s4() + \"-\" + s4() + \"-\" +\n        s4() + \"-\" + s4() + s4() + s4();\n}\nexports.guid = guid;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/utils/guid.js\n// module id = 34\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar smodel_1 = require(\"../model/smodel\");\nvar vnode_utils_1 = require(\"./vnode-utils\");\nvar KeyTool = /** @class */ (function () {\n    function KeyTool(actionDispatcher, keyListeners) {\n        if (keyListeners === void 0) { keyListeners = []; }\n        this.actionDispatcher = actionDispatcher;\n        this.keyListeners = keyListeners;\n    }\n    KeyTool.prototype.register = function (keyListener) {\n        this.keyListeners.push(keyListener);\n    };\n    KeyTool.prototype.deregister = function (keyListener) {\n        var index = this.keyListeners.indexOf(keyListener);\n        if (index >= 0)\n            this.keyListeners.splice(index, 1);\n    };\n    KeyTool.prototype.handleEvent = function (methodName, model, event) {\n        var actions = this.keyListeners\n            .map(function (listener) { return listener[methodName].apply(listener, [model, event]); })\n            .reduce(function (a, b) { return a.concat(b); });\n        if (actions.length > 0) {\n            event.preventDefault();\n            this.actionDispatcher.dispatchAll(actions);\n        }\n    };\n    KeyTool.prototype.keyDown = function (element, event) {\n        this.handleEvent('keyDown', element, event);\n    };\n    KeyTool.prototype.focus = function () { };\n    KeyTool.prototype.decorate = function (vnode, element) {\n        if (element instanceof smodel_1.SModelRoot) {\n            vnode_utils_1.on(vnode, 'focus', this.focus.bind(this), element);\n            vnode_utils_1.on(vnode, 'keydown', this.keyDown.bind(this), element);\n        }\n        return vnode;\n    };\n    KeyTool.prototype.postUpdate = function () {\n    };\n    KeyTool = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.multiInject(types_1.TYPES.KeyListener)), __param(1, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Object, Array])\n    ], KeyTool);\n    return KeyTool;\n}());\nexports.KeyTool = KeyTool;\nvar KeyListener = /** @class */ (function () {\n    function KeyListener() {\n    }\n    KeyListener.prototype.keyDown = function (element, event) {\n        return [];\n    };\n    KeyListener = __decorate([\n        inversify_1.injectable()\n    ], KeyListener);\n    return KeyListener;\n}());\nexports.KeyListener = KeyListener;\n//# sourceMappingURL=key-tool.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/key-tool.js\n// module id = 35\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_cof.js\n// module id = 36\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ctx.js\n// module id = 37\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar registry_1 = require(\"../../utils/registry\");\nvar command_1 = require(\"../commands/command\");\n/**\n * The action handler registry maps actions to their handlers using the Action.kind property.\n */\nvar ActionHandlerRegistry = /** @class */ (function (_super) {\n    __extends(ActionHandlerRegistry, _super);\n    function ActionHandlerRegistry(initializers) {\n        var _this = _super.call(this) || this;\n        initializers.forEach(function (initializer) { return _this.initializeActionHandler(initializer); });\n        return _this;\n    }\n    ActionHandlerRegistry.prototype.registerCommand = function (commandType) {\n        this.register(commandType.KIND, new command_1.CommandActionHandler(commandType));\n    };\n    ActionHandlerRegistry.prototype.initializeActionHandler = function (initializer) {\n        initializer.initialize(this);\n    };\n    ActionHandlerRegistry = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.multiInject(types_1.TYPES.IActionHandlerInitializer)), __param(0, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Array])\n    ], ActionHandlerRegistry);\n    return ActionHandlerRegistry;\n}(registry_1.MultiInstanceRegistry));\nexports.ActionHandlerRegistry = ActionHandlerRegistry;\n//# sourceMappingURL=action-handler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/actions/action-handler.js\n// module id = 38\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar easing_1 = require(\"./easing\");\n/**\n * An animation uses the rendering loop of the browser to smoothly\n * calculate a transition between two states of a model element.\n */\nvar Animation = /** @class */ (function () {\n    function Animation(context, ease) {\n        if (ease === void 0) { ease = easing_1.easeInOut; }\n        this.context = context;\n        this.ease = ease;\n    }\n    Animation.prototype.start = function () {\n        var _this = this;\n        return new Promise(function (resolve, reject) {\n            var start = undefined;\n            var frames = 0;\n            var lambda = function (time) {\n                frames++;\n                var dtime;\n                if (start === undefined) {\n                    start = time;\n                    dtime = 0;\n                }\n                else {\n                    dtime = time - start;\n                }\n                var t = Math.min(1, dtime / _this.context.duration);\n                var current = _this.tween(_this.ease(t), _this.context);\n                _this.context.modelChanged.update(current);\n                if (t === 1) {\n                    _this.context.logger.log(_this, (frames * 1000 / _this.context.duration) + ' fps');\n                    resolve(current);\n                }\n                else {\n                    _this.context.syncer.onNextFrame(lambda);\n                }\n            };\n            if (_this.context.syncer.isAvailable()) {\n                _this.context.syncer.onNextFrame(lambda);\n            }\n            else {\n                var finalModel = _this.tween(1, _this.context);\n                resolve(finalModel);\n            }\n        });\n    };\n    return Animation;\n}());\nexports.Animation = Animation;\nvar CompoundAnimation = /** @class */ (function (_super) {\n    __extends(CompoundAnimation, _super);\n    function CompoundAnimation(model, context, components, ease) {\n        if (components === void 0) { components = []; }\n        if (ease === void 0) { ease = easing_1.easeInOut; }\n        var _this = _super.call(this, context, ease) || this;\n        _this.model = model;\n        _this.context = context;\n        _this.components = components;\n        _this.ease = ease;\n        return _this;\n    }\n    CompoundAnimation.prototype.include = function (animation) {\n        this.components.push(animation);\n        return this;\n    };\n    CompoundAnimation.prototype.tween = function (t, context) {\n        for (var _i = 0, _a = this.components; _i < _a.length; _i++) {\n            var a = _a[_i];\n            a.tween(t, context);\n        }\n        return this.model;\n    };\n    return CompoundAnimation;\n}(Animation));\nexports.CompoundAnimation = CompoundAnimation;\n//# sourceMappingURL=animation.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/animations/animation.js\n// module id = 39\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar model_1 = require(\"../bounds/model\");\nvar action_dispatcher_1 = require(\"../../base/actions/action-dispatcher\");\nvar types_1 = require(\"../../base/types\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar inversify_1 = require(\"inversify\");\nvar ExportSvgAction = /** @class */ (function () {\n    function ExportSvgAction(svg) {\n        this.svg = svg;\n        this.kind = ExportSvgAction.KIND;\n    }\n    ExportSvgAction.KIND = 'exportSvg';\n    return ExportSvgAction;\n}());\nexports.ExportSvgAction = ExportSvgAction;\nvar SvgExporter = /** @class */ (function () {\n    function SvgExporter(options, actionDispatcher, log) {\n        this.options = options;\n        this.actionDispatcher = actionDispatcher;\n        this.log = log;\n    }\n    SvgExporter.prototype.export = function (root) {\n        if (typeof document !== 'undefined') {\n            var div = document.getElementById(this.options.hiddenDiv);\n            if (div !== null && div.firstElementChild && div.firstElementChild.tagName === 'svg') {\n                var svgElement = div.firstElementChild;\n                var svg = this.createSvg(svgElement, root);\n                this.actionDispatcher.dispatch(new ExportSvgAction(svg));\n            }\n        }\n    };\n    SvgExporter.prototype.createSvg = function (svgElementOrig, root) {\n        var serializer = new XMLSerializer();\n        var svgCopy = serializer.serializeToString(svgElementOrig);\n        var iframe = document.createElement('iframe');\n        document.body.appendChild(iframe);\n        var docCopy = iframe.contentWindow.document;\n        docCopy.open();\n        docCopy.write(svgCopy);\n        docCopy.close();\n        var svgElementNew = docCopy.getElementById(svgElementOrig.id);\n        svgElementNew.removeAttribute('opacity');\n        this.copyStyles(svgElementOrig, svgElementNew, ['width', 'height', 'opacity']);\n        svgElementNew.setAttribute('version', '1.1');\n        var bounds = this.getBounds(root);\n        svgElementNew.setAttribute('viewBox', bounds.x + \" \" + bounds.y + \" \" + bounds.width + \" \" + bounds.height);\n        var svgCode = serializer.serializeToString(svgElementNew);\n        document.body.removeChild(iframe);\n        return svgCode;\n    };\n    SvgExporter.prototype.copyStyles = function (source, target, skipedProperties) {\n        var sourceStyle = getComputedStyle(source);\n        var targetStyle = getComputedStyle(target);\n        var diffStyle = '';\n        for (var i = 0; i < sourceStyle.length; i++) {\n            var key = sourceStyle[i];\n            if (skipedProperties.indexOf(key) === -1) {\n                var value = sourceStyle.getPropertyValue(key);\n                if (targetStyle.getPropertyValue(key) !== value) {\n                    diffStyle += key + \":\" + value + \";\";\n                }\n            }\n        }\n        if (diffStyle !== '')\n            target.setAttribute('style', diffStyle);\n        // IE doesn't retrun anything on source.children\n        for (var i = 0; i < source.childNodes.length; ++i) {\n            var sourceChild = source.childNodes[i];\n            var targetChild = target.childNodes[i];\n            if (sourceChild instanceof Element)\n                this.copyStyles(sourceChild, targetChild, []);\n        }\n    };\n    SvgExporter.prototype.getBounds = function (root) {\n        var allBounds = [geometry_1.EMPTY_BOUNDS];\n        root.children.forEach(function (element) {\n            if (model_1.isBoundsAware(element)) {\n                allBounds.push(element.bounds);\n            }\n        });\n        return allBounds.reduce(function (one, two) { return geometry_1.combine(one, two); });\n    };\n    SvgExporter = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __param(1, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),\n        __metadata(\"design:paramtypes\", [Object, action_dispatcher_1.ActionDispatcher, Object])\n    ], SvgExporter);\n    return SvgExporter;\n}());\nexports.SvgExporter = SvgExporter;\n//# sourceMappingURL=svg-exporter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/export/svg-exporter.js\n// module id = 40\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.moveFeature = Symbol('moveFeature');\nfunction isLocateable(element) {\n    return element['position'] !== undefined;\n}\nexports.isLocateable = isLocateable;\nfunction isMoveable(element) {\n    return element.hasFeature(exports.moveFeature) && isLocateable(element);\n}\nexports.isMoveable = isMoveable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/move/model.js\n// module id = 41\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar command_1 = require(\"../../base/commands/command\");\nvar animation_1 = require(\"../../base/animations/animation\");\nvar model_1 = require(\"./model\");\nvar ViewportAction = /** @class */ (function () {\n    function ViewportAction(elementId, newViewport, animate) {\n        this.elementId = elementId;\n        this.newViewport = newViewport;\n        this.animate = animate;\n        this.kind = ViewportCommand.KIND;\n    }\n    return ViewportAction;\n}());\nexports.ViewportAction = ViewportAction;\nvar ViewportCommand = /** @class */ (function (_super) {\n    __extends(ViewportCommand, _super);\n    function ViewportCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        _this.newViewport = action.newViewport;\n        return _this;\n    }\n    ViewportCommand.prototype.execute = function (context) {\n        var model = context.root;\n        var element = model.index.getById(this.action.elementId);\n        if (element && model_1.isViewport(element)) {\n            this.element = element;\n            this.oldViewport = {\n                scroll: this.element.scroll,\n                zoom: this.element.zoom,\n            };\n            if (this.action.animate)\n                return new ViewportAnimation(this.element, this.oldViewport, this.newViewport, context).start();\n            else {\n                this.element.scroll = this.newViewport.scroll;\n                this.element.zoom = this.newViewport.zoom;\n            }\n        }\n        return model;\n    };\n    ViewportCommand.prototype.undo = function (context) {\n        return new ViewportAnimation(this.element, this.newViewport, this.oldViewport, context).start();\n    };\n    ViewportCommand.prototype.redo = function (context) {\n        return new ViewportAnimation(this.element, this.oldViewport, this.newViewport, context).start();\n    };\n    ViewportCommand.prototype.merge = function (command, context) {\n        if (!this.action.animate && command instanceof ViewportCommand && this.element === command.element) {\n            this.newViewport = command.newViewport;\n            return true;\n        }\n        return false;\n    };\n    ViewportCommand.KIND = 'viewport';\n    return ViewportCommand;\n}(command_1.MergeableCommand));\nexports.ViewportCommand = ViewportCommand;\nvar ViewportAnimation = /** @class */ (function (_super) {\n    __extends(ViewportAnimation, _super);\n    function ViewportAnimation(element, oldViewport, newViewport, context) {\n        var _this = _super.call(this, context) || this;\n        _this.element = element;\n        _this.oldViewport = oldViewport;\n        _this.newViewport = newViewport;\n        _this.context = context;\n        _this.zoomFactor = Math.log(newViewport.zoom / oldViewport.zoom);\n        return _this;\n    }\n    ViewportAnimation.prototype.tween = function (t, context) {\n        this.element.scroll = {\n            x: (1 - t) * this.oldViewport.scroll.x + t * this.newViewport.scroll.x,\n            y: (1 - t) * this.oldViewport.scroll.y + t * this.newViewport.scroll.y\n        };\n        this.element.zoom = this.oldViewport.zoom * Math.exp(t * this.zoomFactor);\n        return context.root;\n    };\n    return ViewportAnimation;\n}(animation_1.Animation));\nexports.ViewportAnimation = ViewportAnimation;\n//# sourceMappingURL=viewport.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/viewport.js\n// module id = 42\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iterators.js\n// module id = 43\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-to-string-tag.js\n// module id = 44\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-length.js\n// module id = 45\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_uid.js\n// module id = 46\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nfunction getServiceIdentifierAsString(serviceIdentifier) {\n    if (typeof serviceIdentifier === \"function\") {\n        var _serviceIdentifier = serviceIdentifier;\n        return _serviceIdentifier.name;\n    }\n    else if (typeof serviceIdentifier === \"symbol\") {\n        return serviceIdentifier.toString();\n    }\n    else {\n        var _serviceIdentifier = serviceIdentifier;\n        return _serviceIdentifier;\n    }\n}\nexports.getServiceIdentifierAsString = getServiceIdentifierAsString;\nfunction listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {\n    var registeredBindingsList = \"\";\n    var registeredBindings = getBindings(container, serviceIdentifier);\n    if (registeredBindings.length !== 0) {\n        registeredBindingsList = \"\\nRegistered bindings:\";\n        registeredBindings.forEach(function (binding) {\n            var name = \"Object\";\n            if (binding.implementationType !== null) {\n                name = getFunctionName(binding.implementationType);\n            }\n            registeredBindingsList = registeredBindingsList + \"\\n \" + name;\n            if (binding.constraint.metaData) {\n                registeredBindingsList = registeredBindingsList + \" - \" + binding.constraint.metaData;\n            }\n        });\n    }\n    return registeredBindingsList;\n}\nexports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;\nfunction alreadyDependencyChain(request, serviceIdentifier) {\n    if (request.parentRequest === null) {\n        return false;\n    }\n    else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {\n        return true;\n    }\n    else {\n        return alreadyDependencyChain(request.parentRequest, serviceIdentifier);\n    }\n}\nfunction dependencyChainToString(request) {\n    function _createStringArr(req, result) {\n        if (result === void 0) { result = []; }\n        var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);\n        result.push(serviceIdentifier);\n        if (req.parentRequest !== null) {\n            return _createStringArr(req.parentRequest, result);\n        }\n        return result;\n    }\n    var stringArr = _createStringArr(request);\n    return stringArr.reverse().join(\" --> \");\n}\nfunction circularDependencyToException(request) {\n    request.childRequests.forEach(function (childRequest) {\n        if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {\n            var services = dependencyChainToString(childRequest);\n            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + \" \" + services);\n        }\n        else {\n            circularDependencyToException(childRequest);\n        }\n    });\n}\nexports.circularDependencyToException = circularDependencyToException;\nfunction listMetadataForTarget(serviceIdentifierString, target) {\n    if (target.isTagged() || target.isNamed()) {\n        var m_1 = \"\";\n        var namedTag = target.getNamedTag();\n        var otherTags = target.getCustomTags();\n        if (namedTag !== null) {\n            m_1 += namedTag.toString() + \"\\n\";\n        }\n        if (otherTags !== null) {\n            otherTags.forEach(function (tag) {\n                m_1 += tag.toString() + \"\\n\";\n            });\n        }\n        return \" \" + serviceIdentifierString + \"\\n \" + serviceIdentifierString + \" - \" + m_1;\n    }\n    else {\n        return \" \" + serviceIdentifierString;\n    }\n}\nexports.listMetadataForTarget = listMetadataForTarget;\nfunction getFunctionName(v) {\n    if (v.name) {\n        return v.name;\n    }\n    else {\n        var name_1 = v.toString();\n        var match = name_1.match(/^function\\s*([^\\s(]+)/);\n        return match ? match[1] : \"Anonymous function: \" + name_1;\n    }\n}\nexports.getFunctionName = getFunctionName;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/utils/serialization.js\n// module id = 47\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar AnimationFrameSyncer = /** @class */ (function () {\n    function AnimationFrameSyncer() {\n        this.tasks = [];\n        this.endTasks = [];\n        this.triggered = false;\n    }\n    AnimationFrameSyncer.prototype.isAvailable = function () {\n        return typeof requestAnimationFrame === \"function\";\n    };\n    AnimationFrameSyncer.prototype.onNextFrame = function (task) {\n        this.tasks.push(task);\n        this.trigger();\n    };\n    AnimationFrameSyncer.prototype.onEndOfNextFrame = function (task) {\n        this.endTasks.push(task);\n        this.trigger();\n    };\n    AnimationFrameSyncer.prototype.trigger = function () {\n        var _this = this;\n        if (!this.triggered) {\n            this.triggered = true;\n            if (this.isAvailable())\n                requestAnimationFrame(function (time) { return _this.run(time); });\n            else\n                setTimeout(function (time) { return _this.run(time); });\n        }\n    };\n    AnimationFrameSyncer.prototype.run = function (time) {\n        var tasks = this.tasks;\n        var endTasks = this.endTasks;\n        this.triggered = false;\n        this.tasks = [];\n        this.endTasks = [];\n        tasks.forEach(function (task) { return task.call(undefined, time); });\n        endTasks.forEach(function (task) { return task.call(undefined, time); });\n    };\n    AnimationFrameSyncer = __decorate([\n        inversify_1.injectable()\n    ], AnimationFrameSyncer);\n    return AnimationFrameSyncer;\n}());\nexports.AnimationFrameSyncer = AnimationFrameSyncer;\n//# sourceMappingURL=animation-frame-syncer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/animations/animation-frame-syncer.js\n// module id = 48\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar command_1 = require(\"../commands/command\");\nvar initialize_canvas_1 = require(\"./initialize-canvas\");\n/**\n * Sent from the client to the model source (e.g. a DiagramServer) in order to request a model. Usually this\n * is the first message that is sent to the source, so it is also used to initiate the communication.\n * The response is a SetModelAction or an UpdateModelAction.\n */\nvar RequestModelAction = /** @class */ (function () {\n    function RequestModelAction(options) {\n        this.options = options;\n        this.kind = RequestModelAction.KIND;\n    }\n    RequestModelAction.KIND = 'requestModel';\n    return RequestModelAction;\n}());\nexports.RequestModelAction = RequestModelAction;\n/**\n * Sent from the model source to the client in order to set the model. If a model is already present, it is replaced.\n */\nvar SetModelAction = /** @class */ (function () {\n    function SetModelAction(newRoot, isInitial) {\n        if (isInitial === void 0) { isInitial = false; }\n        this.newRoot = newRoot;\n        this.isInitial = isInitial;\n        this.kind = SetModelCommand.KIND;\n    }\n    return SetModelAction;\n}());\nexports.SetModelAction = SetModelAction;\nvar SetModelCommand = /** @class */ (function (_super) {\n    __extends(SetModelCommand, _super);\n    function SetModelCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        return _this;\n    }\n    SetModelCommand.prototype.execute = function (context) {\n        this.oldRoot = context.modelFactory.createRoot(context.root);\n        this.newRoot = context.modelFactory.createRoot(this.action.newRoot);\n        if (geometry_1.isValidDimension(this.oldRoot.canvasBounds)) {\n            this.newRoot.canvasBounds = this.oldRoot.canvasBounds;\n        }\n        return this.newRoot;\n    };\n    SetModelCommand.prototype.undo = function (context) {\n        return this.oldRoot;\n    };\n    SetModelCommand.prototype.redo = function (context) {\n        return this.newRoot;\n    };\n    Object.defineProperty(SetModelCommand.prototype, \"blockUntilActionKind\", {\n        get: function () {\n            if (this.action.isInitial)\n                return initialize_canvas_1.InitializeCanvasBoundsCommand.KIND;\n            else\n                return undefined;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    SetModelCommand.KIND = 'setModel';\n    SetModelCommand = __decorate([\n        inversify_1.injectable(),\n        __metadata(\"design:paramtypes\", [SetModelAction])\n    ], SetModelCommand);\n    return SetModelCommand;\n}(command_1.Command));\nexports.SetModelCommand = SetModelCommand;\n//# sourceMappingURL=set-model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/features/set-model.js\n// module id = 49\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar command_1 = require(\"../../base/commands/command\");\nvar model_1 = require(\"./model\");\n/**\n * Sent from the model source (e.g. a DiagramServer) to the client to update the bounds of some\n * (or all) model elements.\n */\nvar SetBoundsAction = /** @class */ (function () {\n    function SetBoundsAction(bounds) {\n        this.bounds = bounds;\n        this.kind = SetBoundsCommand.KIND;\n    }\n    return SetBoundsAction;\n}());\nexports.SetBoundsAction = SetBoundsAction;\n/**\n * Sent from the model source to the client to request bounds for the given model. The model is\n * rendered invisibly so the bounds can derived from the DOM. The response is a ComputedBoundsAction.\n * This hidden rendering round-trip is necessary if the client is responsible for parts of the layout\n * (see `needsClientLayout` viewer option).\n */\nvar RequestBoundsAction = /** @class */ (function () {\n    function RequestBoundsAction(newRoot) {\n        this.newRoot = newRoot;\n        this.kind = RequestBoundsCommand.KIND;\n    }\n    return RequestBoundsAction;\n}());\nexports.RequestBoundsAction = RequestBoundsAction;\n/**\n * Sent from the client to the model source (e.g. a DiagramServer) to transmit the result of bounds\n * computation as a response to a RequestBoundsAction. If the server is responsible for parts of\n * the layout (see `needsServerLayout` viewer option), it can do so after applying the computed bounds\n * received with this action. Otherwise there is no need to send the computed bounds to the server,\n * so they can be processed locally by the client.\n */\nvar ComputedBoundsAction = /** @class */ (function () {\n    function ComputedBoundsAction(bounds, revision, alignments) {\n        this.bounds = bounds;\n        this.revision = revision;\n        this.alignments = alignments;\n        this.kind = ComputedBoundsAction.KIND;\n    }\n    ComputedBoundsAction.KIND = 'computedBounds';\n    return ComputedBoundsAction;\n}());\nexports.ComputedBoundsAction = ComputedBoundsAction;\nvar SetBoundsCommand = /** @class */ (function (_super) {\n    __extends(SetBoundsCommand, _super);\n    function SetBoundsCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        _this.bounds = [];\n        return _this;\n    }\n    SetBoundsCommand.prototype.execute = function (context) {\n        var _this = this;\n        this.action.bounds.forEach(function (b) {\n            var element = context.root.index.getById(b.elementId);\n            if (element && model_1.isBoundsAware(element)) {\n                _this.bounds.push({\n                    element: element,\n                    oldBounds: element.bounds,\n                    newBounds: b.newBounds,\n                });\n            }\n        });\n        return this.redo(context);\n    };\n    SetBoundsCommand.prototype.undo = function (context) {\n        this.bounds.forEach(function (b) { return b.element.bounds = b.oldBounds; });\n        return context.root;\n    };\n    SetBoundsCommand.prototype.redo = function (context) {\n        this.bounds.forEach(function (b) { return b.element.bounds = b.newBounds; });\n        return context.root;\n    };\n    SetBoundsCommand.KIND = 'setBounds';\n    return SetBoundsCommand;\n}(command_1.SystemCommand));\nexports.SetBoundsCommand = SetBoundsCommand;\nvar RequestBoundsCommand = /** @class */ (function (_super) {\n    __extends(RequestBoundsCommand, _super);\n    function RequestBoundsCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        return _this;\n    }\n    RequestBoundsCommand.prototype.execute = function (context) {\n        return context.modelFactory.createRoot(this.action.newRoot);\n    };\n    Object.defineProperty(RequestBoundsCommand.prototype, \"blockUntilActionKind\", {\n        get: function () {\n            return ComputedBoundsAction.KIND;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    RequestBoundsCommand.KIND = 'requestBounds';\n    return RequestBoundsCommand;\n}(command_1.HiddenCommand));\nexports.RequestBoundsCommand = RequestBoundsCommand;\n//# sourceMappingURL=bounds-manipulation.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/bounds-manipulation.js\n// module id = 50\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fadeFeature = Symbol('fadeFeature');\nfunction isFadeable(element) {\n    return element.hasFeature(exports.fadeFeature) && element['opacity'] !== undefined;\n}\nexports.isFadeable = isFadeable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/fade/model.js\n// module id = 51\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar command_1 = require(\"../../base/commands/command\");\nvar smodel_factory_1 = require(\"../../base/model/smodel-factory\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar key_tool_1 = require(\"../../base/views/key-tool\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar model_1 = require(\"../bounds/model\");\nvar model_2 = require(\"./model\");\n/**\n * Triggered when the user puts the mouse pointer over an element.\n */\nvar HoverFeedbackAction = /** @class */ (function () {\n    function HoverFeedbackAction(mouseoverElement, mouseIsOver) {\n        this.mouseoverElement = mouseoverElement;\n        this.mouseIsOver = mouseIsOver;\n        this.kind = HoverFeedbackCommand.KIND;\n    }\n    return HoverFeedbackAction;\n}());\nexports.HoverFeedbackAction = HoverFeedbackAction;\nvar HoverFeedbackCommand = /** @class */ (function (_super) {\n    __extends(HoverFeedbackCommand, _super);\n    function HoverFeedbackCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        return _this;\n    }\n    HoverFeedbackCommand.prototype.execute = function (context) {\n        var model = context.root;\n        var modelElement = model.index.getById(this.action.mouseoverElement);\n        if (modelElement) {\n            if (model_2.isHoverable(modelElement)) {\n                modelElement.hoverFeedback = this.action.mouseIsOver;\n            }\n        }\n        return this.redo(context);\n    };\n    HoverFeedbackCommand.prototype.undo = function (context) {\n        return context.root;\n    };\n    HoverFeedbackCommand.prototype.redo = function (context) {\n        return context.root;\n    };\n    HoverFeedbackCommand.KIND = 'hoverFeedback';\n    return HoverFeedbackCommand;\n}(command_1.Command));\nexports.HoverFeedbackCommand = HoverFeedbackCommand;\n/**\n * Triggered when the user hovers the mouse pointer over an element to get a popup with details on\n * that element. This action is sent from the client to the model source, e.g. a DiagramServer.\n * The response is a SetPopupModelAction.\n */\nvar RequestPopupModelAction = /** @class */ (function () {\n    function RequestPopupModelAction(elementId, bounds) {\n        this.elementId = elementId;\n        this.bounds = bounds;\n        this.kind = RequestPopupModelAction.KIND;\n    }\n    RequestPopupModelAction.KIND = 'requestPopupModel';\n    return RequestPopupModelAction;\n}());\nexports.RequestPopupModelAction = RequestPopupModelAction;\n/**\n * Sent from the model source to the client to display a popup in response to a RequestPopupModelAction.\n * This action can also be used to remove any existing popup by choosing EMPTY_ROOT as root element.\n */\nvar SetPopupModelAction = /** @class */ (function () {\n    function SetPopupModelAction(newRoot) {\n        this.newRoot = newRoot;\n        this.kind = SetPopupModelCommand.KIND;\n    }\n    return SetPopupModelAction;\n}());\nexports.SetPopupModelAction = SetPopupModelAction;\nvar SetPopupModelCommand = /** @class */ (function (_super) {\n    __extends(SetPopupModelCommand, _super);\n    function SetPopupModelCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        return _this;\n    }\n    SetPopupModelCommand.prototype.execute = function (context) {\n        this.oldRoot = context.root;\n        this.newRoot = context.modelFactory.createRoot(this.action.newRoot);\n        return this.newRoot;\n    };\n    SetPopupModelCommand.prototype.undo = function (context) {\n        return this.oldRoot;\n    };\n    SetPopupModelCommand.prototype.redo = function (context) {\n        return this.newRoot;\n    };\n    SetPopupModelCommand.KIND = 'setPopupModel';\n    return SetPopupModelCommand;\n}(command_1.PopupCommand));\nexports.SetPopupModelCommand = SetPopupModelCommand;\nvar AbstractHoverMouseListener = /** @class */ (function (_super) {\n    __extends(AbstractHoverMouseListener, _super);\n    function AbstractHoverMouseListener(options, state) {\n        var _this = _super.call(this) || this;\n        _this.options = options;\n        _this.state = state;\n        return _this;\n    }\n    AbstractHoverMouseListener.prototype.stopMouseOutTimer = function () {\n        if (this.state.mouseOutTimer !== undefined) {\n            window.clearTimeout(this.state.mouseOutTimer);\n            this.state.mouseOutTimer = undefined;\n        }\n    };\n    AbstractHoverMouseListener.prototype.startMouseOutTimer = function () {\n        var _this = this;\n        this.stopMouseOutTimer();\n        return new Promise(function (resolve) {\n            _this.state.mouseOutTimer = window.setTimeout(function () {\n                _this.state.popupOpen = false;\n                _this.state.previousPopupElement = undefined;\n                resolve(new SetPopupModelAction({ type: smodel_factory_1.EMPTY_ROOT.type, id: smodel_factory_1.EMPTY_ROOT.id }));\n            }, _this.options.popupCloseDelay);\n        });\n    };\n    AbstractHoverMouseListener.prototype.stopMouseOverTimer = function () {\n        if (this.state.mouseOverTimer !== undefined) {\n            window.clearTimeout(this.state.mouseOverTimer);\n            this.state.mouseOverTimer = undefined;\n        }\n    };\n    AbstractHoverMouseListener = __decorate([\n        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __param(1, inversify_1.inject(types_1.TYPES.HoverState)),\n        __metadata(\"design:paramtypes\", [Object, Object])\n    ], AbstractHoverMouseListener);\n    return AbstractHoverMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.AbstractHoverMouseListener = AbstractHoverMouseListener;\nvar HoverMouseListener = /** @class */ (function (_super) {\n    __extends(HoverMouseListener, _super);\n    function HoverMouseListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    HoverMouseListener.prototype.calculatePopupPosition = function (target, mousePosition) {\n        var offset = { x: -5, y: 20 };\n        var maxDist = 150;\n        var targetBounds = model_1.getAbsoluteBounds(target);\n        var canvasBounds = target.root.canvasBounds;\n        var boundsInWindow = geometry_1.translate(targetBounds, canvasBounds);\n        var distRight = boundsInWindow.x + boundsInWindow.width - mousePosition.x;\n        var distBottom = boundsInWindow.y + boundsInWindow.height - mousePosition.y;\n        if (distBottom <= distRight && distBottom < maxDist) {\n            offset = { x: -5, y: Math.round(distBottom + 5) };\n        }\n        else if (distRight <= distBottom && distRight < maxDist) {\n            offset = { x: Math.round(distRight + 5), y: -5 };\n        }\n        var leftPopupPosition = mousePosition.x + offset.x;\n        var canvasRightBorderPosition = canvasBounds.x + canvasBounds.width;\n        if (leftPopupPosition > canvasRightBorderPosition) {\n            leftPopupPosition = canvasRightBorderPosition;\n        }\n        var topPopupPosition = mousePosition.y + offset.y;\n        var canvasBottomBorderPosition = canvasBounds.y + canvasBounds.height;\n        if (topPopupPosition > canvasBottomBorderPosition) {\n            topPopupPosition = canvasBottomBorderPosition;\n        }\n        return { x: leftPopupPosition, y: topPopupPosition };\n    };\n    HoverMouseListener.prototype.startMouseOverTimer = function (target, event) {\n        var _this = this;\n        this.stopMouseOverTimer();\n        return new Promise(function (resolve) {\n            _this.state.mouseOverTimer = window.setTimeout(function () {\n                var popupPosition = _this.calculatePopupPosition(target, { x: event.pageX, y: event.pageY });\n                resolve(new RequestPopupModelAction(target.id, {\n                    x: popupPosition.x,\n                    y: popupPosition.y,\n                    width: -1,\n                    height: -1\n                }));\n                _this.state.popupOpen = true;\n                _this.state.previousPopupElement = target;\n            }, _this.options.popupOpenDelay);\n        });\n    };\n    HoverMouseListener.prototype.mouseOver = function (target, event) {\n        var state = this.state;\n        var result = [];\n        var popupTarget = smodel_utils_1.findParent(target, model_2.hasPopupFeature);\n        if (state.popupOpen && (popupTarget === undefined ||\n            state.previousPopupElement !== undefined && state.previousPopupElement.id !== popupTarget.id)) {\n            result.push(this.startMouseOutTimer());\n        }\n        else {\n            this.stopMouseOverTimer();\n            this.stopMouseOutTimer();\n        }\n        if (popupTarget !== undefined &&\n            (state.previousPopupElement === undefined || state.previousPopupElement.id !== popupTarget.id)) {\n            result.push(this.startMouseOverTimer(popupTarget, event));\n        }\n        var hoverTarget = smodel_utils_1.findParentByFeature(target, model_2.isHoverable);\n        if (hoverTarget !== undefined)\n            result.push(new HoverFeedbackAction(hoverTarget.id, true));\n        return result;\n    };\n    HoverMouseListener.prototype.mouseOut = function (target, event) {\n        var result = [];\n        if (!this.state.popupOpen)\n            this.stopMouseOverTimer();\n        var hoverTarget = smodel_utils_1.findParentByFeature(target, model_2.isHoverable);\n        if (hoverTarget !== undefined)\n            result.push(new HoverFeedbackAction(hoverTarget.id, false));\n        return result;\n    };\n    HoverMouseListener.prototype.mouseMove = function (target, event) {\n        var popupTarget = smodel_utils_1.findParent(target, model_2.hasPopupFeature);\n        return this.state.popupOpen || popupTarget === undefined ? [] : [this.startMouseOverTimer(popupTarget, event)];\n    };\n    HoverMouseListener = __decorate([\n        inversify_1.injectable()\n    ], HoverMouseListener);\n    return HoverMouseListener;\n}(AbstractHoverMouseListener));\nexports.HoverMouseListener = HoverMouseListener;\nvar PopupHoverMouseListener = /** @class */ (function (_super) {\n    __extends(PopupHoverMouseListener, _super);\n    function PopupHoverMouseListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    PopupHoverMouseListener.prototype.mouseOut = function (target, event) {\n        return [this.startMouseOutTimer()];\n    };\n    PopupHoverMouseListener.prototype.mouseOver = function (target, event) {\n        this.stopMouseOutTimer();\n        this.stopMouseOverTimer();\n        return [];\n    };\n    PopupHoverMouseListener = __decorate([\n        inversify_1.injectable()\n    ], PopupHoverMouseListener);\n    return PopupHoverMouseListener;\n}(AbstractHoverMouseListener));\nexports.PopupHoverMouseListener = PopupHoverMouseListener;\nvar HoverKeyListener = /** @class */ (function (_super) {\n    __extends(HoverKeyListener, _super);\n    function HoverKeyListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    HoverKeyListener.prototype.keyDown = function (element, event) {\n        if (event.keyCode === 27) {\n            return [new SetPopupModelAction({ type: smodel_factory_1.EMPTY_ROOT.type, id: smodel_factory_1.EMPTY_ROOT.id })];\n        }\n        return [];\n    };\n    return HoverKeyListener;\n}(key_tool_1.KeyListener));\nexports.HoverKeyListener = HoverKeyListener;\n//# sourceMappingURL=hover.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/hover/hover.js\n// module id = 52\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar ProviderRegistry = /** @class */ (function () {\n    function ProviderRegistry() {\n        this.elements = new Map;\n    }\n    ProviderRegistry.prototype.register = function (key, cstr) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        if (this.hasKey(key))\n            throw new Error('Key is already registered: ' + key);\n        this.elements.set(key, cstr);\n    };\n    ProviderRegistry.prototype.deregister = function (key) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        this.elements.delete(key);\n    };\n    ProviderRegistry.prototype.hasKey = function (key) {\n        return this.elements.has(key);\n    };\n    ProviderRegistry.prototype.get = function (key, arg) {\n        var existingCstr = this.elements.get(key);\n        if (existingCstr)\n            return new existingCstr(arg);\n        else\n            return this.missing(key, arg);\n    };\n    ProviderRegistry.prototype.missing = function (key, arg) {\n        throw new Error('Unknown registry key: ' + key);\n    };\n    ProviderRegistry = __decorate([\n        inversify_1.injectable()\n    ], ProviderRegistry);\n    return ProviderRegistry;\n}());\nexports.ProviderRegistry = ProviderRegistry;\nvar InstanceRegistry = /** @class */ (function () {\n    function InstanceRegistry() {\n        this.elements = new Map;\n    }\n    InstanceRegistry.prototype.register = function (key, instance) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        if (this.hasKey(key))\n            throw new Error('Key is already registered: ' + key);\n        this.elements.set(key, instance);\n    };\n    InstanceRegistry.prototype.deregister = function (key) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        this.elements.delete(key);\n    };\n    InstanceRegistry.prototype.hasKey = function (key) {\n        return this.elements.has(key);\n    };\n    InstanceRegistry.prototype.get = function (key) {\n        var existingInstance = this.elements.get(key);\n        if (existingInstance)\n            return existingInstance;\n        else\n            return this.missing(key);\n    };\n    InstanceRegistry.prototype.missing = function (key) {\n        throw new Error('Unknown registry key: ' + key);\n    };\n    InstanceRegistry = __decorate([\n        inversify_1.injectable()\n    ], InstanceRegistry);\n    return InstanceRegistry;\n}());\nexports.InstanceRegistry = InstanceRegistry;\nvar MultiInstanceRegistry = /** @class */ (function () {\n    function MultiInstanceRegistry() {\n        this.elements = new Map;\n    }\n    MultiInstanceRegistry.prototype.register = function (key, instance) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        var instances = this.elements.get(key);\n        if (instances !== undefined)\n            instances.push(instance);\n        else\n            this.elements.set(key, [instance]);\n    };\n    MultiInstanceRegistry.prototype.deregisterAll = function (key) {\n        if (key === undefined)\n            throw new Error('Key is undefined');\n        this.elements.delete(key);\n    };\n    MultiInstanceRegistry.prototype.get = function (key) {\n        var existingInstances = this.elements.get(key);\n        if (existingInstances !== undefined)\n            return existingInstances;\n        else\n            return [];\n    };\n    MultiInstanceRegistry = __decorate([\n        inversify_1.injectable()\n    ], MultiInstanceRegistry);\n    return MultiInstanceRegistry;\n}());\nexports.MultiInstanceRegistry = MultiInstanceRegistry;\n//# sourceMappingURL=registry.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/utils/registry.js\n// module id = 53\n// module chunks = 0","module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-function.js\n// module id = 54\n// module chunks = 0","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n  var SYMBOL = wks(KEY);\n  var fns = exec(defined, SYMBOL, ''[KEY]);\n  var strfn = fns[0];\n  var rxfn = fns[1];\n  if (fails(function () {\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  })) {\n    redefine(String.prototype, KEY, strfn);\n    hide(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return rxfn.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return rxfn.call(string, this); }\n    );\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fix-re-wks.js\n// module id = 55\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_library.js\n// module id = 56\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys.js\n// module id = 57\n// module chunks = 0","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_property-desc.js\n// module id = 58\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-integer.js\n// module id = 59\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar smodel_1 = require(\"../model/smodel\");\nvar command_1 = require(\"../commands/command\");\n/**\n * Grabs the bounds from the root element in page coordinates and fires a\n * InitializeCanvasBoundsAction. This size is needed for other actions such\n * as FitToScreenAction.\n */\nvar CanvasBoundsInitializer = /** @class */ (function () {\n    function CanvasBoundsInitializer(actionDispatcher) {\n        this.actionDispatcher = actionDispatcher;\n    }\n    CanvasBoundsInitializer.prototype.decorate = function (vnode, element) {\n        if (element instanceof smodel_1.SModelRoot && !geometry_1.isValidDimension(element.canvasBounds)) {\n            this.rootAndVnode = [element, vnode];\n        }\n        return vnode;\n    };\n    CanvasBoundsInitializer.prototype.postUpdate = function () {\n        if (this.rootAndVnode !== undefined) {\n            var domElement = this.rootAndVnode[1].elm;\n            var oldBounds = this.rootAndVnode[0].canvasBounds;\n            if (domElement !== undefined) {\n                var newBounds = this.getBoundsInPage(domElement);\n                if (!(geometry_1.almostEquals(newBounds.x, oldBounds.x)\n                    && geometry_1.almostEquals(newBounds.y, oldBounds.y)\n                    && geometry_1.almostEquals(newBounds.width, oldBounds.width)\n                    && geometry_1.almostEquals(newBounds.height, oldBounds.width)))\n                    this.actionDispatcher.dispatch(new InitializeCanvasBoundsAction(newBounds));\n            }\n            this.rootAndVnode = undefined;\n        }\n    };\n    CanvasBoundsInitializer.prototype.getBoundsInPage = function (element) {\n        var bounds = element.getBoundingClientRect();\n        var scroll = typeof window !== 'undefined' ? { x: window.scrollX, y: window.scrollY } : geometry_1.ORIGIN_POINT;\n        return {\n            x: bounds.left + scroll.x,\n            y: bounds.top + scroll.y,\n            width: bounds.width,\n            height: bounds.height\n        };\n    };\n    CanvasBoundsInitializer = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __metadata(\"design:paramtypes\", [Object])\n    ], CanvasBoundsInitializer);\n    return CanvasBoundsInitializer;\n}());\nexports.CanvasBoundsInitializer = CanvasBoundsInitializer;\nvar InitializeCanvasBoundsAction = /** @class */ (function () {\n    function InitializeCanvasBoundsAction(newCanvasBounds) {\n        this.newCanvasBounds = newCanvasBounds;\n        this.kind = InitializeCanvasBoundsCommand.KIND;\n    }\n    return InitializeCanvasBoundsAction;\n}());\nexports.InitializeCanvasBoundsAction = InitializeCanvasBoundsAction;\nvar InitializeCanvasBoundsCommand = /** @class */ (function (_super) {\n    __extends(InitializeCanvasBoundsCommand, _super);\n    function InitializeCanvasBoundsCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        return _this;\n    }\n    InitializeCanvasBoundsCommand.prototype.execute = function (context) {\n        this.oldCanvasBounds = context.root.canvasBounds;\n        this.newCanvasBounds = this.action.newCanvasBounds;\n        context.root.canvasBounds = this.newCanvasBounds;\n        return context.root;\n    };\n    InitializeCanvasBoundsCommand.prototype.undo = function (context) {\n        return context.root;\n    };\n    InitializeCanvasBoundsCommand.prototype.redo = function (context) {\n        return context.root;\n    };\n    InitializeCanvasBoundsCommand.KIND = 'initializeCanvasBounds';\n    return InitializeCanvasBoundsCommand;\n}(command_1.SystemCommand));\nexports.InitializeCanvasBoundsCommand = InitializeCanvasBoundsCommand;\n//# sourceMappingURL=initialize-canvas.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/features/initialize-canvas.js\n// module id = 60\n// module chunks = 0","\"use strict\";\n/*\n* Copyright (C) 2017 TypeFox and others.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar model_1 = require(\"./model\");\nvar inversify_1 = require(\"inversify\");\n/**\n * Sent from the client to the model source to recalculate a diagram when elements\n * are collapsed/expanded by the client.\n */\nvar CollapseExpandAction = /** @class */ (function () {\n    function CollapseExpandAction(expandIds, collapseIds) {\n        this.expandIds = expandIds;\n        this.collapseIds = collapseIds;\n        this.kind = CollapseExpandAction.KIND;\n    }\n    CollapseExpandAction.KIND = 'collapseExpand';\n    return CollapseExpandAction;\n}());\nexports.CollapseExpandAction = CollapseExpandAction;\n/**\n * Programmatic action for expanding or collapsing all elements.\n */\nvar CollapseExpandAllAction = /** @class */ (function () {\n    /**\n     * If `expand` is true, all elements are expanded, othewise they are collapsed.\n     */\n    function CollapseExpandAllAction(expand) {\n        if (expand === void 0) { expand = true; }\n        this.expand = expand;\n        this.kind = CollapseExpandAllAction.KIND;\n    }\n    CollapseExpandAllAction.KIND = 'collapseExpandAll';\n    return CollapseExpandAllAction;\n}());\nexports.CollapseExpandAllAction = CollapseExpandAllAction;\nvar ExpandButtonHandler = /** @class */ (function () {\n    function ExpandButtonHandler() {\n    }\n    ExpandButtonHandler.prototype.buttonPressed = function (button) {\n        var expandable = smodel_utils_1.findParentByFeature(button, model_1.isExpandable);\n        if (expandable !== undefined) {\n            return [new CollapseExpandAction(expandable.expanded ? [] : [expandable.id], expandable.expanded ? [expandable.id] : [])];\n        }\n        else {\n            return [];\n        }\n    };\n    ExpandButtonHandler.TYPE = 'button:expand';\n    ExpandButtonHandler = __decorate([\n        inversify_1.injectable()\n    ], ExpandButtonHandler);\n    return ExpandButtonHandler;\n}());\nexports.ExpandButtonHandler = ExpandButtonHandler;\n//# sourceMappingURL=expand.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/expand/expand.js\n// module id = 61\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exportFeature = Symbol('exportFeature');\nfunction isExportable(element) {\n    return element.hasFeature(exports.exportFeature) && element['export'] !== undefined;\n}\nexports.isExportable = isExportable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/export/model.js\n// module id = 62\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hoverFeedbackFeature = Symbol('hoverFeedbackFeature');\nfunction isHoverable(element) {\n    return element.hasFeature(exports.hoverFeedbackFeature);\n}\nexports.isHoverable = isHoverable;\nexports.popupFeature = Symbol('popupFeature');\nfunction hasPopupFeature(element) {\n    return element.hasFeature(exports.popupFeature);\n}\nexports.hasPopupFeature = hasPopupFeature;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/hover/model.js\n// module id = 63\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar smodel_2 = require(\"../../base/model/smodel\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar command_1 = require(\"../../base/commands/command\");\nvar animation_1 = require(\"../../base/animations/animation\");\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar vnode_utils_1 = require(\"../../base/views/vnode-utils\");\nvar model_1 = require(\"../viewport/model\");\nvar model_2 = require(\"../select/model\");\nvar model_3 = require(\"./model\");\nvar model_4 = require(\"../bounds/model\");\nvar inversify_1 = require(\"inversify\");\nvar MoveAction = /** @class */ (function () {\n    function MoveAction(moves, animate) {\n        if (animate === void 0) { animate = true; }\n        this.moves = moves;\n        this.animate = animate;\n        this.kind = MoveCommand.KIND;\n    }\n    return MoveAction;\n}());\nexports.MoveAction = MoveAction;\nvar MoveCommand = /** @class */ (function (_super) {\n    __extends(MoveCommand, _super);\n    function MoveCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        _this.resolvedMoves = new Map;\n        return _this;\n    }\n    MoveCommand.prototype.execute = function (context) {\n        var _this = this;\n        var model = context.root;\n        this.action.moves.forEach(function (move) {\n            var resolvedMove = _this.resolve(move, model.index);\n            if (resolvedMove) {\n                _this.resolvedMoves.set(resolvedMove.elementId, resolvedMove);\n                if (!_this.action.animate) {\n                    resolvedMove.element.position = move.toPosition;\n                }\n            }\n        });\n        if (this.action.animate)\n            return new MoveAnimation(model, this.resolvedMoves, context, false).start();\n        else\n            return model;\n    };\n    MoveCommand.prototype.resolve = function (move, index) {\n        var element = index.getById(move.elementId);\n        if (element) {\n            var fromPosition = move.fromPosition || { x: element.position.x, y: element.position.y };\n            return {\n                fromPosition: fromPosition,\n                elementId: move.elementId,\n                element: element,\n                toPosition: move.toPosition\n            };\n        }\n        return undefined;\n    };\n    MoveCommand.prototype.undo = function (context) {\n        return new MoveAnimation(context.root, this.resolvedMoves, context, true).start();\n    };\n    MoveCommand.prototype.redo = function (context) {\n        return new MoveAnimation(context.root, this.resolvedMoves, context, false).start();\n    };\n    MoveCommand.prototype.merge = function (command, context) {\n        var _this = this;\n        if (!this.action.animate && command instanceof MoveCommand) {\n            command.action.moves.forEach(function (otherMove) {\n                var existingMove = _this.resolvedMoves.get(otherMove.elementId);\n                if (existingMove) {\n                    existingMove.toPosition = otherMove.toPosition;\n                }\n                else {\n                    var resolvedMove = _this.resolve(otherMove, context.root.index);\n                    if (resolvedMove)\n                        _this.resolvedMoves.set(resolvedMove.elementId, resolvedMove);\n                }\n            });\n            return true;\n        }\n        return false;\n    };\n    MoveCommand.KIND = 'move';\n    return MoveCommand;\n}(command_1.MergeableCommand));\nexports.MoveCommand = MoveCommand;\nvar MoveAnimation = /** @class */ (function (_super) {\n    __extends(MoveAnimation, _super);\n    function MoveAnimation(model, elementMoves, context, reverse) {\n        if (reverse === void 0) { reverse = false; }\n        var _this = _super.call(this, context) || this;\n        _this.model = model;\n        _this.elementMoves = elementMoves;\n        _this.reverse = reverse;\n        return _this;\n    }\n    MoveAnimation.prototype.tween = function (t) {\n        var _this = this;\n        this.elementMoves.forEach(function (elementMove) {\n            if (_this.reverse) {\n                elementMove.element.position = {\n                    x: (1 - t) * elementMove.toPosition.x + t * elementMove.fromPosition.x,\n                    y: (1 - t) * elementMove.toPosition.y + t * elementMove.fromPosition.y\n                };\n            }\n            else {\n                elementMove.element.position = {\n                    x: (1 - t) * elementMove.fromPosition.x + t * elementMove.toPosition.x,\n                    y: (1 - t) * elementMove.fromPosition.y + t * elementMove.toPosition.y\n                };\n            }\n        });\n        return this.model;\n    };\n    return MoveAnimation;\n}(animation_1.Animation));\nexports.MoveAnimation = MoveAnimation;\nvar MoveMouseListener = /** @class */ (function (_super) {\n    __extends(MoveMouseListener, _super);\n    function MoveMouseListener() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hasDragged = false;\n        return _this;\n    }\n    MoveMouseListener.prototype.mouseDown = function (target, event) {\n        if (event.button === 0) {\n            if (model_3.isMoveable(target)) {\n                this.lastDragPosition = { x: event.pageX, y: event.pageY };\n            }\n            else {\n                this.lastDragPosition = undefined;\n            }\n            this.hasDragged = false;\n        }\n        return [];\n    };\n    MoveMouseListener.prototype.mouseMove = function (target, event) {\n        if (event.buttons === 0)\n            this.mouseUp(target, event);\n        else if (this.lastDragPosition) {\n            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);\n            this.hasDragged = true;\n            var zoom = viewport ? viewport.zoom : 1;\n            var dx_1 = (event.pageX - this.lastDragPosition.x) / zoom;\n            var dy_1 = (event.pageY - this.lastDragPosition.y) / zoom;\n            var root = target.root;\n            var nodeMoves_1 = [];\n            root\n                .index\n                .all()\n                .filter(function (element) { return model_2.isSelectable(element) && element.selected; })\n                .forEach(function (element) {\n                if (model_3.isMoveable(element)) {\n                    nodeMoves_1.push({\n                        elementId: element.id,\n                        toPosition: {\n                            x: element.position.x + dx_1,\n                            y: element.position.y + dy_1\n                        }\n                    });\n                }\n            });\n            this.lastDragPosition = { x: event.pageX, y: event.pageY };\n            if (nodeMoves_1.length > 0)\n                return [new MoveAction(nodeMoves_1, false)];\n        }\n        return [];\n    };\n    MoveMouseListener.prototype.mouseEnter = function (target, event) {\n        if (target instanceof smodel_2.SModelRoot && event.buttons === 0)\n            this.mouseUp(target, event);\n        return [];\n    };\n    MoveMouseListener.prototype.mouseUp = function (target, event) {\n        this.hasDragged = false;\n        this.lastDragPosition = undefined;\n        return [];\n    };\n    MoveMouseListener.prototype.decorate = function (vnode, element) {\n        return vnode;\n    };\n    return MoveMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.MoveMouseListener = MoveMouseListener;\nvar LocationDecorator = /** @class */ (function () {\n    function LocationDecorator() {\n    }\n    LocationDecorator.prototype.decorate = function (vnode, element) {\n        var translate = '';\n        if (model_3.isLocateable(element) && element instanceof smodel_1.SChildElement && element.parent !== undefined) {\n            translate = 'translate(' + element.position.x + ', ' + element.position.y + ')';\n        }\n        if (model_4.isAlignable(element)) {\n            if (translate.length > 0)\n                translate += ' ';\n            translate += 'translate(' + element.alignment.x + ', ' + element.alignment.y + ')';\n        }\n        if (translate.length > 0)\n            vnode_utils_1.setAttr(vnode, 'transform', translate);\n        return vnode;\n    };\n    LocationDecorator.prototype.postUpdate = function () {\n    };\n    LocationDecorator = __decorate([\n        inversify_1.injectable()\n    ], LocationDecorator);\n    return LocationDecorator;\n}());\nexports.LocationDecorator = LocationDecorator;\n//# sourceMappingURL=move.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/move/move.js\n// module id = 64\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Returns whether the mouse or keyboard event includes the CMD key\n * on Mac or CTRL key on Linux / others\n */\nfunction isCtrlOrCmd(event) {\n    if (isMac())\n        return event.metaKey;\n    else\n        return event.ctrlKey;\n}\nexports.isCtrlOrCmd = isCtrlOrCmd;\nfunction isMac() {\n    return window.navigator.userAgent.indexOf(\"Mac\") !== -1;\n}\nexports.isMac = isMac;\nfunction isCrossSite(url) {\n    if (url && typeof window !== 'undefined' && window.location) {\n        var baseURL = '';\n        if (window.location.protocol)\n            baseURL += window.location.protocol + '//';\n        if (window.location.host)\n            baseURL += window.location.host;\n        return baseURL.length > 0 && !url.startsWith(baseURL);\n    }\n    return false;\n}\nexports.isCrossSite = isCrossSite;\n//# sourceMappingURL=browser.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/utils/browser.js\n// module id = 65\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n    throw TypeError(name + ': incorrect invocation!');\n  } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 66\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_classof.js\n// module id = 67\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_dom-create.js\n// module id = 68\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-bug-keys.js\n// module id = 69\n// module chunks = 0","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails-is-regexp.js\n// module id = 70\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  // fast case for arrays with default iterator\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 71\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-define.js\n// module id = 72\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_meta.js\n// module id = 73\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 74\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-pie.js\n// module id = 75\n// module chunks = 0","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n  for (var key in src) redefine(target, key, src[key], safe);\n  return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 76\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared-key.js\n// module id = 77\n// module chunks = 0","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n  return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared.js\n// module id = 78\n// module chunks = 0","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-context.js\n// module id = 79\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 80\n// module chunks = 0","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n  require('./_redefine')(Object.prototype, 'toString', function toString() {\n    return '[object ' + classof(this) + ']';\n  }, true);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.to-string.js\n// module id = 81\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.iterator.js\n// module id = 82\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingOnSyntax = (function () {\n    function BindingOnSyntax(binding) {\n        this._binding = binding;\n    }\n    BindingOnSyntax.prototype.onActivation = function (handler) {\n        this._binding.onActivation = handler;\n        return new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n    };\n    return BindingOnSyntax;\n}());\nexports.BindingOnSyntax = BindingOnSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_on_syntax.js\n// module id = 83\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar constraint_helpers_1 = require(\"./constraint_helpers\");\nvar BindingWhenSyntax = (function () {\n    function BindingWhenSyntax(binding) {\n        this._binding = binding;\n    }\n    BindingWhenSyntax.prototype.when = function (constraint) {\n        this._binding.constraint = constraint;\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenTargetNamed = function (name) {\n        this._binding.constraint = constraint_helpers_1.namedConstraint(name);\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenTargetIsDefault = function () {\n        this._binding.constraint = function (request) {\n            var targetIsDefault = (request.target !== null) &&\n                (!request.target.isNamed()) &&\n                (!request.target.isTagged());\n            return targetIsDefault;\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {\n        this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenParentNamed = function (name) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.namedConstraint(name)(request.parentRequest);\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n        this._binding.constraint = function (request) {\n            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {\n        this._binding.constraint = function (request) {\n            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n        this._binding.constraint = function (request) {\n            return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n        this._binding.constraint = function (request) {\n            return constraint_helpers_1.traverseAncerstors(request, constraint);\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n        this._binding.constraint = function (request) {\n            return !constraint_helpers_1.traverseAncerstors(request, constraint);\n        };\n        return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    };\n    return BindingWhenSyntax;\n}());\nexports.BindingWhenSyntax = BindingWhenSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_when_syntax.js\n// module id = 84\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar smodel_factory_1 = require(\"../model/smodel-factory\");\nvar animation_frame_syncer_1 = require(\"../animations/animation-frame-syncer\");\nvar set_model_1 = require(\"../features/set-model\");\nvar undo_redo_1 = require(\"../../features/undo-redo/undo-redo\");\nvar action_1 = require(\"./action\");\nvar action_handler_1 = require(\"./action-handler\");\n/**\n * Collects actions, converts them to commands and dispatches them.\n * Also acts as the proxy to model sources such as diagram servers.\n */\nvar ActionDispatcher = /** @class */ (function () {\n    function ActionDispatcher(actionHandlerRegistry, commandStack, logger, syncer) {\n        this.actionHandlerRegistry = actionHandlerRegistry;\n        this.commandStack = commandStack;\n        this.logger = logger;\n        this.syncer = syncer;\n        this.postponedActions = [];\n        var initialCommand = new set_model_1.SetModelCommand(new set_model_1.SetModelAction(smodel_factory_1.EMPTY_ROOT, true));\n        this.blockUntilActionKind = initialCommand.blockUntilActionKind;\n        this.commandStack.execute(initialCommand);\n    }\n    ActionDispatcher.prototype.dispatchAll = function (actions) {\n        var _this = this;\n        actions.forEach(function (action) { return _this.dispatch(action); });\n    };\n    ActionDispatcher.prototype.dispatch = function (action, onExecute) {\n        var _this = this;\n        if (action.kind === this.blockUntilActionKind) {\n            this.blockUntilActionKind = undefined;\n            this.handleAction(action);\n            var actions = this.postponedActions;\n            this.postponedActions = [];\n            actions.forEach(function (a) { return _this.dispatch(a.action, a.onExecute); });\n            return;\n        }\n        if (this.blockUntilActionKind !== undefined) {\n            this.logger.log(this, 'waiting for ' + this.blockUntilActionKind + '. postponing', action);\n            this.postponedActions.push({\n                action: action,\n                onExecute: onExecute\n            });\n            return;\n        }\n        if (onExecute !== undefined)\n            onExecute.call(null, action);\n        if (action.kind === undo_redo_1.UndoAction.KIND) {\n            this.commandStack.undo();\n        }\n        else if (action.kind === undo_redo_1.RedoAction.KIND) {\n            this.commandStack.redo();\n        }\n        else {\n            this.handleAction(action);\n        }\n    };\n    ActionDispatcher.prototype.handleAction = function (action) {\n        this.logger.log(this, 'handle', action);\n        var handlers = this.actionHandlerRegistry.get(action.kind);\n        if (handlers.length > 0) {\n            for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n                var handler = handlers_1[_i];\n                var result = handler.handle(action);\n                if (action_1.isAction(result))\n                    this.dispatch(result);\n                else if (result !== undefined) {\n                    this.commandStack.execute(result);\n                    this.blockUntilActionKind = result.blockUntilActionKind;\n                }\n            }\n        }\n        else {\n            this.logger.warn(this, 'missing handler for action', action);\n        }\n    };\n    ActionDispatcher = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),\n        __param(1, inversify_1.inject(types_1.TYPES.ICommandStack)),\n        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),\n        __param(3, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),\n        __metadata(\"design:paramtypes\", [action_handler_1.ActionHandlerRegistry, Object, Object, animation_frame_syncer_1.AnimationFrameSyncer])\n    ], ActionDispatcher);\n    return ActionDispatcher;\n}());\nexports.ActionDispatcher = ActionDispatcher;\n//# sourceMappingURL=action-dispatcher.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/actions/action-dispatcher.js\n// module id = 85\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isAction(object) {\n    return object !== undefined && object.hasOwnProperty('kind') && typeof (object['kind']) === 'string';\n}\nexports.isAction = isAction;\n//# sourceMappingURL=action.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/actions/action.js\n// module id = 86\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar smodel_factory_1 = require(\"./smodel-factory\");\nvar SModelStorage = /** @class */ (function () {\n    function SModelStorage() {\n        this.localCache = new Map;\n    }\n    SModelStorage.prototype.store = function (root) {\n        if (this.isLocalStorageAvailable())\n            localStorage.setItem(this.key, JSON.stringify(root));\n        else\n            this.localCache.set(this.key, JSON.stringify(root));\n    };\n    SModelStorage.prototype.load = function () {\n        var schema = (this.isLocalStorageAvailable())\n            ? localStorage.getItem(this.key)\n            : this.localCache.get(this.key);\n        if (schema)\n            return JSON.parse(schema);\n        else\n            return smodel_factory_1.EMPTY_ROOT;\n    };\n    SModelStorage.prototype.isLocalStorageAvailable = function () {\n        try {\n            return typeof localStorage === 'object' && localStorage !== null;\n        }\n        catch (e) {\n            return false;\n        }\n    };\n    Object.defineProperty(SModelStorage.prototype, \"key\", {\n        get: function () {\n            return this.viewerOptions.baseDiv;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    __decorate([\n        inversify_1.inject(types_1.TYPES.ViewerOptions),\n        __metadata(\"design:type\", Object)\n    ], SModelStorage.prototype, \"viewerOptions\", void 0);\n    SModelStorage = __decorate([\n        inversify_1.injectable()\n    ], SModelStorage);\n    return SModelStorage;\n}());\nexports.SModelStorage = SModelStorage;\n//# sourceMappingURL=smodel-storage.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/model/smodel-storage.js\n// module id = 87\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar DOMHelper = /** @class */ (function () {\n    function DOMHelper(viewerOptions) {\n        this.viewerOptions = viewerOptions;\n    }\n    DOMHelper.prototype.getPrefix = function () {\n        var prefix = this.viewerOptions !== undefined && this.viewerOptions.baseDiv !== undefined ?\n            this.viewerOptions.baseDiv + \"_\" : \"\";\n        return prefix;\n    };\n    DOMHelper.prototype.createUniqueDOMElementId = function (element) {\n        return this.getPrefix() + element.id;\n    };\n    DOMHelper.prototype.findSModelIdByDOMElement = function (element) {\n        return element.id.replace(this.getPrefix(), '');\n    };\n    DOMHelper = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __metadata(\"design:paramtypes\", [Object])\n    ], DOMHelper);\n    return DOMHelper;\n}());\nexports.DOMHelper = DOMHelper;\n//# sourceMappingURL=dom-helper.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/dom-helper.js\n// module id = 88\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar model_1 = require(\"./model\");\nvar AbstractLayout = /** @class */ (function () {\n    function AbstractLayout() {\n    }\n    AbstractLayout.prototype.layout = function (container, layouter) {\n        var boundsData = layouter.getBoundsData(container);\n        var options = this.getLayoutOptions(container);\n        var childrenSize = this.getChildrenSize(container, options, layouter);\n        var maxWidth = options.paddingFactor * (options.resizeContainer\n            ? childrenSize.width\n            : Math.max(0, this.getFixedContainerBounds(container, options, layouter).width) - options.paddingLeft - options.paddingRight);\n        var maxHeight = options.paddingFactor * (options.resizeContainer\n            ? childrenSize.height\n            : Math.max(0, this.getFixedContainerBounds(container, options, layouter).height) - options.paddingTop - options.paddingBottom);\n        if (maxWidth > 0 && maxHeight > 0) {\n            var offset = this.layoutChildren(container, layouter, options, maxWidth, maxHeight);\n            boundsData.bounds = this.getFinalContainerBounds(container, offset, options, maxWidth, maxHeight);\n            boundsData.boundsChanged = true;\n        }\n    };\n    AbstractLayout.prototype.getFinalContainerBounds = function (container, lastOffset, options, maxWidth, maxHeight) {\n        return {\n            x: container.bounds.x,\n            y: container.bounds.y,\n            width: maxWidth + options.paddingLeft + options.paddingRight,\n            height: maxHeight + options.paddingTop + options.paddingBottom\n        };\n    };\n    AbstractLayout.prototype.getFixedContainerBounds = function (container, layoutOptions, layouter) {\n        var currentContainer = container;\n        while (true) {\n            if (model_1.isBoundsAware(currentContainer)) {\n                var bounds = currentContainer.bounds;\n                if (model_1.isLayoutContainer(currentContainer) && layoutOptions.resizeContainer)\n                    layouter.log.error(currentContainer, 'Resizable container found while detecting fixed bounds');\n                if (geometry_1.isValidDimension(bounds))\n                    return bounds;\n            }\n            if (currentContainer instanceof smodel_1.SChildElement) {\n                currentContainer = currentContainer.parent;\n            }\n            else {\n                layouter.log.error(currentContainer, 'Cannot detect fixed bounds');\n                return geometry_1.EMPTY_BOUNDS;\n            }\n        }\n    };\n    AbstractLayout.prototype.layoutChildren = function (container, layouter, containerOptions, maxWidth, maxHeight) {\n        var _this = this;\n        var currentOffset = {\n            x: containerOptions.paddingLeft + 0.5 * (maxWidth - (maxWidth / containerOptions.paddingFactor)),\n            y: containerOptions.paddingTop + 0.5 * (maxHeight - (maxHeight / containerOptions.paddingFactor))\n        };\n        container.children.forEach(function (child) {\n            if (model_1.isLayoutableChild(child)) {\n                var boundsData = layouter.getBoundsData(child);\n                var bounds = boundsData.bounds;\n                var childOptions = _this.getChildLayoutOptions(child, containerOptions);\n                if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {\n                    currentOffset = _this.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);\n                }\n            }\n        });\n        return currentOffset;\n    };\n    AbstractLayout.prototype.getDx = function (hAlign, bounds, maxWidth) {\n        switch (hAlign) {\n            case 'left':\n                return 0;\n            case 'center':\n                return 0.5 * (maxWidth - bounds.width);\n            case 'right':\n                return maxWidth - bounds.width;\n        }\n    };\n    AbstractLayout.prototype.getDy = function (vAlign, bounds, maxHeight) {\n        switch (vAlign) {\n            case 'top':\n                return 0;\n            case 'center':\n                return 0.5 * (maxHeight - bounds.height);\n            case 'bottom':\n                return maxHeight - bounds.height;\n        }\n    };\n    AbstractLayout.prototype.getChildLayoutOptions = function (child, containerOptions) {\n        var layoutOptions = child.layoutOptions;\n        if (layoutOptions === undefined)\n            return containerOptions;\n        else\n            return this.spread(containerOptions, layoutOptions);\n    };\n    AbstractLayout.prototype.getLayoutOptions = function (element) {\n        var _this = this;\n        var current = element;\n        var allOptions = [];\n        while (current !== undefined) {\n            var layoutOptions = current.layoutOptions;\n            if (layoutOptions !== undefined)\n                allOptions.push(layoutOptions);\n            if (current instanceof smodel_1.SChildElement)\n                current = current.parent;\n            else\n                break;\n        }\n        return allOptions.reverse().reduce(function (a, b) { return _this.spread(a, b); }, this.getDefaultLayoutOptions());\n    };\n    return AbstractLayout;\n}());\nexports.AbstractLayout = AbstractLayout;\n//# sourceMappingURL=abstract-layout.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/abstract-layout.js\n// module id = 89\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar registry_1 = require(\"../../utils/registry\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar model_1 = require(\"./model\");\nvar vbox_layout_1 = require(\"./vbox-layout\");\nvar hbox_layout_1 = require(\"./hbox-layout\");\nvar stack_layout_1 = require(\"./stack-layout\");\nvar LayoutRegistry = /** @class */ (function (_super) {\n    __extends(LayoutRegistry, _super);\n    function LayoutRegistry() {\n        var _this = _super.call(this) || this;\n        _this.register(vbox_layout_1.VBoxLayouter.KIND, new vbox_layout_1.VBoxLayouter());\n        _this.register(hbox_layout_1.HBoxLayouter.KIND, new hbox_layout_1.HBoxLayouter());\n        _this.register(stack_layout_1.StackLayouter.KIND, new stack_layout_1.StackLayouter());\n        return _this;\n    }\n    return LayoutRegistry;\n}(registry_1.InstanceRegistry));\nexports.LayoutRegistry = LayoutRegistry;\nvar Layouter = /** @class */ (function () {\n    function Layouter(layoutRegistry, logger) {\n        this.layoutRegistry = layoutRegistry;\n        this.logger = logger;\n    }\n    Layouter.prototype.layout = function (element2boundsData) {\n        new StatefulLayouter(element2boundsData, this.layoutRegistry, this.logger).layout();\n    };\n    Layouter = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.LayoutRegistry)),\n        __param(1, inversify_1.inject(types_1.TYPES.ILogger)),\n        __metadata(\"design:paramtypes\", [LayoutRegistry, Object])\n    ], Layouter);\n    return Layouter;\n}());\nexports.Layouter = Layouter;\nvar StatefulLayouter = /** @class */ (function () {\n    function StatefulLayouter(element2boundsData, layoutRegistry, log) {\n        var _this = this;\n        this.element2boundsData = element2boundsData;\n        this.layoutRegistry = layoutRegistry;\n        this.log = log;\n        this.toBeLayouted = [];\n        element2boundsData.forEach(function (data, element) {\n            if (model_1.isLayoutContainer(element))\n                _this.toBeLayouted.push(element);\n        });\n    }\n    StatefulLayouter.prototype.getBoundsData = function (element) {\n        var boundsData = this.element2boundsData.get(element);\n        var bounds = element.bounds;\n        if (model_1.isLayoutContainer(element) && this.toBeLayouted.indexOf(element) >= 0) {\n            bounds = this.doLayout(element);\n        }\n        if (!boundsData) {\n            boundsData = {\n                bounds: bounds,\n                boundsChanged: false,\n                alignmentChanged: false\n            };\n            this.element2boundsData.set(element, boundsData);\n        }\n        return boundsData;\n    };\n    StatefulLayouter.prototype.layout = function () {\n        while (this.toBeLayouted.length > 0) {\n            var element = this.toBeLayouted[0];\n            this.doLayout(element);\n        }\n    };\n    StatefulLayouter.prototype.doLayout = function (element) {\n        var index = this.toBeLayouted.indexOf(element);\n        if (index >= 0)\n            this.toBeLayouted.splice(index, 1);\n        var layout = this.layoutRegistry.get(element.layout);\n        if (layout)\n            layout.layout(element, this);\n        var boundsData = this.element2boundsData.get(element);\n        if (boundsData !== undefined && boundsData.bounds !== undefined) {\n            return boundsData.bounds;\n        }\n        else {\n            this.log.error(element, 'Layout failed');\n            return geometry_1.EMPTY_BOUNDS;\n        }\n    };\n    return StatefulLayouter;\n}());\nexports.StatefulLayouter = StatefulLayouter;\n//# sourceMappingURL=layout.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/layout.js\n// module id = 90\n// module chunks = 0","\"use strict\";\n/*\n* Copyright (C) 2017 TypeFox and others.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar registry_1 = require(\"../../utils/registry\");\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar ButtonHandlerRegistry = /** @class */ (function (_super) {\n    __extends(ButtonHandlerRegistry, _super);\n    function ButtonHandlerRegistry(buttonHandlerFactories) {\n        var _this = _super.call(this) || this;\n        buttonHandlerFactories.forEach(function (factory) { return _this.register(factory.TYPE, new factory()); });\n        return _this;\n    }\n    ButtonHandlerRegistry = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.multiInject(types_1.TYPES.IButtonHandler)), __param(0, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Array])\n    ], ButtonHandlerRegistry);\n    return ButtonHandlerRegistry;\n}(registry_1.InstanceRegistry));\nexports.ButtonHandlerRegistry = ButtonHandlerRegistry;\n//# sourceMappingURL=button-handler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/button/button-handler.js\n// module id = 91\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar model_1 = require(\"../bounds/model\");\nvar model_2 = require(\"../fade/model\");\nvar SButton = /** @class */ (function (_super) {\n    __extends(SButton, _super);\n    function SButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.enabled = true;\n        return _this;\n    }\n    SButton.prototype.hasFeature = function (feature) {\n        return feature === model_1.boundsFeature || feature === model_2.fadeFeature || feature === model_1.layoutableChildFeature;\n    };\n    return SButton;\n}(model_1.SShapeElement));\nexports.SButton = SButton;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/button/model.js\n// module id = 92\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expandFeature = Symbol('expandFeature');\nfunction isExpandable(element) {\n    return 'expanded' in element && element.hasFeature(exports.expandFeature);\n}\nexports.isExpandable = isExpandable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/expand/model.js\n// module id = 93\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar animation_1 = require(\"../../base/animations/animation\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar vnode_utils_1 = require(\"../../base/views/vnode-utils\");\nvar model_1 = require(\"./model\");\nvar FadeAnimation = /** @class */ (function (_super) {\n    __extends(FadeAnimation, _super);\n    function FadeAnimation(model, elementFades, context, removeAfterFadeOut) {\n        if (removeAfterFadeOut === void 0) { removeAfterFadeOut = false; }\n        var _this = _super.call(this, context) || this;\n        _this.model = model;\n        _this.elementFades = elementFades;\n        _this.removeAfterFadeOut = removeAfterFadeOut;\n        return _this;\n    }\n    FadeAnimation.prototype.tween = function (t, context) {\n        for (var _i = 0, _a = this.elementFades; _i < _a.length; _i++) {\n            var elementFade = _a[_i];\n            var element = elementFade.element;\n            if (elementFade.type === 'in') {\n                element.opacity = t;\n            }\n            else if (elementFade.type === 'out') {\n                element.opacity = 1 - t;\n                if (t === 1 && this.removeAfterFadeOut && element instanceof smodel_1.SChildElement) {\n                    element.parent.remove(element);\n                }\n            }\n        }\n        return this.model;\n    };\n    return FadeAnimation;\n}(animation_1.Animation));\nexports.FadeAnimation = FadeAnimation;\nvar ElementFader = /** @class */ (function () {\n    function ElementFader() {\n    }\n    ElementFader.prototype.decorate = function (vnode, element) {\n        if (model_1.isFadeable(element)) {\n            vnode_utils_1.setAttr(vnode, 'opacity', element.opacity);\n        }\n        return vnode;\n    };\n    ElementFader.prototype.postUpdate = function () {\n    };\n    ElementFader = __decorate([\n        inversify_1.injectable()\n    ], ElementFader);\n    return ElementFader;\n}());\nexports.ElementFader = ElementFader;\n//# sourceMappingURL=fade.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/fade/fade.js\n// module id = 94\n// module chunks = 0","\"use strict\";\n/*\n* Copyright (C) 2017 TypeFox and others.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar model_1 = require(\"./model\");\nvar OpenAction = /** @class */ (function () {\n    function OpenAction(elementId) {\n        this.elementId = elementId;\n        this.kind = OpenAction.KIND;\n    }\n    OpenAction.KIND = 'open';\n    return OpenAction;\n}());\nexports.OpenAction = OpenAction;\nvar OpenMouseListener = /** @class */ (function (_super) {\n    __extends(OpenMouseListener, _super);\n    function OpenMouseListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    OpenMouseListener.prototype.doubleClick = function (target, event) {\n        var openableTarget = smodel_utils_1.findParentByFeature(target, model_1.isOpenable);\n        if (openableTarget !== undefined) {\n            return [new OpenAction(openableTarget.id)];\n        }\n        return [];\n    };\n    return OpenMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.OpenMouseListener = OpenMouseListener;\n//# sourceMappingURL=open.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/open/open.js\n// module id = 95\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar browser_1 = require(\"../../utils/browser\");\nvar key_tool_1 = require(\"../../base/views/key-tool\");\nvar UndoAction = /** @class */ (function () {\n    function UndoAction() {\n        this.kind = UndoAction.KIND;\n    }\n    UndoAction.KIND = 'undo';\n    return UndoAction;\n}());\nexports.UndoAction = UndoAction;\nvar RedoAction = /** @class */ (function () {\n    function RedoAction() {\n        this.kind = RedoAction.KIND;\n    }\n    RedoAction.KIND = 'redo';\n    return RedoAction;\n}());\nexports.RedoAction = RedoAction;\nvar UndoRedoKeyListener = /** @class */ (function (_super) {\n    __extends(UndoRedoKeyListener, _super);\n    function UndoRedoKeyListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    UndoRedoKeyListener.prototype.keyDown = function (element, event) {\n        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 90) {\n            if (event.shiftKey)\n                return [new RedoAction];\n            else\n                return [new UndoAction];\n        }\n        return [];\n    };\n    return UndoRedoKeyListener;\n}(key_tool_1.KeyListener));\nexports.UndoRedoKeyListener = UndoRedoKeyListener;\n//# sourceMappingURL=undo-redo.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/undo-redo/undo-redo.js\n// module id = 96\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar ModelMatcher = /** @class */ (function () {\n    function ModelMatcher() {\n    }\n    ModelMatcher.prototype.match = function (left, right) {\n        var result = {};\n        this.matchLeft(left, result);\n        this.matchRight(right, result);\n        return result;\n    };\n    ModelMatcher.prototype.matchLeft = function (element, result, parentId) {\n        var match = result[element.id];\n        if (match !== undefined) {\n            match.left = element;\n            match.leftParentId = parentId;\n        }\n        else {\n            match = {\n                left: element,\n                leftParentId: parentId\n            };\n            result[element.id] = match;\n        }\n        if (element.children !== undefined) {\n            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n                var child = _a[_i];\n                this.matchLeft(child, result, element.id);\n            }\n        }\n    };\n    ModelMatcher.prototype.matchRight = function (element, result, parentId) {\n        var match = result[element.id];\n        if (match !== undefined) {\n            match.right = element;\n            match.rightParentId = parentId;\n        }\n        else {\n            match = {\n                right: element,\n                rightParentId: parentId\n            };\n            result[element.id] = match;\n        }\n        if (element.children !== undefined) {\n            for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n                var child = _a[_i];\n                this.matchRight(child, result, element.id);\n            }\n        }\n    };\n    return ModelMatcher;\n}());\nexports.ModelMatcher = ModelMatcher;\nfunction applyMatches(root, matches) {\n    var index;\n    if (root instanceof smodel_1.SModelRoot) {\n        index = root.index;\n    }\n    else {\n        index = new smodel_1.SModelIndex();\n        index.add(root);\n    }\n    for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n        var match = matches_1[_i];\n        var newElementInserted = false;\n        if (match.left !== undefined && match.leftParentId !== undefined) {\n            var parent_1 = index.getById(match.leftParentId);\n            if (parent_1 !== undefined && parent_1.children !== undefined) {\n                var i = parent_1.children.indexOf(match.left);\n                if (i >= 0) {\n                    if (match.right !== undefined && match.leftParentId === match.rightParentId) {\n                        parent_1.children.splice(i, 1, match.right);\n                        newElementInserted = true;\n                    }\n                    else {\n                        parent_1.children.splice(i, 1);\n                    }\n                }\n                index.remove(match.left);\n            }\n        }\n        if (!newElementInserted && match.right !== undefined && match.rightParentId !== undefined) {\n            var parent_2 = index.getById(match.rightParentId);\n            if (parent_2 !== undefined) {\n                if (parent_2.children === undefined)\n                    parent_2.children = [];\n                parent_2.children.push(match.right);\n            }\n        }\n    }\n}\nexports.applyMatches = applyMatches;\n//# sourceMappingURL=model-matching.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/update/model-matching.js\n// module id = 97\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar animation_1 = require(\"../../base/animations/animation\");\nvar command_1 = require(\"../../base/commands/command\");\nvar fade_1 = require(\"../fade/fade\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar move_1 = require(\"../move/move\");\nvar model_1 = require(\"../fade/model\");\nvar model_2 = require(\"../move/model\");\nvar model_3 = require(\"../bounds/model\");\nvar viewport_root_1 = require(\"../viewport/viewport-root\");\nvar model_4 = require(\"../select/model\");\nvar model_matching_1 = require(\"./model-matching\");\nvar resize_1 = require(\"../bounds/resize\");\n/**\n * Sent from the model source to the client in order to update the model. If no model is present yet,\n * this behaves the same as a SetModelAction. The transition from the old model to the new one can be animated.\n */\nvar UpdateModelAction = /** @class */ (function () {\n    function UpdateModelAction(newRoot) {\n        this.newRoot = newRoot;\n        this.kind = UpdateModelCommand.KIND;\n        this.animate = true;\n    }\n    return UpdateModelAction;\n}());\nexports.UpdateModelAction = UpdateModelAction;\nvar UpdateModelCommand = /** @class */ (function (_super) {\n    __extends(UpdateModelCommand, _super);\n    function UpdateModelCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        if (action.animate === undefined)\n            action.animate = true;\n        return _this;\n    }\n    UpdateModelCommand.prototype.execute = function (context) {\n        var newRoot;\n        if (this.action.newRoot !== undefined) {\n            newRoot = context.modelFactory.createRoot(this.action.newRoot);\n        }\n        else {\n            newRoot = context.modelFactory.createRoot(context.root);\n            if (this.action.matches !== undefined)\n                this.applyMatches(newRoot, this.action.matches, context);\n        }\n        this.oldRoot = context.root;\n        this.newRoot = newRoot;\n        return this.performUpdate(this.oldRoot, this.newRoot, context);\n    };\n    UpdateModelCommand.prototype.performUpdate = function (oldRoot, newRoot, context) {\n        if (this.action.animate && oldRoot.id === newRoot.id) {\n            var matchResult = void 0;\n            if (this.action.matches === undefined) {\n                var matcher = new model_matching_1.ModelMatcher();\n                matchResult = matcher.match(oldRoot, newRoot);\n            }\n            else {\n                matchResult = this.convertToMatchResult(this.action.matches, oldRoot, newRoot);\n            }\n            var animationOrRoot = this.computeAnimation(newRoot, matchResult, context);\n            if (animationOrRoot instanceof animation_1.Animation)\n                return animationOrRoot.start();\n            else\n                return animationOrRoot;\n        }\n        else {\n            newRoot.canvasBounds = oldRoot.canvasBounds;\n            return newRoot;\n        }\n    };\n    UpdateModelCommand.prototype.applyMatches = function (root, matches, context) {\n        var index = root.index;\n        for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n            var match = matches_1[_i];\n            if (match.left !== undefined) {\n                var element = index.getById(match.left.id);\n                if (element instanceof smodel_1.SChildElement)\n                    element.parent.remove(element);\n            }\n            if (match.right !== undefined) {\n                var element = context.modelFactory.createElement(match.right);\n                var parent_1 = void 0;\n                if (match.rightParentId !== undefined)\n                    parent_1 = index.getById(match.rightParentId);\n                if (parent_1 instanceof smodel_1.SParentElement)\n                    parent_1.add(element);\n                else\n                    root.add(element);\n            }\n        }\n    };\n    UpdateModelCommand.prototype.convertToMatchResult = function (matches, leftRoot, rightRoot) {\n        var result = {};\n        for (var _i = 0, matches_2 = matches; _i < matches_2.length; _i++) {\n            var match = matches_2[_i];\n            var converted = {};\n            var id = undefined;\n            if (match.left !== undefined) {\n                id = match.left.id;\n                converted.left = leftRoot.index.getById(id);\n                converted.leftParentId = match.leftParentId;\n            }\n            if (match.right !== undefined) {\n                id = match.right.id;\n                converted.right = rightRoot.index.getById(id);\n                converted.rightParentId = match.rightParentId;\n            }\n            if (id !== undefined)\n                result[id] = converted;\n        }\n        return result;\n    };\n    UpdateModelCommand.prototype.computeAnimation = function (newRoot, matchResult, context) {\n        var animationData = {\n            fades: []\n        };\n        for (var id in matchResult) {\n            var match = matchResult[id];\n            if (match.left !== undefined && match.right !== undefined) {\n                // The element is still there, but may have been moved\n                this.updateElement(match.left, match.right, animationData);\n            }\n            else if (match.right !== undefined) {\n                // An element has been added\n                var right = match.right;\n                if (model_1.isFadeable(right)) {\n                    right.opacity = 0;\n                    animationData.fades.push({\n                        element: right,\n                        type: 'in'\n                    });\n                }\n            }\n            else if (match.left instanceof smodel_1.SChildElement) {\n                // An element has been removed\n                var left = match.left;\n                if (model_1.isFadeable(left) && match.leftParentId !== undefined) {\n                    if (newRoot.index.getById(left.id) === undefined) {\n                        var parent_2 = newRoot.index.getById(match.leftParentId);\n                        if (parent_2 instanceof smodel_1.SParentElement) {\n                            var leftCopy = context.modelFactory.createElement(left);\n                            parent_2.add(leftCopy);\n                            animationData.fades.push({\n                                element: leftCopy,\n                                type: 'out'\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        var animations = this.createAnimations(animationData, newRoot, context);\n        if (animations.length >= 2) {\n            return new animation_1.CompoundAnimation(newRoot, context, animations);\n        }\n        else if (animations.length === 1) {\n            return animations[0];\n        }\n        else {\n            return newRoot;\n        }\n    };\n    UpdateModelCommand.prototype.updateElement = function (left, right, animationData) {\n        if (model_2.isLocateable(left) && model_2.isLocateable(right)) {\n            var leftPos = left.position;\n            var rightPos = right.position;\n            if (!geometry_1.almostEquals(leftPos.x, rightPos.x) || !geometry_1.almostEquals(leftPos.y, rightPos.y)) {\n                if (animationData.moves === undefined)\n                    animationData.moves = [];\n                animationData.moves.push({\n                    element: right,\n                    elementId: right.id,\n                    fromPosition: leftPos,\n                    toPosition: rightPos\n                });\n                right.position = leftPos;\n            }\n        }\n        if (model_3.isBoundsAware(left) && model_3.isBoundsAware(right)) {\n            if (!geometry_1.isValidDimension(right.bounds)) {\n                right.bounds = {\n                    x: right.bounds.x,\n                    y: right.bounds.y,\n                    width: left.bounds.width,\n                    height: left.bounds.height\n                };\n            }\n            else if (!geometry_1.almostEquals(left.bounds.width, right.bounds.width)\n                || !geometry_1.almostEquals(left.bounds.height, right.bounds.height)) {\n                if (animationData.resizes === undefined)\n                    animationData.resizes = [];\n                animationData.resizes.push({\n                    element: right,\n                    fromDimension: {\n                        width: left.bounds.width,\n                        height: left.bounds.height,\n                    },\n                    toDimension: {\n                        width: right.bounds.width,\n                        height: right.bounds.height,\n                    }\n                });\n            }\n        }\n        if (model_4.isSelectable(left) && model_4.isSelectable(right)) {\n            right.selected = left.selected;\n        }\n        if (left instanceof smodel_1.SModelRoot && right instanceof smodel_1.SModelRoot) {\n            right.canvasBounds = left.canvasBounds;\n        }\n        if (left instanceof viewport_root_1.ViewportRootElement && right instanceof viewport_root_1.ViewportRootElement) {\n            right.scroll = left.scroll;\n            right.zoom = left.zoom;\n        }\n    };\n    UpdateModelCommand.prototype.createAnimations = function (data, root, context) {\n        var animations = [];\n        if (data.fades.length > 0) {\n            animations.push(new fade_1.FadeAnimation(root, data.fades, context, true));\n        }\n        if (data.moves !== undefined && data.moves.length > 0) {\n            var movesMap = new Map;\n            for (var _i = 0, _a = data.moves; _i < _a.length; _i++) {\n                var move = _a[_i];\n                movesMap.set(move.elementId, move);\n            }\n            animations.push(new move_1.MoveAnimation(root, movesMap, context, false));\n        }\n        if (data.resizes !== undefined && data.resizes.length > 0) {\n            var resizesMap = new Map;\n            for (var _b = 0, _c = data.resizes; _b < _c.length; _b++) {\n                var resize = _c[_b];\n                resizesMap.set(resize.element.id, resize);\n            }\n            animations.push(new resize_1.ResizeAnimation(root, resizesMap, context, false));\n        }\n        return animations;\n    };\n    UpdateModelCommand.prototype.undo = function (context) {\n        return this.performUpdate(this.newRoot, this.oldRoot, context);\n    };\n    UpdateModelCommand.prototype.redo = function (context) {\n        return this.performUpdate(this.oldRoot, this.newRoot, context);\n    };\n    UpdateModelCommand.KIND = 'updateModel';\n    UpdateModelCommand = __decorate([\n        inversify_1.injectable(),\n        __metadata(\"design:paramtypes\", [UpdateModelAction])\n    ], UpdateModelCommand);\n    return UpdateModelCommand;\n}(command_1.Command));\nexports.UpdateModelCommand = UpdateModelCommand;\n//# sourceMappingURL=update-model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/update/update-model.js\n// module id = 98\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar browser_1 = require(\"../../utils/browser\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar command_1 = require(\"../../base/commands/command\");\nvar key_tool_1 = require(\"../../base/views/key-tool\");\nvar model_1 = require(\"../bounds/model\");\nvar model_2 = require(\"../select/model\");\nvar viewport_1 = require(\"./viewport\");\nvar model_3 = require(\"./model\");\n/**\n * Triggered when the user requests the viewer to center on the current model. The resulting\n * CenterCommand changes the scroll setting of the viewport accordingly and resets the zoom to its default.\n * This action can also be sent from the model source to the client in order to perform such a\n * viewport change programmatically.\n */\nvar CenterAction = /** @class */ (function () {\n    function CenterAction(elementIds, animate) {\n        if (animate === void 0) { animate = true; }\n        this.elementIds = elementIds;\n        this.animate = animate;\n        this.kind = CenterCommand.KIND;\n    }\n    return CenterAction;\n}());\nexports.CenterAction = CenterAction;\n/**\n * Triggered when the user requests the viewer to fit its content to the available drawing area.\n * The resulting FitToScreenCommand changes the zoom and scroll settings of the viewport so the model\n * can be shown completely. This action can also be sent from the model source to the client in order\n * to perform such a viewport change programmatically.\n */\nvar FitToScreenAction = /** @class */ (function () {\n    function FitToScreenAction(elementIds, padding, maxZoom, animate) {\n        if (animate === void 0) { animate = true; }\n        this.elementIds = elementIds;\n        this.padding = padding;\n        this.maxZoom = maxZoom;\n        this.animate = animate;\n        this.kind = FitToScreenCommand.KIND;\n    }\n    return FitToScreenAction;\n}());\nexports.FitToScreenAction = FitToScreenAction;\nvar BoundsAwareViewportCommand = /** @class */ (function (_super) {\n    __extends(BoundsAwareViewportCommand, _super);\n    function BoundsAwareViewportCommand(animate) {\n        var _this = _super.call(this) || this;\n        _this.animate = animate;\n        return _this;\n    }\n    BoundsAwareViewportCommand.prototype.initialize = function (model) {\n        var _this = this;\n        if (model_3.isViewport(model)) {\n            this.oldViewport = {\n                scroll: model.scroll,\n                zoom: model.zoom\n            };\n            var allBounds_1 = [];\n            this.getElementIds().forEach(function (id) {\n                var element = model.index.getById(id);\n                if (element && model_1.isBoundsAware(element))\n                    allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));\n            });\n            if (allBounds_1.length === 0) {\n                model.index.all().forEach(function (element) {\n                    if (model_2.isSelectable(element) && element.selected && model_1.isBoundsAware(element))\n                        allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));\n                });\n            }\n            if (allBounds_1.length === 0) {\n                model.index.all().forEach(function (element) {\n                    if (model_1.isBoundsAware(element))\n                        allBounds_1.push(_this.boundsInViewport(element, element.bounds, model));\n                });\n            }\n            var bounds = allBounds_1.reduce(function (b0, b1) { return b0 === undefined ? b1 : geometry_1.combine(b0, b1); }, undefined);\n            if (geometry_1.isValidDimension(bounds))\n                this.newViewport = this.getNewViewport(bounds, model);\n        }\n    };\n    BoundsAwareViewportCommand.prototype.boundsInViewport = function (element, bounds, viewport) {\n        if (element instanceof smodel_1.SChildElement && element.parent !== viewport)\n            return this.boundsInViewport(element.parent, element.parent.localToParent(bounds), viewport);\n        else\n            return bounds;\n    };\n    BoundsAwareViewportCommand.prototype.execute = function (context) {\n        this.initialize(context.root);\n        return this.redo(context);\n    };\n    BoundsAwareViewportCommand.prototype.undo = function (context) {\n        var model = context.root;\n        if (model_3.isViewport(model) && this.newViewport && !this.equal(this.newViewport, this.oldViewport)) {\n            if (this.animate)\n                return new viewport_1.ViewportAnimation(model, this.newViewport, this.oldViewport, context).start();\n            else {\n                model.scroll = this.oldViewport.scroll;\n                model.zoom = this.oldViewport.zoom;\n            }\n        }\n        return model;\n    };\n    BoundsAwareViewportCommand.prototype.redo = function (context) {\n        var model = context.root;\n        if (model_3.isViewport(model) && this.newViewport && !this.equal(this.newViewport, this.oldViewport)) {\n            if (this.animate) {\n                return new viewport_1.ViewportAnimation(model, this.oldViewport, this.newViewport, context).start();\n            }\n            else {\n                model.scroll = this.newViewport.scroll;\n                model.zoom = this.newViewport.zoom;\n            }\n        }\n        return model;\n    };\n    BoundsAwareViewportCommand.prototype.equal = function (vp1, vp2) {\n        return vp1.zoom === vp2.zoom && vp1.scroll.x === vp2.scroll.x && vp1.scroll.y === vp2.scroll.y;\n    };\n    return BoundsAwareViewportCommand;\n}(command_1.Command));\nexports.BoundsAwareViewportCommand = BoundsAwareViewportCommand;\nvar CenterCommand = /** @class */ (function (_super) {\n    __extends(CenterCommand, _super);\n    function CenterCommand(action) {\n        var _this = _super.call(this, action.animate) || this;\n        _this.action = action;\n        return _this;\n    }\n    CenterCommand.prototype.getElementIds = function () {\n        return this.action.elementIds;\n    };\n    CenterCommand.prototype.getNewViewport = function (bounds, model) {\n        var c = geometry_1.center(bounds);\n        return {\n            scroll: {\n                x: c.x - 0.5 * model.canvasBounds.width,\n                y: c.y - 0.5 * model.canvasBounds.height\n            },\n            zoom: 1\n        };\n    };\n    CenterCommand.KIND = 'center';\n    return CenterCommand;\n}(BoundsAwareViewportCommand));\nexports.CenterCommand = CenterCommand;\nvar FitToScreenCommand = /** @class */ (function (_super) {\n    __extends(FitToScreenCommand, _super);\n    function FitToScreenCommand(action) {\n        var _this = _super.call(this, action.animate) || this;\n        _this.action = action;\n        return _this;\n    }\n    FitToScreenCommand.prototype.getElementIds = function () {\n        return this.action.elementIds;\n    };\n    FitToScreenCommand.prototype.getNewViewport = function (bounds, model) {\n        var c = geometry_1.center(bounds);\n        var delta = this.action.padding === undefined\n            ? 0\n            : 2 * this.action.padding;\n        var zoom = Math.min(model.canvasBounds.width / (bounds.width + delta), model.canvasBounds.height / bounds.height + delta);\n        if (this.action.maxZoom !== undefined)\n            zoom = Math.min(zoom, this.action.maxZoom);\n        return {\n            scroll: {\n                x: c.x - 0.5 * model.canvasBounds.width / zoom,\n                y: c.y - 0.5 * model.canvasBounds.height / zoom\n            },\n            zoom: zoom\n        };\n    };\n    FitToScreenCommand.KIND = 'fit';\n    return FitToScreenCommand;\n}(BoundsAwareViewportCommand));\nexports.FitToScreenCommand = FitToScreenCommand;\nvar CenterKeyboardListener = /** @class */ (function (_super) {\n    __extends(CenterKeyboardListener, _super);\n    function CenterKeyboardListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CenterKeyboardListener.prototype.keyDown = function (element, event) {\n        if (browser_1.isCtrlOrCmd(event)) {\n            switch (event.keyCode) {\n                case 67:\n                    return [new CenterAction([])];\n                case 70:\n                    return [new FitToScreenAction([])];\n            }\n        }\n        return [];\n    };\n    return CenterKeyboardListener;\n}(key_tool_1.KeyListener));\nexports.CenterKeyboardListener = CenterKeyboardListener;\n//# sourceMappingURL=center-fit.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/center-fit.js\n// module id = 99\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar model_1 = require(\"./model\");\nvar model_2 = require(\"../export/model\");\n/**\n * Model root element that defines a viewport, so it transforms the coordinate system with\n * a `scroll` translation and a `zoom` scaling.\n */\nvar ViewportRootElement = /** @class */ (function (_super) {\n    __extends(ViewportRootElement, _super);\n    function ViewportRootElement() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.scroll = { x: 0, y: 0 };\n        _this.zoom = 1;\n        _this.export = false;\n        return _this;\n    }\n    ViewportRootElement.prototype.hasFeature = function (feature) {\n        return feature === model_1.viewportFeature || feature === model_2.exportFeature;\n    };\n    ViewportRootElement.prototype.localToParent = function (point) {\n        var result = {\n            x: (point.x - this.scroll.x) * this.zoom,\n            y: (point.y - this.scroll.y) * this.zoom,\n            width: -1,\n            height: -1\n        };\n        if (geometry_1.isBounds(point)) {\n            result.width = point.width * this.zoom;\n            result.height = point.height * this.zoom;\n        }\n        return result;\n    };\n    ViewportRootElement.prototype.parentToLocal = function (point) {\n        var result = {\n            x: (point.x / this.zoom) + this.scroll.x,\n            y: (point.y / this.zoom) + this.scroll.y,\n            width: -1,\n            height: -1\n        };\n        if (geometry_1.isBounds(point) && geometry_1.isValidDimension(point)) {\n            result.width = point.width / this.zoom;\n            result.height = point.height / this.zoom;\n        }\n        return result;\n    };\n    return ViewportRootElement;\n}(smodel_1.SModelRoot));\nexports.ViewportRootElement = ViewportRootElement;\n//# sourceMappingURL=viewport-root.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/viewport-root.js\n// module id = 100\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../base/model/smodel\");\nvar model_1 = require(\"../features/bounds/model\");\nvar model_2 = require(\"../features/fade/model\");\nvar model_3 = require(\"../features/hover/model\");\nvar model_4 = require(\"../features/move/model\");\nvar model_5 = require(\"../features/select/model\");\nvar viewport_root_1 = require(\"../features/viewport/viewport-root\");\nvar geometry_1 = require(\"../utils/geometry\");\nvar model_6 = require(\"../features/bounds/model\");\n/**\n * Root element for graph-like models.\n */\nvar SGraph = /** @class */ (function (_super) {\n    __extends(SGraph, _super);\n    function SGraph() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return SGraph;\n}(viewport_root_1.ViewportRootElement));\nexports.SGraph = SGraph;\n/**\n * Model element class for nodes, which are connectable entities in a graph. A node can be connected to\n * another node via an SEdge. Such a connection can be direct, i.e. the node is the source or target of\n * the edge, or indirect through a port, i.e. it contains an SPort which is the source or target of the edge.\n */\nvar SNode = /** @class */ (function (_super) {\n    __extends(SNode, _super);\n    function SNode() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hoverFeedback = false;\n        _this.selected = false;\n        _this.opacity = 1;\n        return _this;\n    }\n    SNode.prototype.hasFeature = function (feature) {\n        return feature === model_5.selectFeature || feature === model_4.moveFeature || feature === model_1.boundsFeature\n            || feature === model_1.layoutContainerFeature || feature === model_2.fadeFeature || feature === model_3.hoverFeedbackFeature\n            || feature === model_3.popupFeature;\n    };\n    return SNode;\n}(model_6.SShapeElement));\nexports.SNode = SNode;\n/**\n * A port is a connection point for edges. It should always be contained in an SNode.\n */\nvar SPort = /** @class */ (function (_super) {\n    __extends(SPort, _super);\n    function SPort() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hoverFeedback = false;\n        _this.selected = false;\n        _this.opacity = 1;\n        return _this;\n    }\n    SPort.prototype.hasFeature = function (feature) {\n        return feature === model_5.selectFeature || feature === model_1.boundsFeature || feature === model_2.fadeFeature\n            || feature === model_3.hoverFeedbackFeature;\n    };\n    return SPort;\n}(model_6.SShapeElement));\nexports.SPort = SPort;\n/**\n * Model element class for edges, which are the connectors in a graph. An edge has a source and a target,\n * each of which can be either a node or a port. The source and target elements are referenced via their\n * ids and can be resolved with the index stored in the root element.\n */\nvar SEdge = /** @class */ (function (_super) {\n    __extends(SEdge, _super);\n    function SEdge() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.routingPoints = [];\n        _this.opacity = 1;\n        return _this;\n    }\n    Object.defineProperty(SEdge.prototype, \"source\", {\n        get: function () {\n            return this.index.getById(this.sourceId);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(SEdge.prototype, \"target\", {\n        get: function () {\n            return this.index.getById(this.targetId);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    SEdge.prototype.hasFeature = function (feature) {\n        return feature === model_2.fadeFeature;\n    };\n    return SEdge;\n}(smodel_1.SChildElement));\nexports.SEdge = SEdge;\n/**\n * A label can be attached to a node, edge, or port, and contains some text to be rendered in its view.\n */\nvar SLabel = /** @class */ (function (_super) {\n    __extends(SLabel, _super);\n    function SLabel() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.selected = false;\n        _this.alignment = geometry_1.ORIGIN_POINT;\n        _this.opacity = 1;\n        return _this;\n    }\n    SLabel.prototype.hasFeature = function (feature) {\n        return feature === model_1.boundsFeature || feature === model_1.alignFeature || feature === model_2.fadeFeature || feature === model_1.layoutableChildFeature;\n    };\n    return SLabel;\n}(model_6.SShapeElement));\nexports.SLabel = SLabel;\n/**\n * A compartment is used to group multiple child elements such as labels of a node. Usually a `vbox`\n * or `hbox` layout is used to arrange these children.\n */\nvar SCompartment = /** @class */ (function (_super) {\n    __extends(SCompartment, _super);\n    function SCompartment() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.opacity = 1;\n        return _this;\n    }\n    SCompartment.prototype.hasFeature = function (feature) {\n        return feature === model_1.boundsFeature || feature === model_1.layoutContainerFeature || feature === model_1.layoutableChildFeature || feature === model_2.fadeFeature;\n    };\n    return SCompartment;\n}(model_6.SShapeElement));\nexports.SCompartment = SCompartment;\n//# sourceMappingURL=sgraph.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/graph/sgraph.js\n// module id = 101\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../base/types\");\nvar action_handler_1 = require(\"../base/actions/action-handler\");\nvar set_model_1 = require(\"../base/features/set-model\");\nvar svg_exporter_1 = require(\"../features/export/svg-exporter\");\n/**\n * A model source is serving the model to the event cycle. It represents\n * the entry point to the client for external sources, such as model\n * editors.\n *\n * As an IActionHandler it listens to actions in and reacts to them with\n * commands or actions if necessary. This way, you can implement action\n * protocols between the client and the outside world.\n *\n * There are two default implementations for a ModelSource:\n * <ul>\n * <li>the LocalModelSource handles the actions to calculate bounds and\n * set/update the model</li>\n * <li>the DiagramServer connects via websocket to a remote source. It\n * can be used to connect to a model editor that provides the model,\n * layouts diagrams, transfers selection and answers model queries from\n * the client.</li>\n */\nvar ModelSource = /** @class */ (function () {\n    function ModelSource(actionDispatcher, actionHandlerRegistry, viewerOptions) {\n        this.actionDispatcher = actionDispatcher;\n        this.viewerOptions = viewerOptions;\n        this.initialize(actionHandlerRegistry);\n    }\n    ModelSource.prototype.initialize = function (registry) {\n        // Register model manipulation commands\n        registry.registerCommand(set_model_1.SetModelCommand);\n        // Register this model source\n        registry.register(set_model_1.RequestModelAction.KIND, this);\n        registry.register(svg_exporter_1.ExportSvgAction.KIND, this);\n    };\n    ModelSource = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),\n        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __metadata(\"design:paramtypes\", [Object, action_handler_1.ActionHandlerRegistry, Object])\n    ], ModelSource);\n    return ModelSource;\n}());\nexports.ModelSource = ModelSource;\n//# sourceMappingURL=model-source.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/model-source.js\n// module id = 102\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../base/types\");\nvar LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"none\"] = 0] = \"none\";\n    LogLevel[LogLevel[\"error\"] = 1] = \"error\";\n    LogLevel[LogLevel[\"warn\"] = 2] = \"warn\";\n    LogLevel[LogLevel[\"info\"] = 3] = \"info\";\n    LogLevel[LogLevel[\"log\"] = 4] = \"log\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\nvar NullLogger = /** @class */ (function () {\n    function NullLogger() {\n        this.logLevel = LogLevel.none;\n    }\n    NullLogger.prototype.error = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n    };\n    NullLogger.prototype.warn = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n    };\n    NullLogger.prototype.info = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n    };\n    NullLogger.prototype.log = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n    };\n    NullLogger = __decorate([\n        inversify_1.injectable()\n    ], NullLogger);\n    return NullLogger;\n}());\nexports.NullLogger = NullLogger;\nvar ConsoleLogger = /** @class */ (function () {\n    function ConsoleLogger(logLevel, viewOptions) {\n        if (logLevel === void 0) { logLevel = LogLevel.log; }\n        if (viewOptions === void 0) { viewOptions = { baseDiv: '' }; }\n        this.logLevel = logLevel;\n        this.viewOptions = viewOptions;\n    }\n    ConsoleLogger.prototype.error = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= LogLevel.error)\n            try {\n                console.error.apply(thisArg, this.consoleArguments(thisArg, message, params));\n            }\n            catch (error) { }\n    };\n    ConsoleLogger.prototype.warn = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= LogLevel.warn)\n            try {\n                console.warn.apply(thisArg, this.consoleArguments(thisArg, message, params));\n            }\n            catch (error) { }\n    };\n    ConsoleLogger.prototype.info = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= LogLevel.info)\n            try {\n                console.info.apply(thisArg, this.consoleArguments(thisArg, message, params));\n            }\n            catch (error) { }\n    };\n    ConsoleLogger.prototype.log = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= LogLevel.log)\n            try {\n                console.log.apply(thisArg, this.consoleArguments(thisArg, message, params));\n            }\n            catch (error) { }\n    };\n    ConsoleLogger.prototype.consoleArguments = function (thisArg, message, params) {\n        var caller;\n        if (typeof thisArg === 'object')\n            caller = thisArg.constructor.name;\n        else\n            caller = thisArg;\n        var date = new Date();\n        return [date.toLocaleTimeString() + ' ' + this.viewOptions.baseDiv + ' ' + caller + ': ' + message].concat(params);\n    };\n    ConsoleLogger = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.LogLevel)),\n        __param(1, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __metadata(\"design:paramtypes\", [Number, Object])\n    ], ConsoleLogger);\n    return ConsoleLogger;\n}());\nexports.ConsoleLogger = ConsoleLogger;\n//# sourceMappingURL=logging.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/utils/logging.js\n// module id = 103\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_html.js\n// module id = 104\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 105\n// module chunks = 0","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-regexp.js\n// module id = 106\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 107\n// module chunks = 0","module.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 108\n// module chunks = 0","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_new-promise-capability.js\n// module id = 109\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopd.js\n// module id = 110\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn.js\n// module id = 111\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gops.js\n// module id = 112\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 113\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n  var C = global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function () { return this; }\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 114\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-at.js\n// module id = 115\n// module chunks = 0","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n  var id = +this;\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar listener = function (event) {\n  run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (require('./_cof')(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function (id) {\n      global.postMessage(id + '', '*');\n    };\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function (id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_task.js\n// module id = 116\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-absolute-index.js\n// module id = 117\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_validate-collection.js\n// module id = 118\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks-ext.js\n// module id = 119\n// module chunks = 0","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n  CSSRuleList: true, // TODO: Not spec compliant, should be false.\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true, // TODO: Not spec compliant, should be false.\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true, // TODO: Not spec compliant, should be false.\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n  if (proto) {\n    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n    Iterators[NAME] = ArrayValues;\n    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.dom.iterable.js\n// module id = 120\n// module chunks = 0","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 1.3.2\n * 2016-06-16 18:25:19\n *\n * By Eli Grey, http://eligrey.com\n * License: MIT\n *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t  doc = view.document\n\t\t  // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t  filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, force = type === force_saveable_type\n\t\t\t\t, object_url\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (force) {\n\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\tif (can_use_save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs_error();\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name, no_auto_bom) {\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name, no_auto_bom) {\n\t\t\tname = name || blob.name || \"download\";\n\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function(){};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t   typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n  module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\n  define(\"FileSaver.js\", function() {\n    return saveAs;\n  });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/file-saver/FileSaver.js\n// module id = 121\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar error_msgs_1 = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nvar LazyServiceIdentifer = (function () {\n    function LazyServiceIdentifer(cb) {\n        this._cb = cb;\n    }\n    LazyServiceIdentifer.prototype.unwrap = function () {\n        return this._cb();\n    };\n    return LazyServiceIdentifer;\n}());\nexports.LazyServiceIdentifer = LazyServiceIdentifer;\nfunction inject(serviceIdentifier) {\n    return function (target, targetKey, index) {\n        if (serviceIdentifier === undefined) {\n            throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));\n        }\n        var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);\n        if (typeof index === \"number\") {\n            decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n        }\n        else {\n            decorator_utils_1.tagProperty(target, targetKey, metadata);\n        }\n    };\n}\nexports.inject = inject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/inject.js\n// module id = 122\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar MetadataReader = (function () {\n    function MetadataReader() {\n    }\n    MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {\n        var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);\n        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);\n        return {\n            compilerGeneratedMetadata: compilerGeneratedMetadata,\n            userGeneratedMetadata: userGeneratedMetadata || {}\n        };\n    };\n    MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {\n        var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];\n        return userGeneratedMetadata;\n    };\n    return MetadataReader;\n}());\nexports.MetadataReader = MetadataReader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/metadata_reader.js\n// module id = 123\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar guid_1 = require(\"../utils/guid\");\nvar metadata_1 = require(\"./metadata\");\nvar queryable_string_1 = require(\"./queryable_string\");\nvar Target = (function () {\n    function Target(type, name, serviceIdentifier, namedOrTagged) {\n        this.guid = guid_1.guid();\n        this.type = type;\n        this.serviceIdentifier = serviceIdentifier;\n        this.name = new queryable_string_1.QueryableString(name || \"\");\n        this.metadata = new Array();\n        var metadataItem = null;\n        if (typeof namedOrTagged === \"string\") {\n            metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);\n        }\n        else if (namedOrTagged instanceof metadata_1.Metadata) {\n            metadataItem = namedOrTagged;\n        }\n        if (metadataItem !== null) {\n            this.metadata.push(metadataItem);\n        }\n    }\n    Target.prototype.hasTag = function (key) {\n        for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {\n            var m = _a[_i];\n            if (m.key === key) {\n                return true;\n            }\n        }\n        return false;\n    };\n    Target.prototype.isArray = function () {\n        return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);\n    };\n    Target.prototype.matchesArray = function (name) {\n        return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);\n    };\n    Target.prototype.isNamed = function () {\n        return this.hasTag(METADATA_KEY.NAMED_TAG);\n    };\n    Target.prototype.isTagged = function () {\n        return this.metadata.some(function (m) {\n            return (m.key !== METADATA_KEY.INJECT_TAG) &&\n                (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&\n                (m.key !== METADATA_KEY.NAME_TAG) &&\n                (m.key !== METADATA_KEY.UNMANAGED_TAG) &&\n                (m.key !== METADATA_KEY.NAMED_TAG);\n        });\n    };\n    Target.prototype.isOptional = function () {\n        return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);\n    };\n    Target.prototype.getNamedTag = function () {\n        if (this.isNamed()) {\n            return this.metadata.filter(function (m) { return m.key === METADATA_KEY.NAMED_TAG; })[0];\n        }\n        return null;\n    };\n    Target.prototype.getCustomTags = function () {\n        if (this.isTagged()) {\n            return this.metadata.filter(function (m) {\n                return (m.key !== METADATA_KEY.INJECT_TAG) &&\n                    (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&\n                    (m.key !== METADATA_KEY.NAME_TAG) &&\n                    (m.key !== METADATA_KEY.UNMANAGED_TAG) &&\n                    (m.key !== METADATA_KEY.NAMED_TAG);\n            });\n        }\n        return null;\n    };\n    Target.prototype.matchesNamedTag = function (name) {\n        return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);\n    };\n    Target.prototype.matchesTag = function (key) {\n        var _this = this;\n        return function (value) {\n            for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {\n                var m = _a[_i];\n                if (m.key === key && m.value === value) {\n                    return true;\n                }\n            }\n            return false;\n        };\n    };\n    return Target;\n}());\nexports.Target = Target;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/target.js\n// module id = 124\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingWhenOnSyntax = (function () {\n    function BindingWhenOnSyntax(binding) {\n        this._binding = binding;\n        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);\n    }\n    BindingWhenOnSyntax.prototype.when = function (constraint) {\n        return this._bindingWhenSyntax.when(constraint);\n    };\n    BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {\n        return this._bindingWhenSyntax.whenTargetNamed(name);\n    };\n    BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {\n        return this._bindingWhenSyntax.whenTargetIsDefault();\n    };\n    BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n    };\n    BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\n        return this._bindingWhenSyntax.whenInjectedInto(parent);\n    };\n    BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {\n        return this._bindingWhenSyntax.whenParentNamed(name);\n    };\n    BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenParentTagged(tag, value);\n    };\n    BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n    };\n    BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n    };\n    BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\n        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n    };\n    BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n    };\n    BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\n        return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n    };\n    BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n    };\n    BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n    };\n    BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n    };\n    BindingWhenOnSyntax.prototype.onActivation = function (handler) {\n        return this._bindingOnSyntax.onActivation(handler);\n    };\n    return BindingWhenOnSyntax;\n}());\nexports.BindingWhenOnSyntax = BindingWhenOnSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_when_on_syntax.js\n// module id = 125\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar traverseAncerstors = function (request, constraint) {\n    var parent = request.parentRequest;\n    if (parent !== null) {\n        return constraint(parent) ? true : traverseAncerstors(parent, constraint);\n    }\n    else {\n        return false;\n    }\n};\nexports.traverseAncerstors = traverseAncerstors;\nvar taggedConstraint = function (key) { return function (value) {\n    var constraint = function (request) {\n        return request !== null && request.target !== null && request.target.matchesTag(key)(value);\n    };\n    constraint.metaData = new metadata_1.Metadata(key, value);\n    return constraint;\n}; };\nexports.taggedConstraint = taggedConstraint;\nvar namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);\nexports.namedConstraint = namedConstraint;\nvar typeConstraint = function (type) { return function (request) {\n    var binding = null;\n    if (request !== null) {\n        binding = request.bindings[0];\n        if (typeof type === \"string\") {\n            var serviceIdentifier = binding.serviceIdentifier;\n            return serviceIdentifier === type;\n        }\n        else {\n            var constructor = request.bindings[0].implementationType;\n            return type === constructor;\n        }\n    }\n    return false;\n}; };\nexports.typeConstraint = typeConstraint;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/constraint_helpers.js\n// module id = 126\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nfunction isStackOverflowExeption(error) {\n    return (error instanceof RangeError ||\n        error.message === ERROR_MSGS.STACK_OVERFLOW);\n}\nexports.isStackOverflowExeption = isStackOverflowExeption;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/utils/exceptions.js\n// module id = 127\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction vnode(sel, data, children, text, elm) {\n    var key = data === undefined ? undefined : data.key;\n    return { sel: sel, data: data, children: children,\n        text: text, elm: elm, key: key };\n}\nexports.vnode = vnode;\nexports.default = vnode;\n//# sourceMappingURL=vnode.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom/vnode.js\n// module id = 128\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Slows down animations towards the begin and the end.\n *\n * @param x the value between 0 (start of animation) and 1 (end of\n *     animation) linearly interpolated in time.\n * @returns {number} the eased value between 0 and 1\n */\nfunction easeInOut(x) {\n    if (x < 0.5)\n        return x * x * 2;\n    else\n        return 1 - (1 - x) * (1 - x) * 2;\n}\nexports.easeInOut = easeInOut;\n//# sourceMappingURL=easing.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/animations/easing.js\n// module id = 129\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar smodel_factory_1 = require(\"../model/smodel-factory\");\nvar animation_frame_syncer_1 = require(\"../animations/animation-frame-syncer\");\nvar command_1 = require(\"./command\");\n/**\n * The implementation of the ICommandStack. Clients should not use this\n * class directly.\n *\n * The command stack holds the current model as the result of the current\n * promise. When a new command is executed/undone/redone, its execution is\n * chained using <code>Promise#then()</code> to the current Promise. This\n * way we can handle long running commands without blocking the current\n * thread.\n *\n * The command stack also does the special handling for special commands:\n *\n * System commands should be transparent to the user and as such be\n * automatically undone/redone with the next plain command. Additional care\n * must be taken that system commands that are executed after undo don't\n * break the correspondence between the topmost commands on the undo and\n * redo stacks.\n *\n * Hidden commands only tell the viewer to render a hidden model such that\n * its bounds can be extracted from the DOM and forwarded as separate actions.\n * Hidden commands should not leave any trace on the undo/redo/off stacks.\n *\n * Mergeable commands should be merged with their predecessor if possible,\n * such that e.g. multiple subsequent moves of the smae element can be undone\n * in one single step.\n */\nvar CommandStack = /** @class */ (function () {\n    function CommandStack(modelFactory, viewerProvider, logger, syncer, options) {\n        this.modelFactory = modelFactory;\n        this.viewerProvider = viewerProvider;\n        this.logger = logger;\n        this.syncer = syncer;\n        this.options = options;\n        this.undoStack = [];\n        this.redoStack = [];\n        /**\n         * System commands should be transparent to the user in undo/redo\n         * operations. When a system command is executed when the redo\n         * stack is not empty, it is pushed to offStack instead.\n         *\n         * On redo, all commands form this stack are undone such that the\n         * redo operation gets the exact same model as when it was executed\n         * first.\n         *\n         * On undo, all commands form this stack are undone as well as\n         * system ommands should be transparent to the user.\n         */\n        this.offStack = [];\n        this.currentPromise = Promise.resolve({\n            root: modelFactory.createRoot(smodel_factory_1.EMPTY_ROOT),\n            hiddenRoot: undefined,\n            popupRoot: undefined,\n            rootChanged: false,\n            hiddenRootChanged: false,\n            popupChanged: false\n        });\n    }\n    CommandStack.prototype.executeAll = function (commands) {\n        var _this = this;\n        commands.forEach(function (command) {\n            _this.logger.log(_this, 'Executing', command);\n            _this.handleCommand(command, command.execute, _this.mergeOrPush);\n        });\n        return this.thenUpdate();\n    };\n    CommandStack.prototype.execute = function (command) {\n        this.logger.log(this, 'Executing', command);\n        this.handleCommand(command, command.execute, this.mergeOrPush);\n        return this.thenUpdate();\n    };\n    CommandStack.prototype.undo = function () {\n        var _this = this;\n        this.undoOffStackSystemCommands();\n        this.undoPreceedingSystemCommands();\n        var command = this.undoStack.pop();\n        if (command !== undefined) {\n            this.logger.log(this, 'Undoing', command);\n            this.handleCommand(command, command.undo, function (command, context) {\n                _this.redoStack.push(command);\n            });\n        }\n        return this.thenUpdate();\n    };\n    CommandStack.prototype.redo = function () {\n        var _this = this;\n        this.undoOffStackSystemCommands();\n        var command = this.redoStack.pop();\n        if (command !== undefined) {\n            this.logger.log(this, 'Redoing', command);\n            this.handleCommand(command, command.redo, function (command, context) {\n                _this.pushToUndoStack(command);\n            });\n        }\n        this.redoFollowingSystemCommands();\n        return this.thenUpdate();\n    };\n    /**\n     * Chains the current promise with another Promise that performs the\n     * given operation on the given command.\n     *\n     * @param beforeResolve a function that is called directly before\n     * resolving the Promise to return the new model. Usually puts the\n     * command on the appropriate stack.\n     */\n    CommandStack.prototype.handleCommand = function (command, operation, beforeResolve) {\n        var _this = this;\n        this.currentPromise = this.currentPromise.then(function (state) {\n            var promise = new Promise(function (resolve, reject) {\n                var context = _this.createContext(state.root);\n                var newResult;\n                try {\n                    newResult = operation.call(command, context);\n                }\n                catch (error) {\n                    _this.logger.error(_this, \"Failed to execute command:\", error);\n                    newResult = state.root;\n                }\n                if (command instanceof command_1.HiddenCommand) {\n                    resolve(__assign({}, state, {\n                        hiddenRoot: newResult,\n                        hiddenRootChanged: true\n                    }));\n                }\n                else if (command instanceof command_1.PopupCommand) {\n                    resolve(__assign({}, state, {\n                        popupRoot: newResult,\n                        popupChanged: true\n                    }));\n                }\n                else if (newResult instanceof Promise) {\n                    newResult.then(function (newModel) {\n                        beforeResolve.call(_this, command, context);\n                        resolve(__assign({}, state, {\n                            root: newModel,\n                            rootChanged: true\n                        }));\n                    });\n                }\n                else {\n                    beforeResolve.call(_this, command, context);\n                    resolve(__assign({}, state, {\n                        root: newResult,\n                        rootChanged: true\n                    }));\n                }\n            });\n            return promise;\n        });\n    };\n    CommandStack.prototype.pushToUndoStack = function (command) {\n        this.undoStack.push(command);\n        if (this.options.undoHistoryLimit >= 0 && this.undoStack.length > this.options.undoHistoryLimit)\n            this.undoStack.splice(0, this.undoStack.length - this.options.undoHistoryLimit);\n    };\n    /**\n     * Notifies the Viewer to render the new model and/or the new hidden model\n     * and returns a Promise for the new model.\n     */\n    CommandStack.prototype.thenUpdate = function () {\n        var _this = this;\n        this.currentPromise = this.currentPromise.then(function (state) {\n            if (state.hiddenRootChanged && state.hiddenRoot !== undefined)\n                _this.updateHidden(state.hiddenRoot);\n            if (state.rootChanged)\n                _this.update(state.root);\n            if (state.popupChanged && state.popupRoot !== undefined)\n                _this.updatePopup(state.popupRoot);\n            return {\n                root: state.root,\n                hiddenRoot: undefined,\n                popupRoot: undefined,\n                rootChanged: false,\n                hiddenRootChanged: false,\n                popupChanged: false\n            };\n        });\n        return this.currentPromise.then(function (state) { return state.root; });\n    };\n    /**\n     * Notify the <code>Viewer</code> that the model has changed.\n     */\n    CommandStack.prototype.updatePopup = function (model) {\n        var _this = this;\n        if (this.viewer) {\n            this.viewer.updatePopup(model);\n            return;\n        }\n        this.viewerProvider().then(function (viewer) {\n            _this.viewer = viewer;\n            _this.updatePopup(model);\n        });\n    };\n    /**\n     * Notify the <code>Viewer</code> that the model has changed.\n     */\n    CommandStack.prototype.update = function (model) {\n        var _this = this;\n        if (this.viewer) {\n            this.viewer.update(model);\n            return;\n        }\n        this.viewerProvider().then(function (viewer) {\n            _this.viewer = viewer;\n            _this.update(model);\n        });\n    };\n    /**\n     * Notify the <code>Viewer</code> that the hidden model has changed.\n     */\n    CommandStack.prototype.updateHidden = function (model) {\n        var _this = this;\n        if (this.viewer) {\n            this.viewer.updateHidden(model);\n            return;\n        }\n        this.viewerProvider().then(function (viewer) {\n            _this.viewer = viewer;\n            _this.updateHidden(model);\n        });\n    };\n    /**\n     * Handling of commands after their execution.\n     *\n     * Hidden commands are not pushed to any stack.\n     *\n     * System commands are pushed to the <code>offStack</code> when the redo\n     * stack is not empty, allowing to undo the before a redo to keep the chain\n     * of commands consistent.\n     *\n     * Mergable commands are merged if possible.\n     */\n    CommandStack.prototype.mergeOrPush = function (command, context) {\n        var _this = this;\n        if (command instanceof command_1.HiddenCommand)\n            return;\n        if (command instanceof command_1.SystemCommand && this.redoStack.length > 0) {\n            this.offStack.push(command);\n        }\n        else {\n            this.offStack.forEach(function (command) { return _this.undoStack.push(command); });\n            this.offStack = [];\n            this.redoStack = [];\n            if (this.undoStack.length > 0) {\n                var lastCommand = this.undoStack[this.undoStack.length - 1];\n                if (lastCommand instanceof command_1.MergeableCommand && lastCommand.merge(command, context))\n                    return;\n            }\n            this.pushToUndoStack(command);\n        }\n    };\n    /**\n     * Reverts all system commands on the offStack.\n     */\n    CommandStack.prototype.undoOffStackSystemCommands = function () {\n        var command = this.offStack.pop();\n        while (command !== undefined) {\n            this.logger.log(this, 'Undoing off-stack', command);\n            this.handleCommand(command, command.undo, function () { });\n            command = this.offStack.pop();\n        }\n    };\n    /**\n     * System commands should be transparent to the user, so this method\n     * is called from <code>undo()</code> to revert all system commands\n     * at the top of the undoStack.\n     */\n    CommandStack.prototype.undoPreceedingSystemCommands = function () {\n        var _this = this;\n        var command = this.undoStack[this.undoStack.length - 1];\n        while (command !== undefined && command instanceof command_1.SystemCommand) {\n            this.undoStack.pop();\n            this.logger.log(this, 'Undoing', command);\n            this.handleCommand(command, command.undo, function (command, context) {\n                _this.redoStack.push(command);\n            });\n            command = this.undoStack[this.undoStack.length - 1];\n        }\n    };\n    /**\n     * System commands should be transparent to the user, so this method\n     * is called from <code>redo()</code> to re-execute all system commands\n     * at the top of the redoStack.\n     */\n    CommandStack.prototype.redoFollowingSystemCommands = function () {\n        var _this = this;\n        var command = this.redoStack[this.redoStack.length - 1];\n        while (command !== undefined && command instanceof command_1.SystemCommand) {\n            this.redoStack.pop();\n            this.logger.log(this, 'Redoing ', command);\n            this.handleCommand(command, command.redo, function (command, context) {\n                _this.pushToUndoStack(command);\n            });\n            command = this.redoStack[this.redoStack.length - 1];\n        }\n    };\n    /**\n     * Assembles the context object that is passed to the commands execution method.\n     */\n    CommandStack.prototype.createContext = function (currentModel) {\n        var context = {\n            root: currentModel,\n            modelChanged: this,\n            modelFactory: this.modelFactory,\n            duration: this.options.defaultDuration,\n            logger: this.logger,\n            syncer: this.syncer\n        };\n        return context;\n    };\n    CommandStack = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IModelFactory)),\n        __param(1, inversify_1.inject(types_1.TYPES.IViewerProvider)),\n        __param(2, inversify_1.inject(types_1.TYPES.ILogger)),\n        __param(3, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),\n        __param(4, inversify_1.inject(types_1.TYPES.CommandStackOptions)),\n        __metadata(\"design:paramtypes\", [Object, Function, Object, animation_frame_syncer_1.AnimationFrameSyncer, Object])\n    ], CommandStack);\n    return CommandStack;\n}());\nexports.CommandStack = CommandStack;\n//# sourceMappingURL=command-stack.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/commands/command-stack.js\n// module id = 130\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom_1 = require(\"snabbdom\");\n/**\n * An view that avoids calculation and patching of VNodes unless some model properties have changed.\n * Based on snabbdom's thunks.\n */\nvar ThunkView = /** @class */ (function () {\n    function ThunkView() {\n    }\n    ThunkView.prototype.render = function (model, context) {\n        var _this = this;\n        return snabbdom_1.h(this.selector(model), {\n            key: model.id,\n            hook: {\n                init: this.init.bind(this),\n                prepatch: this.prepatch.bind(this)\n            },\n            fn: function () { return _this.renderAndDecorate(model, context); },\n            args: this.watchedArgs(model),\n            thunk: true\n        });\n    };\n    ThunkView.prototype.renderAndDecorate = function (model, context) {\n        var vnode = this.doRender(model, context);\n        context.decorate(vnode, model);\n        return vnode;\n    };\n    ThunkView.prototype.copyToThunk = function (vnode, thunk) {\n        thunk.elm = vnode.elm;\n        vnode.data.fn = thunk.data.fn;\n        vnode.data.args = thunk.data.args;\n        thunk.data = vnode.data;\n        thunk.children = vnode.children;\n        thunk.text = vnode.text;\n        thunk.elm = vnode.elm;\n    };\n    ThunkView.prototype.init = function (thunk) {\n        var cur = thunk.data;\n        var vnode = cur.fn.apply(undefined, cur.args);\n        this.copyToThunk(vnode, thunk);\n    };\n    ThunkView.prototype.prepatch = function (oldVnode, thunk) {\n        var old = oldVnode.data, cur = thunk.data;\n        if (!this.equals(old.args, cur.args))\n            this.copyToThunk(cur.fn.apply(undefined, cur.args), thunk);\n        else\n            this.copyToThunk(oldVnode, thunk);\n    };\n    ThunkView.prototype.equals = function (oldArg, newArg) {\n        if (Array.isArray(oldArg) && Array.isArray(newArg)) {\n            if (oldArg.length !== newArg.length)\n                return false;\n            for (var i = 0; i < newArg.length; ++i) {\n                if (!this.equals(oldArg[i], newArg[i]))\n                    return false;\n            }\n        }\n        else if (typeof oldArg === 'object' && typeof newArg === 'object') {\n            if (Object.keys(oldArg).length !== Object.keys(newArg).length)\n                return false;\n            for (var key in oldArg) {\n                if (key !== 'parent' && key !== 'root' && (!(key in newArg) || !this.equals(oldArg[key], newArg[key])))\n                    return false;\n            }\n        }\n        else if (oldArg !== newArg) {\n            return false;\n        }\n        return true;\n    };\n    return ThunkView;\n}());\nexports.ThunkView = ThunkView;\nfunction isThunk(vnode) {\n    return 'thunk' in vnode;\n}\nexports.isThunk = isThunk;\n//# sourceMappingURL=thunk-view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/thunk-view.js\n// module id = 131\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar inversify_1 = require(\"inversify\");\nvar smodel_factory_1 = require(\"../model/smodel-factory\");\nvar registry_1 = require(\"../../utils/registry\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar JSX = { createElement: snabbdom.svg };\n/**\n * Allows to look up the IView for a given SModelElement based on its type.\n */\nvar ViewRegistry = /** @class */ (function (_super) {\n    __extends(ViewRegistry, _super);\n    function ViewRegistry() {\n        var _this = _super.call(this) || this;\n        _this.registerDefaults();\n        return _this;\n    }\n    ViewRegistry.prototype.registerDefaults = function () {\n        this.register(smodel_factory_1.EMPTY_ROOT.type, EmptyView);\n    };\n    ViewRegistry.prototype.missing = function (key, element) {\n        return new MissingView();\n    };\n    ViewRegistry = __decorate([\n        inversify_1.injectable(),\n        __metadata(\"design:paramtypes\", [])\n    ], ViewRegistry);\n    return ViewRegistry;\n}(registry_1.ProviderRegistry));\nexports.ViewRegistry = ViewRegistry;\nvar EmptyView = /** @class */ (function () {\n    function EmptyView() {\n    }\n    EmptyView.prototype.render = function (model, context) {\n        return JSX.createElement(\"svg\", { \"class-sprotty-empty\": true });\n    };\n    return EmptyView;\n}());\nexports.EmptyView = EmptyView;\nvar MissingView = /** @class */ (function () {\n    function MissingView() {\n    }\n    MissingView.prototype.render = function (model, context) {\n        var position = model.position || geometry_1.ORIGIN_POINT;\n        return JSX.createElement(\"text\", { \"class-sprotty-missing\": true, x: position.x, y: position.y },\n            \"?\",\n            model.id,\n            \"?\");\n    };\n    return MissingView;\n}());\nexports.MissingView = MissingView;\n//# sourceMappingURL=view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/view.js\n// module id = 132\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar animation_frame_syncer_1 = require(\"../animations/animation-frame-syncer\");\n/**\n * Updating the view is rather expensive, and it doesn't make sense to calculate\n * more then one update per animation (rendering) frame. So this class batches\n * all incoming model changes and only renders the last one when the next animation\n * frame comes.\n */\nvar ViewerCache = /** @class */ (function () {\n    function ViewerCache(delegate, syncer) {\n        this.delegate = delegate;\n        this.syncer = syncer;\n    }\n    ViewerCache.prototype.isCacheEmpty = function () {\n        return this.cachedModelRoot === undefined && this.cachedHiddenModelRoot === undefined &&\n            this.cachedPopup === undefined;\n    };\n    ViewerCache.prototype.updatePopup = function (model) {\n        var isCacheEmpty = this.isCacheEmpty();\n        this.cachedPopup = model;\n        if (isCacheEmpty)\n            this.scheduleUpdate();\n    };\n    ViewerCache.prototype.update = function (model) {\n        var isCacheEmpty = this.isCacheEmpty();\n        this.cachedModelRoot = model;\n        if (isCacheEmpty)\n            this.scheduleUpdate();\n    };\n    ViewerCache.prototype.updateHidden = function (hiddenModel) {\n        var isCacheEmpty = this.isCacheEmpty();\n        this.cachedHiddenModelRoot = hiddenModel;\n        if (isCacheEmpty)\n            this.scheduleUpdate();\n    };\n    ViewerCache.prototype.scheduleUpdate = function () {\n        var _this = this;\n        this.syncer.onEndOfNextFrame(function () {\n            if (_this.cachedHiddenModelRoot) {\n                var nextHiddenModelRoot = _this.cachedHiddenModelRoot;\n                _this.delegate.updateHidden(nextHiddenModelRoot);\n                _this.cachedHiddenModelRoot = undefined;\n            }\n            if (_this.cachedModelRoot) {\n                var nextModelRoot = _this.cachedModelRoot;\n                _this.delegate.update(nextModelRoot);\n                _this.cachedModelRoot = undefined;\n            }\n            if (_this.cachedPopup) {\n                var nextModelRoot = _this.cachedPopup;\n                _this.delegate.updatePopup(nextModelRoot);\n                _this.cachedPopup = undefined;\n            }\n        });\n    };\n    ViewerCache = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IViewer)), __param(0, inversify_1.named('delegate')),\n        __param(1, inversify_1.inject(types_1.TYPES.AnimationFrameSyncer)),\n        __metadata(\"design:paramtypes\", [Object, animation_frame_syncer_1.AnimationFrameSyncer])\n    ], ViewerCache);\n    return ViewerCache;\n}());\nexports.ViewerCache = ViewerCache;\n//# sourceMappingURL=viewer-cache.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/viewer-cache.js\n// module id = 133\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar snabbdom_1 = require(\"snabbdom\");\nvar props_1 = require(\"snabbdom/modules/props\");\nvar attributes_1 = require(\"snabbdom/modules/attributes\");\nvar style_1 = require(\"snabbdom/modules/style\");\nvar eventlisteners_1 = require(\"snabbdom/modules/eventlisteners\");\nvar class_1 = require(\"snabbdom/modules/class\");\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar initialize_canvas_1 = require(\"../features/initialize-canvas\");\nvar vnode_utils_1 = require(\"./vnode-utils\");\nvar thunk_view_1 = require(\"./thunk-view\");\nvar smodel_factory_1 = require(\"../model/smodel-factory\");\nvar JSX = { createElement: snabbdom.html }; // must be html here, as we're creating a div\nvar ModelRenderer = /** @class */ (function () {\n    function ModelRenderer(viewRegistry, decorators) {\n        this.viewRegistry = viewRegistry;\n        this.decorators = decorators;\n    }\n    ModelRenderer.prototype.decorate = function (vnode, element) {\n        if (thunk_view_1.isThunk(vnode))\n            return vnode;\n        return this.decorators.reduce(function (n, decorator) { return decorator.decorate(n, element); }, vnode);\n    };\n    ModelRenderer.prototype.renderElement = function (element) {\n        var vNode = this.viewRegistry.get(element.type, element).render(element, this);\n        return this.decorate(vNode, element);\n    };\n    ModelRenderer.prototype.renderChildren = function (element) {\n        var _this = this;\n        return element.children.map(function (child) { return _this.renderElement(child); });\n    };\n    ModelRenderer.prototype.postUpdate = function () {\n        this.decorators.forEach(function (decorator) { return decorator.postUpdate(); });\n    };\n    return ModelRenderer;\n}());\nexports.ModelRenderer = ModelRenderer;\n/**\n * The component that turns the model into an SVG DOM.\n * Uses a VDOM based on snabbdom.js for performance.\n */\nvar Viewer = /** @class */ (function () {\n    function Viewer(modelRendererFactory, decorators, hiddenDecorators, popupDecorators, options, logger, actiondispatcher) {\n        var _this = this;\n        this.decorators = decorators;\n        this.hiddenDecorators = hiddenDecorators;\n        this.popupDecorators = popupDecorators;\n        this.options = options;\n        this.logger = logger;\n        this.actiondispatcher = actiondispatcher;\n        this.onWindowResize = function (vdom) {\n            var baseDiv = document.getElementById(_this.options.baseDiv);\n            if (baseDiv !== null) {\n                var newBounds = _this.getBoundsInPage(baseDiv);\n                _this.actiondispatcher.dispatch(new initialize_canvas_1.InitializeCanvasBoundsAction(newBounds));\n            }\n        };\n        this.patcher = this.createPatcher();\n        this.renderer = modelRendererFactory(decorators);\n        this.hiddenRenderer = modelRendererFactory(hiddenDecorators);\n        this.popupRenderer = modelRendererFactory(popupDecorators);\n    }\n    Viewer.prototype.createModules = function () {\n        return [\n            props_1.propsModule,\n            attributes_1.attributesModule,\n            class_1.classModule,\n            style_1.styleModule,\n            eventlisteners_1.eventListenersModule\n        ];\n    };\n    Viewer.prototype.createPatcher = function () {\n        return snabbdom_1.init(this.createModules());\n    };\n    Viewer.prototype.getBoundsInPage = function (element) {\n        var bounds = element.getBoundingClientRect();\n        var scroll = typeof window !== 'undefined' ? { x: window.scrollX, y: window.scrollY } : geometry_1.ORIGIN_POINT;\n        return {\n            x: bounds.left + scroll.x,\n            y: bounds.top + scroll.y,\n            width: bounds.width,\n            height: bounds.height\n        };\n    };\n    Viewer.prototype.update = function (model) {\n        var _this = this;\n        this.logger.log(this, 'rendering', model);\n        var newVDOM = JSX.createElement(\"div\", { id: this.options.baseDiv }, this.renderer.renderElement(model));\n        if (this.lastVDOM !== undefined) {\n            var hadFocus = this.hasFocus();\n            vnode_utils_1.copyClassesFromVNode(this.lastVDOM, newVDOM);\n            this.lastVDOM = this.patcher.call(this, this.lastVDOM, newVDOM);\n            this.restoreFocus(hadFocus);\n        }\n        else if (typeof document !== 'undefined') {\n            var placeholder = document.getElementById(this.options.baseDiv);\n            if (placeholder !== null) {\n                if (typeof window !== 'undefined') {\n                    window.addEventListener('resize', function () {\n                        _this.onWindowResize(newVDOM);\n                    });\n                }\n                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);\n                vnode_utils_1.setClass(newVDOM, this.options.baseClass, true);\n                this.lastVDOM = this.patcher.call(this, placeholder, newVDOM);\n            }\n            else {\n                this.logger.error(this, 'element not in DOM:', this.options.baseDiv);\n            }\n        }\n        this.renderer.postUpdate();\n    };\n    Viewer.prototype.hasFocus = function () {\n        if (typeof document !== 'undefined' && document.activeElement && this.lastVDOM.children && this.lastVDOM.children.length > 0) {\n            var lastRootVNode = this.lastVDOM.children[0];\n            if (typeof lastRootVNode === 'object') {\n                var lastElement = lastRootVNode.elm;\n                return document.activeElement === lastElement;\n            }\n        }\n        return false;\n    };\n    Viewer.prototype.restoreFocus = function (focus) {\n        if (focus && this.lastVDOM.children && this.lastVDOM.children.length > 0) {\n            var lastRootVNode = this.lastVDOM.children[0];\n            if (typeof lastRootVNode === 'object') {\n                var lastElement = lastRootVNode.elm;\n                if (lastElement && typeof lastElement.focus === 'function')\n                    lastElement.focus();\n            }\n        }\n    };\n    Viewer.prototype.updateHidden = function (hiddenModel) {\n        this.logger.log(this, 'rendering hidden');\n        var newVDOM;\n        if (hiddenModel.type === smodel_factory_1.EMPTY_ROOT.type) {\n            newVDOM = JSX.createElement(\"div\", { id: this.options.hiddenDiv });\n        }\n        else {\n            var hiddenVNode = this.hiddenRenderer.renderElement(hiddenModel);\n            vnode_utils_1.setAttr(hiddenVNode, 'opacity', 0);\n            newVDOM = JSX.createElement(\"div\", { id: this.options.hiddenDiv }, hiddenVNode);\n        }\n        if (this.lastHiddenVDOM !== undefined) {\n            vnode_utils_1.copyClassesFromVNode(this.lastHiddenVDOM, newVDOM);\n            this.lastHiddenVDOM = this.patcher.call(this, this.lastHiddenVDOM, newVDOM);\n        }\n        else {\n            var placeholder = document.getElementById(this.options.hiddenDiv);\n            if (placeholder === null) {\n                placeholder = document.createElement(\"div\");\n                document.body.appendChild(placeholder);\n            }\n            else {\n                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);\n            }\n            vnode_utils_1.setClass(newVDOM, this.options.baseClass, true);\n            vnode_utils_1.setClass(newVDOM, this.options.hiddenClass, true);\n            this.lastHiddenVDOM = this.patcher.call(this, placeholder, newVDOM);\n        }\n        this.hiddenRenderer.postUpdate();\n    };\n    Viewer.prototype.updatePopup = function (model) {\n        this.logger.log(this, 'rendering popup', model);\n        var popupClosed = model.type === smodel_factory_1.EMPTY_ROOT.type;\n        var newVDOM;\n        if (popupClosed) {\n            newVDOM = JSX.createElement(\"div\", { id: this.options.popupDiv });\n        }\n        else {\n            var position = model.canvasBounds;\n            var inlineStyle = {\n                top: position.y + 'px',\n                left: position.x + 'px'\n            };\n            newVDOM = JSX.createElement(\"div\", { id: this.options.popupDiv, style: inlineStyle }, this.popupRenderer.renderElement(model));\n        }\n        if (this.lastPopupVDOM !== undefined) {\n            vnode_utils_1.copyClassesFromVNode(this.lastPopupVDOM, newVDOM);\n            vnode_utils_1.setClass(newVDOM, this.options.popupClosedClass, popupClosed);\n            this.lastPopupVDOM = this.patcher.call(this, this.lastPopupVDOM, newVDOM);\n        }\n        else if (typeof document !== 'undefined') {\n            var placeholder = document.getElementById(this.options.popupDiv);\n            if (placeholder === null) {\n                placeholder = document.createElement(\"div\");\n                document.body.appendChild(placeholder);\n            }\n            else {\n                vnode_utils_1.copyClassesFromElement(placeholder, newVDOM);\n            }\n            vnode_utils_1.setClass(newVDOM, this.options.popupClass, true);\n            vnode_utils_1.setClass(newVDOM, this.options.popupClosedClass, popupClosed);\n            this.lastPopupVDOM = this.patcher.call(this, placeholder, newVDOM);\n        }\n        this.popupRenderer.postUpdate();\n    };\n    Viewer = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ModelRendererFactory)),\n        __param(1, inversify_1.multiInject(types_1.TYPES.IVNodeDecorator)), __param(1, inversify_1.optional()),\n        __param(2, inversify_1.multiInject(types_1.TYPES.HiddenVNodeDecorator)), __param(2, inversify_1.optional()),\n        __param(3, inversify_1.multiInject(types_1.TYPES.PopupVNodeDecorator)), __param(3, inversify_1.optional()),\n        __param(4, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __param(5, inversify_1.inject(types_1.TYPES.ILogger)),\n        __param(6, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __metadata(\"design:paramtypes\", [Function, Array, Array, Array, Object, Object, Object])\n    ], Viewer);\n    return Viewer;\n}());\nexports.Viewer = Viewer;\n//# sourceMappingURL=viewer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/viewer.js\n// module id = 134\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar vnode_utils_1 = require(\"./vnode-utils\");\nvar FocusFixDecorator = /** @class */ (function () {\n    function FocusFixDecorator() {\n    }\n    FocusFixDecorator_1 = FocusFixDecorator;\n    FocusFixDecorator.prototype.decorate = function (vnode, element) {\n        if (vnode.sel && vnode.sel.startsWith('svg'))\n            // allows to set focus in Firefox\n            vnode_utils_1.setAttr(vnode, 'tabindex', ++FocusFixDecorator_1.tabIndex);\n        return vnode;\n    };\n    FocusFixDecorator.prototype.postUpdate = function () {\n    };\n    FocusFixDecorator.tabIndex = 1000;\n    FocusFixDecorator = FocusFixDecorator_1 = __decorate([\n        inversify_1.injectable()\n    ], FocusFixDecorator);\n    return FocusFixDecorator;\n    var FocusFixDecorator_1;\n}());\nexports.FocusFixDecorator = FocusFixDecorator;\n//# sourceMappingURL=vnode-decorators.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/vnode-decorators.js\n// module id = 135\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar abstract_layout_1 = require(\"./abstract-layout\");\n/**\n * Layouts children of a container in horizontal (left->right) direction.\n */\nvar HBoxLayouter = /** @class */ (function (_super) {\n    __extends(HBoxLayouter, _super);\n    function HBoxLayouter() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    HBoxLayouter.prototype.getChildrenSize = function (container, containerOptions, layouter) {\n        var maxWidth = 0;\n        var maxHeight = -1;\n        var isFirst = true;\n        container.children.forEach(function (child) {\n            var bounds = layouter.getBoundsData(child).bounds;\n            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {\n                if (isFirst)\n                    isFirst = false;\n                else\n                    maxWidth += containerOptions.hGap;\n                maxWidth += bounds.width;\n                maxHeight = Math.max(maxHeight, bounds.height);\n            }\n        });\n        return {\n            width: maxWidth,\n            height: maxHeight\n        };\n    };\n    HBoxLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {\n        var dy = this.getDy(childOptions.vAlign, bounds, maxHeight);\n        boundsData.bounds = {\n            x: currentOffset.x + child.bounds.x - bounds.x,\n            y: containerOptions.paddingTop + child.bounds.y - bounds.y + dy,\n            width: bounds.width,\n            height: bounds.height\n        };\n        boundsData.boundsChanged = true;\n        return {\n            x: currentOffset.x + bounds.width + containerOptions.hGap,\n            y: currentOffset.y\n        };\n    };\n    HBoxLayouter.prototype.getDefaultLayoutOptions = function () {\n        return {\n            resizeContainer: true,\n            paddingTop: 5,\n            paddingBottom: 5,\n            paddingLeft: 5,\n            paddingRight: 5,\n            paddingFactor: 1,\n            hGap: 1,\n            vAlign: 'center'\n        };\n    };\n    HBoxLayouter.prototype.spread = function (a, b) {\n        return __assign({}, a, b);\n    };\n    HBoxLayouter.KIND = 'hbox';\n    return HBoxLayouter;\n}(abstract_layout_1.AbstractLayout));\nexports.HBoxLayouter = HBoxLayouter;\n//# sourceMappingURL=hbox-layout.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/hbox-layout.js\n// module id = 136\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar abstract_layout_1 = require(\"./abstract-layout\");\nvar StackLayouter = /** @class */ (function (_super) {\n    __extends(StackLayouter, _super);\n    function StackLayouter() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    StackLayouter.prototype.getChildrenSize = function (container, options, layouter) {\n        var maxWidth = -1;\n        var maxHeight = -1;\n        container.children.forEach(function (child) {\n            var bounds = layouter.getBoundsData(child).bounds;\n            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {\n                maxWidth = Math.max(maxWidth, bounds.width);\n                maxHeight = Math.max(maxHeight, bounds.height);\n            }\n        });\n        return {\n            width: maxWidth,\n            height: maxHeight\n        };\n    };\n    StackLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {\n        var dx = this.getDx(childOptions.hAlign, bounds, maxWidth);\n        var dy = this.getDy(childOptions.vAlign, bounds, maxHeight);\n        boundsData.bounds = {\n            x: containerOptions.paddingLeft + child.bounds.x - bounds.x + dx,\n            y: containerOptions.paddingTop + child.bounds.y - bounds.y + dy,\n            width: bounds.width,\n            height: bounds.height\n        };\n        boundsData.boundsChanged = true;\n        return currentOffset;\n    };\n    StackLayouter.prototype.getDefaultLayoutOptions = function () {\n        return {\n            resizeContainer: true,\n            paddingTop: 5,\n            paddingBottom: 5,\n            paddingLeft: 5,\n            paddingRight: 5,\n            paddingFactor: 1,\n            hAlign: 'center',\n            vAlign: 'center'\n        };\n    };\n    StackLayouter.prototype.spread = function (a, b) {\n        return __assign({}, a, b);\n    };\n    StackLayouter.KIND = 'stack';\n    return StackLayouter;\n}(abstract_layout_1.AbstractLayout));\nexports.StackLayouter = StackLayouter;\n//# sourceMappingURL=stack-layout.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/stack-layout.js\n// module id = 137\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar geometry_1 = require(\"../../utils/geometry\");\nvar abstract_layout_1 = require(\"./abstract-layout\");\n/**\n * Layouts children of a container in vertical (top->bottom) direction.\n */\nvar VBoxLayouter = /** @class */ (function (_super) {\n    __extends(VBoxLayouter, _super);\n    function VBoxLayouter() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    VBoxLayouter.prototype.getChildrenSize = function (container, containerOptions, layouter) {\n        var maxWidth = -1;\n        var maxHeight = 0;\n        var isFirst = true;\n        container.children.forEach(function (child) {\n            var bounds = layouter.getBoundsData(child).bounds;\n            if (bounds !== undefined && geometry_1.isValidDimension(bounds)) {\n                maxHeight += bounds.height;\n                if (isFirst)\n                    isFirst = false;\n                else\n                    maxHeight += containerOptions.vGap;\n                maxWidth = Math.max(maxWidth, bounds.width);\n            }\n        });\n        return {\n            width: maxWidth,\n            height: maxHeight\n        };\n    };\n    VBoxLayouter.prototype.layoutChild = function (child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight) {\n        var dx = this.getDx(childOptions.hAlign, bounds, maxWidth);\n        boundsData.bounds = {\n            x: containerOptions.paddingLeft + child.bounds.x - bounds.x + dx,\n            y: currentOffset.y + child.bounds.y - bounds.y,\n            width: bounds.width,\n            height: bounds.height\n        };\n        boundsData.boundsChanged = true;\n        return {\n            x: currentOffset.x,\n            y: currentOffset.y + bounds.height + containerOptions.vGap\n        };\n    };\n    VBoxLayouter.prototype.getDefaultLayoutOptions = function () {\n        return {\n            resizeContainer: true,\n            paddingTop: 5,\n            paddingBottom: 5,\n            paddingLeft: 5,\n            paddingRight: 5,\n            paddingFactor: 1,\n            vGap: 1,\n            hAlign: 'center'\n        };\n    };\n    VBoxLayouter.prototype.spread = function (a, b) {\n        return __assign({}, a, b);\n    };\n    VBoxLayouter.KIND = 'vbox';\n    return VBoxLayouter;\n}(abstract_layout_1.AbstractLayout));\nexports.VBoxLayouter = VBoxLayouter;\n//# sourceMappingURL=vbox-layout.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/vbox-layout.js\n// module id = 138\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar command_1 = require(\"../../base/commands/command\");\nvar model_1 = require(\"../select/model\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar key_tool_1 = require(\"../../base/views/key-tool\");\nvar browser_1 = require(\"../../utils/browser\");\nvar model_2 = require(\"./model\");\nvar inversify_1 = require(\"inversify\");\nvar svg_exporter_1 = require(\"./svg-exporter\");\nvar smodel_factory_1 = require(\"../../base/model/smodel-factory\");\nvar model_3 = require(\"../viewport/model\");\nvar model_4 = require(\"../hover/model\");\nvar types_1 = require(\"../../base/types\");\nvar ExportSvgKeyListener = /** @class */ (function (_super) {\n    __extends(ExportSvgKeyListener, _super);\n    function ExportSvgKeyListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ExportSvgKeyListener.prototype.keyDown = function (element, event) {\n        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 69)\n            return [new RequestExportSvgAction()];\n        else\n            return [];\n    };\n    ExportSvgKeyListener = __decorate([\n        inversify_1.injectable()\n    ], ExportSvgKeyListener);\n    return ExportSvgKeyListener;\n}(key_tool_1.KeyListener));\nexports.ExportSvgKeyListener = ExportSvgKeyListener;\nvar RequestExportSvgAction = /** @class */ (function () {\n    function RequestExportSvgAction() {\n        this.kind = ExportSvgCommand.KIND;\n    }\n    return RequestExportSvgAction;\n}());\nexports.RequestExportSvgAction = RequestExportSvgAction;\nvar ExportSvgCommand = /** @class */ (function (_super) {\n    __extends(ExportSvgCommand, _super);\n    function ExportSvgCommand() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ExportSvgCommand.prototype.execute = function (context) {\n        if (model_2.isExportable(context.root)) {\n            var root = context.modelFactory.createRoot(context.modelFactory.createSchema(context.root));\n            if (model_2.isExportable(root)) {\n                root.export = true;\n                if (model_3.isViewport(root)) {\n                    root.zoom = 1;\n                    root.scroll = {\n                        x: 0,\n                        y: 0\n                    };\n                }\n                root.index.all().forEach(function (element) {\n                    if (model_1.isSelectable(element) && element.selected)\n                        element.selected = false;\n                    if (model_4.isHoverable(element) && element.hoverFeedback)\n                        element.hoverFeedback = false;\n                });\n                return root;\n            }\n        }\n        return context.modelFactory.createRoot(smodel_factory_1.EMPTY_ROOT);\n    };\n    ExportSvgCommand.KIND = 'requestExportSvg';\n    return ExportSvgCommand;\n}(command_1.HiddenCommand));\nexports.ExportSvgCommand = ExportSvgCommand;\nvar ExportSvgDecorator = /** @class */ (function () {\n    function ExportSvgDecorator(svgExporter) {\n        this.svgExporter = svgExporter;\n    }\n    ExportSvgDecorator.prototype.decorate = function (vnode, element) {\n        if (element instanceof smodel_1.SModelRoot)\n            this.root = element;\n        return vnode;\n    };\n    ExportSvgDecorator.prototype.postUpdate = function () {\n        if (this.root && model_2.isExportable(this.root) && this.root.export)\n            this.svgExporter.export(this.root);\n    };\n    ExportSvgDecorator = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.SvgExporter)),\n        __metadata(\"design:paramtypes\", [svg_exporter_1.SvgExporter])\n    ], ExportSvgDecorator);\n    return ExportSvgDecorator;\n}());\nexports.ExportSvgDecorator = ExportSvgDecorator;\n//# sourceMappingURL=export.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/export/export.js\n// module id = 139\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.openFeature = Symbol('openFeature');\nfunction isOpenable(element) {\n    return element.hasFeature(exports.openFeature);\n}\nexports.isOpenable = isOpenable;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/open/model.js\n// module id = 140\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar browser_1 = require(\"../../utils/browser\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar command_1 = require(\"../../base/commands/command\");\nvar sgraph_1 = require(\"../../graph/sgraph\");\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar key_tool_1 = require(\"../../base/views/key-tool\");\nvar vnode_utils_1 = require(\"../../base/views/vnode-utils\");\nvar model_1 = require(\"./model\");\nvar button_handler_1 = require(\"../button/button-handler\");\nvar inversify_1 = require(\"inversify\");\nvar model_2 = require(\"../button/model\");\n/**\n * Triggered when the user changes the selection, e.g. by clicking on a selectable element. The resulting\n * SelectCommand changes the `selected` state accordingly, so the elements can be rendered differently.\n * This action is also forwarded to the diagram server, if present, so it may react on the selection change.\n * Furthermore, the server can send such an action to the client in order to change the selection programmatically.\n */\nvar SelectAction = /** @class */ (function () {\n    function SelectAction(selectedElementsIDs, deselectedElementsIDs) {\n        if (selectedElementsIDs === void 0) { selectedElementsIDs = []; }\n        if (deselectedElementsIDs === void 0) { deselectedElementsIDs = []; }\n        this.selectedElementsIDs = selectedElementsIDs;\n        this.deselectedElementsIDs = deselectedElementsIDs;\n        this.kind = SelectCommand.KIND;\n    }\n    return SelectAction;\n}());\nexports.SelectAction = SelectAction;\n/**\n * Programmatic action for selecting or deselecting all elements.\n */\nvar SelectAllAction = /** @class */ (function () {\n    /**\n     * If `select` is true, all elements are selected, othewise they are deselected.\n     */\n    function SelectAllAction(select) {\n        if (select === void 0) { select = true; }\n        this.select = select;\n        this.kind = SelectAllCommand.KIND;\n    }\n    return SelectAllAction;\n}());\nexports.SelectAllAction = SelectAllAction;\nvar SelectCommand = /** @class */ (function (_super) {\n    __extends(SelectCommand, _super);\n    function SelectCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        _this.selected = [];\n        _this.deselected = [];\n        return _this;\n    }\n    SelectCommand.prototype.execute = function (context) {\n        var _this = this;\n        var selectedNodeIds = [];\n        var model = context.root;\n        this.action.selectedElementsIDs.forEach(function (id) {\n            var element = model.index.getById(id);\n            if (element instanceof smodel_1.SChildElement && model_1.isSelectable(element)) {\n                _this.selected.push({\n                    element: element,\n                    index: element.parent.children.indexOf(element)\n                });\n                if (element instanceof sgraph_1.SNode)\n                    selectedNodeIds.push(id);\n            }\n        });\n        if (selectedNodeIds.length > 0) {\n            var connectedEdges_1 = [];\n            model.index.all().forEach(function (element) {\n                if (element instanceof sgraph_1.SEdge\n                    && (selectedNodeIds.indexOf(element.sourceId) >= 0\n                        || selectedNodeIds.indexOf(element.targetId) >= 0)) {\n                    connectedEdges_1.push({\n                        element: element,\n                        index: element.parent.children.indexOf(element)\n                    });\n                }\n            });\n            this.selected = connectedEdges_1.concat(this.selected);\n        }\n        this.action.deselectedElementsIDs.forEach(function (id) {\n            var element = model.index.getById(id);\n            if (element instanceof smodel_1.SChildElement && model_1.isSelectable(element)) {\n                _this.deselected.push({\n                    element: element,\n                    index: element.parent.children.indexOf(element)\n                });\n            }\n        });\n        return this.redo(context);\n    };\n    SelectCommand.prototype.undo = function (context) {\n        for (var i = this.selected.length - 1; i >= 0; --i) {\n            var selection = this.selected[i];\n            var element = selection.element;\n            if (model_1.isSelectable(element))\n                element.selected = false;\n            element.parent.move(element, selection.index);\n        }\n        this.deselected.reverse().forEach(function (selection) {\n            if (model_1.isSelectable(selection.element))\n                selection.element.selected = true;\n        });\n        return context.root;\n    };\n    SelectCommand.prototype.redo = function (context) {\n        for (var i = 0; i < this.selected.length; ++i) {\n            var selection = this.selected[i];\n            var element = selection.element;\n            var childrenLength = element.parent.children.length;\n            element.parent.move(element, childrenLength - 1);\n        }\n        this.deselected.forEach(function (selection) {\n            if (model_1.isSelectable(selection.element))\n                selection.element.selected = false;\n        });\n        this.selected.forEach(function (selection) {\n            if (model_1.isSelectable(selection.element))\n                selection.element.selected = true;\n        });\n        return context.root;\n    };\n    SelectCommand.KIND = 'elementSelected';\n    return SelectCommand;\n}(command_1.Command));\nexports.SelectCommand = SelectCommand;\nvar SelectAllCommand = /** @class */ (function (_super) {\n    __extends(SelectAllCommand, _super);\n    function SelectAllCommand(action) {\n        var _this = _super.call(this) || this;\n        _this.action = action;\n        _this.previousSelection = {};\n        return _this;\n    }\n    SelectAllCommand.prototype.execute = function (context) {\n        this.selectAll(context.root, this.action.select);\n        return context.root;\n    };\n    SelectAllCommand.prototype.selectAll = function (element, newState) {\n        if (model_1.isSelectable(element)) {\n            this.previousSelection[element.id] = element.selected;\n            element.selected = newState;\n        }\n        for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n            var child = _a[_i];\n            this.selectAll(child, newState);\n        }\n    };\n    SelectAllCommand.prototype.undo = function (context) {\n        var index = context.root.index;\n        for (var id in this.previousSelection) {\n            var element = index.getById(id);\n            if (element !== undefined && model_1.isSelectable(element))\n                element.selected = this.previousSelection[id];\n        }\n        return context.root;\n    };\n    SelectAllCommand.prototype.redo = function (context) {\n        this.selectAll(context.root, this.action.select);\n        return context.root;\n    };\n    SelectAllCommand.KIND = 'allSelected';\n    return SelectAllCommand;\n}(command_1.Command));\nexports.SelectAllCommand = SelectAllCommand;\nvar SelectMouseListener = /** @class */ (function (_super) {\n    __extends(SelectMouseListener, _super);\n    function SelectMouseListener(buttonHandlerRegistry) {\n        var _this = _super.call(this) || this;\n        _this.buttonHandlerRegistry = buttonHandlerRegistry;\n        _this.wasSelected = false;\n        _this.hasDragged = false;\n        return _this;\n    }\n    SelectMouseListener.prototype.mouseDown = function (target, event) {\n        if (event.button === 0) {\n            if (this.buttonHandlerRegistry !== undefined && target instanceof model_2.SButton && target.enabled) {\n                var buttonHandler = this.buttonHandlerRegistry.get(target.type);\n                if (buttonHandler !== undefined)\n                    return buttonHandler.buttonPressed(target);\n            }\n            var selectableTarget = smodel_utils_1.findParentByFeature(target, model_1.isSelectable);\n            if (selectableTarget !== undefined || target instanceof smodel_1.SModelRoot) {\n                this.hasDragged = false;\n                var deselectIds = [];\n                // multi-selection?\n                if (!browser_1.isCtrlOrCmd(event)) {\n                    deselectIds = target.root\n                        .index\n                        .all()\n                        .filter(function (element) { return model_1.isSelectable(element) && element.selected; })\n                        .map(function (element) { return element.id; });\n                }\n                if (selectableTarget !== undefined) {\n                    if (!selectableTarget.selected) {\n                        this.wasSelected = false;\n                        return [new SelectAction([selectableTarget.id], deselectIds)];\n                    }\n                    else {\n                        if (browser_1.isCtrlOrCmd(event)) {\n                            this.wasSelected = false;\n                            return [new SelectAction([], [selectableTarget.id])];\n                        }\n                        else {\n                            this.wasSelected = true;\n                        }\n                    }\n                }\n                else {\n                    return [new SelectAction([], deselectIds)];\n                }\n            }\n        }\n        return [];\n    };\n    SelectMouseListener.prototype.mouseMove = function (target, event) {\n        this.hasDragged = true;\n        return [];\n    };\n    SelectMouseListener.prototype.mouseUp = function (target, event) {\n        if (event.button === 0) {\n            if (!this.hasDragged) {\n                var selectableTarget = smodel_utils_1.findParentByFeature(target, model_1.isSelectable);\n                if (selectableTarget !== undefined && this.wasSelected) {\n                    return [new SelectAction([selectableTarget.id], [])];\n                }\n            }\n        }\n        this.hasDragged = false;\n        return [];\n    };\n    SelectMouseListener.prototype.decorate = function (vnode, element) {\n        var selectableTarget = smodel_utils_1.findParentByFeature(element, model_1.isSelectable);\n        if (selectableTarget !== undefined)\n            vnode_utils_1.setClass(vnode, 'selected', selectableTarget.selected);\n        return vnode;\n    };\n    SelectMouseListener = __decorate([\n        __param(0, inversify_1.inject(button_handler_1.ButtonHandlerRegistry)), __param(0, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [button_handler_1.ButtonHandlerRegistry])\n    ], SelectMouseListener);\n    return SelectMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.SelectMouseListener = SelectMouseListener;\nvar SelectKeyboardListener = /** @class */ (function (_super) {\n    __extends(SelectKeyboardListener, _super);\n    function SelectKeyboardListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SelectKeyboardListener.prototype.keyDown = function (element, event) {\n        if (browser_1.isCtrlOrCmd(event) && event.keyCode === 65) {\n            return [new SelectAction(element.root.index.all().filter(function (e) { return model_1.isSelectable(e); }).map(function (e) { return e.id; }), [])];\n        }\n        return [];\n    };\n    return SelectKeyboardListener;\n}(key_tool_1.KeyListener));\nexports.SelectKeyboardListener = SelectKeyboardListener;\n//# sourceMappingURL=select.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/select/select.js\n// module id = 141\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar viewport_1 = require(\"./viewport\");\nvar model_1 = require(\"./model\");\nvar model_2 = require(\"../move/model\");\nfunction isScrollable(element) {\n    return 'scroll' in element;\n}\nexports.isScrollable = isScrollable;\nvar ScrollMouseListener = /** @class */ (function (_super) {\n    __extends(ScrollMouseListener, _super);\n    function ScrollMouseListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ScrollMouseListener.prototype.mouseDown = function (target, event) {\n        var selectable = smodel_utils_1.findParentByFeature(target, model_2.isMoveable);\n        if (selectable === undefined) {\n            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);\n            if (viewport)\n                this.lastScrollPosition = { x: event.pageX, y: event.pageY };\n            else\n                this.lastScrollPosition = undefined;\n        }\n        return [];\n    };\n    ScrollMouseListener.prototype.mouseMove = function (target, event) {\n        if (event.buttons === 0)\n            this.mouseUp(target, event);\n        else if (this.lastScrollPosition) {\n            var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);\n            if (viewport) {\n                var dx = (event.pageX - this.lastScrollPosition.x) / viewport.zoom;\n                var dy = (event.pageY - this.lastScrollPosition.y) / viewport.zoom;\n                var newViewport = {\n                    scroll: {\n                        x: viewport.scroll.x - dx,\n                        y: viewport.scroll.y - dy,\n                    },\n                    zoom: viewport.zoom\n                };\n                this.lastScrollPosition = { x: event.pageX, y: event.pageY };\n                return [new viewport_1.ViewportAction(viewport.id, newViewport, false)];\n            }\n        }\n        return [];\n    };\n    ScrollMouseListener.prototype.mouseEnter = function (target, event) {\n        if (target instanceof smodel_1.SModelRoot && event.buttons === 0)\n            this.mouseUp(target, event);\n        return [];\n    };\n    ScrollMouseListener.prototype.mouseUp = function (target, event) {\n        this.lastScrollPosition = undefined;\n        return [];\n    };\n    return ScrollMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.ScrollMouseListener = ScrollMouseListener;\n//# sourceMappingURL=scroll.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/scroll.js\n// module id = 142\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar mouse_tool_1 = require(\"../../base/views/mouse-tool\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar viewport_1 = require(\"./viewport\");\nvar model_1 = require(\"./model\");\nfunction isZoomable(element) {\n    return 'zoom' in element;\n}\nexports.isZoomable = isZoomable;\nvar ZoomMouseListener = /** @class */ (function (_super) {\n    __extends(ZoomMouseListener, _super);\n    function ZoomMouseListener() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZoomMouseListener.prototype.wheel = function (target, event) {\n        var viewport = smodel_utils_1.findParentByFeature(target, model_1.isViewport);\n        if (viewport) {\n            var newZoom = Math.exp(-event.deltaY * 0.005);\n            var factor = 1. / (newZoom * viewport.zoom) - 1. / viewport.zoom;\n            var newViewport = {\n                scroll: {\n                    x: -(factor * event.offsetX - viewport.scroll.x),\n                    y: -(factor * event.offsetY - viewport.scroll.y)\n                },\n                zoom: viewport.zoom * newZoom\n            };\n            return [new viewport_1.ViewportAction(viewport.id, newViewport, false)];\n        }\n        return [];\n    };\n    return ZoomMouseListener;\n}(mouse_tool_1.MouseListener));\nexports.ZoomMouseListener = ZoomMouseListener;\n//# sourceMappingURL=zoom.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/zoom.js\n// module id = 143\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar geometry_1 = require(\"../utils/geometry\");\nvar vnode_utils_1 = require(\"../base/views/vnode-utils\");\nvar smodel_utils_1 = require(\"../base/model/smodel-utils\");\nvar JSX = { createElement: snabbdom.svg };\n/**\n * IView component that turns an SGraph element and its children into a tree of virtual DOM elements.\n */\nvar SGraphView = /** @class */ (function () {\n    function SGraphView() {\n    }\n    SGraphView.prototype.render = function (model, context) {\n        var transform = \"scale(\" + model.zoom + \") translate(\" + -model.scroll.x + \",\" + -model.scroll.y + \")\";\n        return JSX.createElement(\"svg\", { \"class-sprotty-graph\": true },\n            JSX.createElement(\"g\", { transform: transform }, context.renderChildren(model)));\n    };\n    return SGraphView;\n}());\nexports.SGraphView = SGraphView;\nvar AnchorableView = /** @class */ (function () {\n    function AnchorableView() {\n    }\n    AnchorableView.prototype.getStrokeWidth = function (model) {\n        return 0;\n    };\n    AnchorableView.prototype.getTranslatedAnchor = function (node, refPoint, refContainer, anchorCorrection, edge) {\n        if (anchorCorrection === void 0) { anchorCorrection = 0; }\n        var viewContainer = node.parent;\n        var anchor = this.getAnchor(node, smodel_utils_1.translatePoint(refPoint, refContainer, viewContainer), anchorCorrection);\n        var edgeContainer = edge.parent;\n        return smodel_utils_1.translatePoint(anchor, viewContainer, edgeContainer);\n    };\n    return AnchorableView;\n}());\nexports.AnchorableView = AnchorableView;\nvar PolylineEdgeView = /** @class */ (function () {\n    function PolylineEdgeView() {\n        this.minimalPointDistance = 2;\n    }\n    PolylineEdgeView.prototype.render = function (edge, context) {\n        var source = edge.source;\n        if (source === undefined)\n            return this.renderDanglingEdge(\"Cannot resolve source\", edge, context);\n        var target = edge.target;\n        if (target === undefined)\n            return this.renderDanglingEdge(\"Cannot resolve target\", edge, context);\n        var sourceView = context.viewRegistry.get(source.type, source);\n        if (!(sourceView instanceof AnchorableView))\n            return this.renderDanglingEdge(\"Expected source view type: AnchorableView\", edge, context);\n        var targetView = context.viewRegistry.get(target.type, target);\n        if (!(targetView instanceof AnchorableView))\n            return this.renderDanglingEdge(\"Expected target view type: AnchorableView\", edge, context);\n        var segments = this.computeSegments(edge, source, sourceView, target, targetView);\n        return JSX.createElement(\"g\", null,\n            this.renderLine(edge, segments, context),\n            this.renderAdditionals(edge, segments, context),\n            context.renderChildren(edge));\n    };\n    PolylineEdgeView.prototype.computeSegments = function (edge, source, sourceView, target, targetView) {\n        var sourceAnchor;\n        if (edge.routingPoints !== undefined && edge.routingPoints.length >= 1) {\n            // Use the first routing point as start anchor reference\n            var p0 = edge.routingPoints[0];\n            sourceAnchor = sourceView.getTranslatedAnchor(source, p0, edge.parent, this.getSourceAnchorCorrection(edge), edge);\n        }\n        else {\n            // Use the target center as start anchor reference\n            var reference = geometry_1.center(target.bounds);\n            sourceAnchor = sourceView.getTranslatedAnchor(source, reference, target.parent, this.getSourceAnchorCorrection(edge), edge);\n        }\n        var result = [sourceAnchor];\n        var previousPoint = sourceAnchor;\n        for (var i = 0; i < edge.routingPoints.length - 1; i++) {\n            var p = edge.routingPoints[i];\n            var minDistance = this.minimalPointDistance + ((i === 0)\n                ? this.getSourceAnchorCorrection(edge) + sourceView.getStrokeWidth(source)\n                : 0);\n            if (geometry_1.maxDistance(previousPoint, p) >= minDistance) {\n                result.push(p);\n                previousPoint = p;\n            }\n        }\n        var targetAnchor;\n        if (edge.routingPoints && edge.routingPoints.length >= 2) {\n            // Use the last routing point as end anchor reference\n            var pn = edge.routingPoints[edge.routingPoints.length - 1];\n            targetAnchor = targetView.getTranslatedAnchor(target, pn, edge.parent, this.getTargetAnchorCorrection(edge), edge);\n            var minDistance = this.minimalPointDistance + this.getTargetAnchorCorrection(edge) + targetView.getStrokeWidth(source);\n            if (geometry_1.maxDistance(previousPoint, pn) >= this.minimalPointDistance\n                && geometry_1.maxDistance(pn, targetAnchor) >= minDistance) {\n                result.push(pn);\n            }\n        }\n        else {\n            // Use the source center as end anchor reference\n            var reference = geometry_1.center(source.bounds);\n            targetAnchor = targetView.getTranslatedAnchor(target, reference, source.parent, this.getTargetAnchorCorrection(edge), edge);\n        }\n        result.push(targetAnchor);\n        return result;\n    };\n    PolylineEdgeView.prototype.renderLine = function (edge, segments, context) {\n        var firstPoint = segments[0];\n        var path = \"M \" + firstPoint.x + \",\" + firstPoint.y;\n        for (var i = 1; i < segments.length; i++) {\n            var p = segments[i];\n            path += \" L \" + p.x + \",\" + p.y;\n        }\n        return JSX.createElement(\"path\", { \"class-sprotty-edge\": true, d: path });\n    };\n    PolylineEdgeView.prototype.renderAdditionals = function (edge, segments, context) {\n        return [];\n    };\n    PolylineEdgeView.prototype.renderDanglingEdge = function (message, edge, context) {\n        return JSX.createElement(\"text\", { \"class-sprotty-edge-dangling\": true, title: message }, \"?\");\n    };\n    PolylineEdgeView.prototype.getSourceAnchorCorrection = function (edge) {\n        return 0;\n    };\n    PolylineEdgeView.prototype.getTargetAnchorCorrection = function (edge) {\n        return 0;\n    };\n    return PolylineEdgeView;\n}());\nexports.PolylineEdgeView = PolylineEdgeView;\nvar SLabelView = /** @class */ (function () {\n    function SLabelView() {\n    }\n    SLabelView.prototype.render = function (label, context) {\n        var vnode = JSX.createElement(\"text\", { \"class-sprotty-label\": true }, label.text);\n        var subType = smodel_utils_1.getSubType(label);\n        if (subType)\n            vnode_utils_1.setAttr(vnode, 'class', subType);\n        return vnode;\n    };\n    return SLabelView;\n}());\nexports.SLabelView = SLabelView;\nvar SCompartmentView = /** @class */ (function () {\n    function SCompartmentView() {\n    }\n    SCompartmentView.prototype.render = function (model, context) {\n        var translate = \"translate(\" + model.bounds.x + \", \" + model.bounds.y + \")\";\n        var vnode = JSX.createElement(\"g\", { transform: translate, \"class-sprotty-comp\": \"{true}\" }, context.renderChildren(model));\n        var subType = smodel_utils_1.getSubType(model);\n        if (subType)\n            vnode_utils_1.setAttr(vnode, 'class', subType);\n        return vnode;\n    };\n    return SCompartmentView;\n}());\nexports.SCompartmentView = SCompartmentView;\n//# sourceMappingURL=views.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/graph/views.js\n// module id = 144\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../base/types\");\nvar smodel_1 = require(\"../base/model/smodel\");\nvar smodel_storage_1 = require(\"../base/model/smodel-storage\");\nvar action_handler_1 = require(\"../base/actions/action-handler\");\nvar set_model_1 = require(\"../base/features/set-model\");\nvar update_model_1 = require(\"../features/update/update-model\");\nvar bounds_manipulation_1 = require(\"../features/bounds/bounds-manipulation\");\nvar hover_1 = require(\"../features/hover/hover\");\nvar model_source_1 = require(\"./model-source\");\nvar svg_exporter_1 = require(\"../features/export/svg-exporter\");\nvar file_saver_1 = require(\"file-saver\");\nvar expand_1 = require(\"../features/expand/expand\");\nvar open_1 = require(\"../features/open/open\");\nfunction isActionMessage(object) {\n    return object !== undefined && object.hasOwnProperty('clientId') && object.hasOwnProperty('action');\n}\nexports.isActionMessage = isActionMessage;\n/**\n * Sent by the external server when to signal a state change.\n */\nvar ServerStatusAction = /** @class */ (function () {\n    function ServerStatusAction() {\n        this.kind = ServerStatusAction.KIND;\n    }\n    ServerStatusAction.KIND = 'serverStatus';\n    return ServerStatusAction;\n}());\nexports.ServerStatusAction = ServerStatusAction;\nvar receivedFromServerProperty = '__receivedFromServer';\n/**\n * A ModelSource that communicates with an external model provider, e.g.\n * a model editor.\n *\n * This class defines which actions are sent to and received from the\n * external model source.\n */\nvar DiagramServer = /** @class */ (function (_super) {\n    __extends(DiagramServer, _super);\n    function DiagramServer(actionDispatcher, actionHandlerRegistry, viewerOptions, storage, logger) {\n        var _this = _super.call(this, actionDispatcher, actionHandlerRegistry, viewerOptions) || this;\n        _this.storage = storage;\n        _this.logger = logger;\n        _this.currentRoot = {\n            type: 'NONE',\n            id: 'ROOT'\n        };\n        _this.clientId = _this.viewerOptions.baseDiv;\n        return _this;\n    }\n    DiagramServer.prototype.initialize = function (registry) {\n        _super.prototype.initialize.call(this, registry);\n        // Register model manipulation commands\n        registry.registerCommand(update_model_1.UpdateModelCommand);\n        // Register this model source\n        registry.register(bounds_manipulation_1.ComputedBoundsAction.KIND, this);\n        registry.register(bounds_manipulation_1.RequestBoundsCommand.KIND, this);\n        registry.register(hover_1.RequestPopupModelAction.KIND, this);\n        registry.register(expand_1.CollapseExpandAction.KIND, this);\n        registry.register(expand_1.CollapseExpandAllAction.KIND, this);\n        registry.register(open_1.OpenAction.KIND, this);\n        registry.register(ServerStatusAction.KIND, this);\n    };\n    DiagramServer.prototype.handle = function (action) {\n        var forwardToServer = this.handleLocally(action);\n        if (forwardToServer) {\n            var message = {\n                clientId: this.clientId,\n                action: action\n            };\n            this.logger.log(this, 'sending', message);\n            this.sendMessage(message);\n        }\n    };\n    DiagramServer.prototype.messageReceived = function (data) {\n        var object = typeof (data) === 'string' ? JSON.parse(data) : data;\n        if (isActionMessage(object) && object.action) {\n            if (!object.clientId || object.clientId === this.clientId) {\n                this.logger.log(this, 'receiving', object);\n                object.action[receivedFromServerProperty] = true;\n                this.actionDispatcher.dispatch(object.action, this.storeNewModel.bind(this));\n            }\n        }\n        else {\n            this.logger.error(this, 'received data is not an action message', object);\n        }\n    };\n    /**\n     * Check whether the given action should be handled locally. Returns true if the action should\n     * still be sent to the server, and false if it's only handled locally.\n     */\n    DiagramServer.prototype.handleLocally = function (action) {\n        this.storeNewModel(action);\n        switch (action.kind) {\n            case bounds_manipulation_1.ComputedBoundsAction.KIND:\n                return this.handleComputedBounds(action);\n            case bounds_manipulation_1.RequestBoundsCommand.KIND:\n                return false;\n            case svg_exporter_1.ExportSvgAction.KIND:\n                return this.handleExportSvgAction(action);\n            case ServerStatusAction.KIND:\n                return this.handleServerStateAction(action);\n        }\n        return !action[receivedFromServerProperty];\n    };\n    /**\n     * Put the new model contained in the given action into the model storage, if there is any.\n     */\n    DiagramServer.prototype.storeNewModel = function (action) {\n        if (action.kind === set_model_1.SetModelCommand.KIND\n            || action.kind === update_model_1.UpdateModelCommand.KIND\n            || action.kind === bounds_manipulation_1.RequestBoundsCommand.KIND) {\n            var newRoot = action.newRoot;\n            if (newRoot) {\n                this.currentRoot = newRoot;\n                this.storage.store(this.currentRoot);\n            }\n        }\n    };\n    /**\n     * If the server requires to compute a layout, the computed bounds are forwarded. Otherwise they\n     * are applied to the current model locally and a model update is triggered.\n     */\n    DiagramServer.prototype.handleComputedBounds = function (action) {\n        if (this.viewerOptions.needsServerLayout) {\n            return true;\n        }\n        else {\n            var index = new smodel_1.SModelIndex();\n            index.add(this.currentRoot);\n            for (var _i = 0, _a = action.bounds; _i < _a.length; _i++) {\n                var b = _a[_i];\n                var element = index.getById(b.elementId);\n                if (element !== undefined)\n                    this.applyBounds(element, b.newBounds);\n            }\n            if (action.alignments !== undefined) {\n                for (var _b = 0, _c = action.alignments; _b < _c.length; _b++) {\n                    var a = _c[_b];\n                    var element = index.getById(a.elementId);\n                    if (element !== undefined)\n                        this.applyAlignment(element, a.newAlignment);\n                }\n            }\n            this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(this.currentRoot));\n            return false;\n        }\n    };\n    DiagramServer.prototype.applyBounds = function (element, newBounds) {\n        var e = element;\n        e.position = { x: newBounds.x, y: newBounds.y };\n        e.size = { width: newBounds.width, height: newBounds.height };\n    };\n    DiagramServer.prototype.applyAlignment = function (element, newAlignment) {\n        var e = element;\n        e.alignment = { x: newAlignment.x, y: newAlignment.y };\n    };\n    DiagramServer.prototype.handleExportSvgAction = function (action) {\n        var blob = new Blob([action.svg], { type: \"text/plain;charset=utf-8\" });\n        file_saver_1.saveAs(blob, \"diagram.svg\");\n        return false;\n    };\n    DiagramServer.prototype.handleServerStateAction = function (action) {\n        return false;\n    };\n    DiagramServer = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),\n        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __param(3, inversify_1.inject(types_1.TYPES.SModelStorage)),\n        __param(4, inversify_1.inject(types_1.TYPES.ILogger)),\n        __metadata(\"design:paramtypes\", [Object, action_handler_1.ActionHandlerRegistry, Object, smodel_storage_1.SModelStorage, Object])\n    ], DiagramServer);\n    return DiagramServer;\n}(model_source_1.ModelSource));\nexports.DiagramServer = DiagramServer;\n//# sourceMappingURL=diagram-server.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/diagram-server.js\n// module id = 145\n// module chunks = 0","\"use strict\";\n/*\n* Copyright (C) 2017 TypeFox and others.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ExpansionState = /** @class */ (function () {\n    function ExpansionState(root) {\n        this.expandedElementIds = [];\n        this.initialize(root);\n    }\n    ExpansionState.prototype.initialize = function (element) {\n        var _this = this;\n        if (element.expanded)\n            this.expandedElementIds.push(element.id);\n        if (element.children !== undefined)\n            element.children.forEach(function (child) { return _this.initialize(child); });\n    };\n    ExpansionState.prototype.apply = function (action) {\n        for (var _i = 0, _a = action.collapseIds; _i < _a.length; _i++) {\n            var collapsed = _a[_i];\n            var index = this.expandedElementIds.indexOf(collapsed);\n            if (index !== -1)\n                this.expandedElementIds.splice(index, 1);\n        }\n        for (var _b = 0, _c = action.expandIds; _b < _c.length; _b++) {\n            var expanded = _c[_b];\n            this.expandedElementIds.push(expanded);\n        }\n    };\n    ExpansionState.prototype.collapseAll = function () {\n        this.expandedElementIds = [];\n    };\n    return ExpansionState;\n}());\nexports.ExpansionState = ExpansionState;\n//# sourceMappingURL=diagram-state.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/diagram-state.js\n// module id = 146\n// module chunks = 0","import { vnode } from './vnode';\nimport * as is from './is';\nfunction addNS(data, children, sel) {\n    data.ns = 'http://www.w3.org/2000/svg';\n    if (sel !== 'foreignObject' && children !== undefined) {\n        for (var i = 0; i < children.length; ++i) {\n            var childData = children[i].data;\n            if (childData !== undefined) {\n                addNS(childData, children[i].children, children[i].sel);\n            }\n        }\n    }\n}\nexport function h(sel, b, c) {\n    var data = {}, children, text, i;\n    if (c !== undefined) {\n        data = b;\n        if (is.array(c)) {\n            children = c;\n        }\n        else if (is.primitive(c)) {\n            text = c;\n        }\n        else if (c && c.sel) {\n            children = [c];\n        }\n    }\n    else if (b !== undefined) {\n        if (is.array(b)) {\n            children = b;\n        }\n        else if (is.primitive(b)) {\n            text = b;\n        }\n        else if (b && b.sel) {\n            children = [b];\n        }\n        else {\n            data = b;\n        }\n    }\n    if (is.array(children)) {\n        for (i = 0; i < children.length; ++i) {\n            if (is.primitive(children[i]))\n                children[i] = vnode(undefined, undefined, undefined, children[i], undefined);\n        }\n    }\n    if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n        (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n        addNS(data, children, sel);\n    }\n    return vnode(sel, data, children, text, undefined);\n}\n;\nexport default h;\n//# sourceMappingURL=h.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/h.js\n// module id = 147\n// module chunks = 0","export var array = Array.isArray;\nexport function primitive(s) {\n    return typeof s === 'string' || typeof s === 'number';\n}\n//# sourceMappingURL=is.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/is.js\n// module id = 148\n// module chunks = 0","import vnode from './vnode';\nimport * as is from './is';\nimport htmlDomApi from './htmldomapi';\nfunction isUndef(s) { return s === undefined; }\nfunction isDef(s) { return s !== undefined; }\nvar emptyNode = vnode('', {}, [], undefined, undefined);\nfunction sameVnode(vnode1, vnode2) {\n    return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;\n}\nfunction isVnode(vnode) {\n    return vnode.sel !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n    var i, map = {}, key, ch;\n    for (i = beginIdx; i <= endIdx; ++i) {\n        ch = children[i];\n        if (ch != null) {\n            key = ch.key;\n            if (key !== undefined)\n                map[key] = i;\n        }\n    }\n    return map;\n}\nvar hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post'];\nexport { h } from './h';\nexport { thunk } from './thunk';\nexport function init(modules, domApi) {\n    var i, j, cbs = {};\n    var api = domApi !== undefined ? domApi : htmlDomApi;\n    for (i = 0; i < hooks.length; ++i) {\n        cbs[hooks[i]] = [];\n        for (j = 0; j < modules.length; ++j) {\n            var hook = modules[j][hooks[i]];\n            if (hook !== undefined) {\n                cbs[hooks[i]].push(hook);\n            }\n        }\n    }\n    function emptyNodeAt(elm) {\n        var id = elm.id ? '#' + elm.id : '';\n        var c = elm.className ? '.' + elm.className.split(' ').join('.') : '';\n        return vnode(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);\n    }\n    function createRmCb(childElm, listeners) {\n        return function rmCb() {\n            if (--listeners === 0) {\n                var parent_1 = api.parentNode(childElm);\n                api.removeChild(parent_1, childElm);\n            }\n        };\n    }\n    function createElm(vnode, insertedVnodeQueue) {\n        var i, data = vnode.data;\n        if (data !== undefined) {\n            if (isDef(i = data.hook) && isDef(i = i.init)) {\n                i(vnode);\n                data = vnode.data;\n            }\n        }\n        var children = vnode.children, sel = vnode.sel;\n        if (sel === '!') {\n            if (isUndef(vnode.text)) {\n                vnode.text = '';\n            }\n            vnode.elm = api.createComment(vnode.text);\n        }\n        else if (sel !== undefined) {\n            // Parse selector\n            var hashIdx = sel.indexOf('#');\n            var dotIdx = sel.indexOf('.', hashIdx);\n            var hash = hashIdx > 0 ? hashIdx : sel.length;\n            var dot = dotIdx > 0 ? dotIdx : sel.length;\n            var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel;\n            var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag)\n                : api.createElement(tag);\n            if (hash < dot)\n                elm.setAttribute('id', sel.slice(hash + 1, dot));\n            if (dotIdx > 0)\n                elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '));\n            for (i = 0; i < cbs.create.length; ++i)\n                cbs.create[i](emptyNode, vnode);\n            if (is.array(children)) {\n                for (i = 0; i < children.length; ++i) {\n                    var ch = children[i];\n                    if (ch != null) {\n                        api.appendChild(elm, createElm(ch, insertedVnodeQueue));\n                    }\n                }\n            }\n            else if (is.primitive(vnode.text)) {\n                api.appendChild(elm, api.createTextNode(vnode.text));\n            }\n            i = vnode.data.hook; // Reuse variable\n            if (isDef(i)) {\n                if (i.create)\n                    i.create(emptyNode, vnode);\n                if (i.insert)\n                    insertedVnodeQueue.push(vnode);\n            }\n        }\n        else {\n            vnode.elm = api.createTextNode(vnode.text);\n        }\n        return vnode.elm;\n    }\n    function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n        for (; startIdx <= endIdx; ++startIdx) {\n            var ch = vnodes[startIdx];\n            if (ch != null) {\n                api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before);\n            }\n        }\n    }\n    function invokeDestroyHook(vnode) {\n        var i, j, data = vnode.data;\n        if (data !== undefined) {\n            if (isDef(i = data.hook) && isDef(i = i.destroy))\n                i(vnode);\n            for (i = 0; i < cbs.destroy.length; ++i)\n                cbs.destroy[i](vnode);\n            if (vnode.children !== undefined) {\n                for (j = 0; j < vnode.children.length; ++j) {\n                    i = vnode.children[j];\n                    if (i != null && typeof i !== \"string\") {\n                        invokeDestroyHook(i);\n                    }\n                }\n            }\n        }\n    }\n    function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n        for (; startIdx <= endIdx; ++startIdx) {\n            var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx];\n            if (ch != null) {\n                if (isDef(ch.sel)) {\n                    invokeDestroyHook(ch);\n                    listeners = cbs.remove.length + 1;\n                    rm = createRmCb(ch.elm, listeners);\n                    for (i_1 = 0; i_1 < cbs.remove.length; ++i_1)\n                        cbs.remove[i_1](ch, rm);\n                    if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) {\n                        i_1(ch, rm);\n                    }\n                    else {\n                        rm();\n                    }\n                }\n                else {\n                    api.removeChild(parentElm, ch.elm);\n                }\n            }\n        }\n    }\n    function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) {\n        var oldStartIdx = 0, newStartIdx = 0;\n        var oldEndIdx = oldCh.length - 1;\n        var oldStartVnode = oldCh[0];\n        var oldEndVnode = oldCh[oldEndIdx];\n        var newEndIdx = newCh.length - 1;\n        var newStartVnode = newCh[0];\n        var newEndVnode = newCh[newEndIdx];\n        var oldKeyToIdx;\n        var idxInOld;\n        var elmToMove;\n        var before;\n        while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n            if (oldStartVnode == null) {\n                oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left\n            }\n            else if (oldEndVnode == null) {\n                oldEndVnode = oldCh[--oldEndIdx];\n            }\n            else if (newStartVnode == null) {\n                newStartVnode = newCh[++newStartIdx];\n            }\n            else if (newEndVnode == null) {\n                newEndVnode = newCh[--newEndIdx];\n            }\n            else if (sameVnode(oldStartVnode, newStartVnode)) {\n                patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n                oldStartVnode = oldCh[++oldStartIdx];\n                newStartVnode = newCh[++newStartIdx];\n            }\n            else if (sameVnode(oldEndVnode, newEndVnode)) {\n                patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n                oldEndVnode = oldCh[--oldEndIdx];\n                newEndVnode = newCh[--newEndIdx];\n            }\n            else if (sameVnode(oldStartVnode, newEndVnode)) {\n                patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n                api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n                oldStartVnode = oldCh[++oldStartIdx];\n                newEndVnode = newCh[--newEndIdx];\n            }\n            else if (sameVnode(oldEndVnode, newStartVnode)) {\n                patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n                api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n                oldEndVnode = oldCh[--oldEndIdx];\n                newStartVnode = newCh[++newStartIdx];\n            }\n            else {\n                if (oldKeyToIdx === undefined) {\n                    oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n                }\n                idxInOld = oldKeyToIdx[newStartVnode.key];\n                if (isUndef(idxInOld)) {\n                    api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n                    newStartVnode = newCh[++newStartIdx];\n                }\n                else {\n                    elmToMove = oldCh[idxInOld];\n                    if (elmToMove.sel !== newStartVnode.sel) {\n                        api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm);\n                    }\n                    else {\n                        patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);\n                        oldCh[idxInOld] = undefined;\n                        api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n                    }\n                    newStartVnode = newCh[++newStartIdx];\n                }\n            }\n        }\n        if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n            if (oldStartIdx > oldEndIdx) {\n                before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n                addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n            }\n            else {\n                removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n            }\n        }\n    }\n    function patchVnode(oldVnode, vnode, insertedVnodeQueue) {\n        var i, hook;\n        if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) {\n            i(oldVnode, vnode);\n        }\n        var elm = vnode.elm = oldVnode.elm;\n        var oldCh = oldVnode.children;\n        var ch = vnode.children;\n        if (oldVnode === vnode)\n            return;\n        if (vnode.data !== undefined) {\n            for (i = 0; i < cbs.update.length; ++i)\n                cbs.update[i](oldVnode, vnode);\n            i = vnode.data.hook;\n            if (isDef(i) && isDef(i = i.update))\n                i(oldVnode, vnode);\n        }\n        if (isUndef(vnode.text)) {\n            if (isDef(oldCh) && isDef(ch)) {\n                if (oldCh !== ch)\n                    updateChildren(elm, oldCh, ch, insertedVnodeQueue);\n            }\n            else if (isDef(ch)) {\n                if (isDef(oldVnode.text))\n                    api.setTextContent(elm, '');\n                addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n            }\n            else if (isDef(oldCh)) {\n                removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n            }\n            else if (isDef(oldVnode.text)) {\n                api.setTextContent(elm, '');\n            }\n        }\n        else if (oldVnode.text !== vnode.text) {\n            api.setTextContent(elm, vnode.text);\n        }\n        if (isDef(hook) && isDef(i = hook.postpatch)) {\n            i(oldVnode, vnode);\n        }\n    }\n    return function patch(oldVnode, vnode) {\n        var i, elm, parent;\n        var insertedVnodeQueue = [];\n        for (i = 0; i < cbs.pre.length; ++i)\n            cbs.pre[i]();\n        if (!isVnode(oldVnode)) {\n            oldVnode = emptyNodeAt(oldVnode);\n        }\n        if (sameVnode(oldVnode, vnode)) {\n            patchVnode(oldVnode, vnode, insertedVnodeQueue);\n        }\n        else {\n            elm = oldVnode.elm;\n            parent = api.parentNode(elm);\n            createElm(vnode, insertedVnodeQueue);\n            if (parent !== null) {\n                api.insertBefore(parent, vnode.elm, api.nextSibling(elm));\n                removeVnodes(parent, [oldVnode], 0, 0);\n            }\n        }\n        for (i = 0; i < insertedVnodeQueue.length; ++i) {\n            insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]);\n        }\n        for (i = 0; i < cbs.post.length; ++i)\n            cbs.post[i]();\n        return vnode;\n    };\n}\n//# sourceMappingURL=snabbdom.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/snabbdom.js\n// module id = 149\n// module chunks = 0","export function vnode(sel, data, children, text, elm) {\n    var key = data === undefined ? undefined : data.key;\n    return { sel: sel, data: data, children: children,\n        text: text, elm: elm, key: key };\n}\nexport default vnode;\n//# sourceMappingURL=vnode.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/vnode.js\n// module id = 150\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nmodule.exports = require('../modules/_core').Map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/map.js\n// module id = 151\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/promise.js\n// module id = 152\n// module chunks = 0","require('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').String;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/string.js\n// module id = 153\n// module chunks = 0","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/symbol.js\n// module id = 154\n// module chunks = 0","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport 'reflect-metadata';\r\nimport { initializeSiriusDiagram } from './src/app/standalone';\r\n\r\ninitializeSiriusDiagram();\n\n\n// WEBPACK FOOTER //\n// ./index.ts","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_add-to-unscopables.js\n// module id = 156\n// module chunks = 0","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 157\n// module chunks = 0","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n  // fast case\n  var index = fastKey(key);\n  var entry;\n  if (index !== 'F') return that._i[index];\n  // frozen object case\n  for (entry = that._f; entry; entry = entry.n) {\n    if (entry.k == key) return entry;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;         // collection type\n      that._i = create(null); // index\n      that._f = undefined;    // first entry\n      that._l = undefined;    // last entry\n      that[SIZE] = 0;         // size\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n          entry.r = true;\n          if (entry.p) entry.p = entry.p.n = undefined;\n          delete data[entry.i];\n        }\n        that._f = that._l = undefined;\n        that[SIZE] = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = validate(this, NAME);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.n;\n          var prev = entry.p;\n          delete that._i[entry.i];\n          entry.r = true;\n          if (prev) prev.n = next;\n          if (next) next.p = prev;\n          if (that._f == entry) that._f = next;\n          if (that._l == entry) that._l = prev;\n          that[SIZE]--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        validate(this, NAME);\n        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.n : this._f) {\n          f(entry.v, entry.k, this);\n          // revert to the last existing entry\n          while (entry && entry.r) entry = entry.p;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(validate(this, NAME), key);\n      }\n    });\n    if (DESCRIPTORS) dP(C.prototype, 'size', {\n      get: function () {\n        return validate(this, NAME)[SIZE];\n      }\n    });\n    return C;\n  },\n  def: function (that, key, value) {\n    var entry = getEntry(that, key);\n    var prev, index;\n    // change existing entry\n    if (entry) {\n      entry.v = value;\n    // create new entry\n    } else {\n      that._l = entry = {\n        i: index = fastKey(key, true), // <- index\n        k: key,                        // <- key\n        v: value,                      // <- value\n        p: prev = that._l,             // <- previous entry\n        n: undefined,                  // <- next entry\n        r: false                       // <- removed\n      };\n      if (!that._f) that._f = entry;\n      if (prev) prev.n = entry;\n      that[SIZE]++;\n      // add to index\n      if (index !== 'F') that._i[index] = entry;\n    } return that;\n  },\n  getEntry: getEntry,\n  setStrong: function (C, NAME, IS_MAP) {\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    $iterDefine(C, NAME, function (iterated, kind) {\n      this._t = validate(iterated, NAME); // target\n      this._k = kind;                     // kind\n      this._l = undefined;                // previous\n    }, function () {\n      var that = this;\n      var kind = that._k;\n      var entry = that._l;\n      // revert to the last existing entry\n      while (entry && entry.r) entry = entry.p;\n      // get next entry\n      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n        // or finish the iteration\n        that._t = undefined;\n        return step(1);\n      }\n      // return step by kind\n      if (kind == 'keys') return step(0, entry.k);\n      if (kind == 'values') return step(0, entry.v);\n      return step(0, [entry.k, entry.v]);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(NAME);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-strong.js\n// module id = 158\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n  var Base = global[NAME];\n  var C = Base;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var proto = C && C.prototype;\n  var O = {};\n  var fixMethod = function (KEY) {\n    var fn = proto[KEY];\n    redefine(proto, KEY,\n      KEY == 'delete' ? function (a) {\n        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'has' ? function has(a) {\n        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'get' ? function get(a) {\n        return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n    );\n  };\n  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    // create collection constructor\n    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n    redefineAll(C.prototype, methods);\n    meta.NEED = true;\n  } else {\n    var instance = new C();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new C();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n    if (!ACCEPT_ITERABLES) {\n      C = wrapper(function (target, iterable) {\n        anInstance(target, C, NAME);\n        var that = inheritIfRequired(new Base(), target, C);\n        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n        return that;\n      });\n      C.prototype = proto;\n      proto.constructor = C;\n    }\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n    // weak collections should not contains .clear method\n    if (IS_WEAK && proto.clear) delete proto.clear;\n  }\n\n  setToStringTag(C, NAME);\n\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F * (C != Base), O);\n\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n  return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection.js\n// module id = 159\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-keys.js\n// module id = 160\n// module chunks = 0","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n  var S = target.constructor;\n  var P;\n  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n    setPrototypeOf(that, P);\n  } return that;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_inherit-if-required.js\n// module id = 161\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n  switch (args.length) {\n    case 0: return un ? fn()\n                      : fn.call(that);\n    case 1: return un ? fn(args[0])\n                      : fn.call(that, args[0]);\n    case 2: return un ? fn(args[0], args[1])\n                      : fn.call(that, args[0], args[1]);\n    case 3: return un ? fn(args[0], args[1], args[2])\n                      : fn.call(that, args[0], args[1], args[2]);\n    case 4: return un ? fn(args[0], args[1], args[2], args[3])\n                      : fn.call(that, args[0], args[1], args[2], args[3]);\n  } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_invoke.js\n// module id = 162\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 163\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 164\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array.js\n// module id = 165\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 166\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 167\n// module chunks = 0","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function () {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();\n        else last = undefined;\n        throw e;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (isNode) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    var promise = Promise.resolve();\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = { fn: fn, next: undefined };\n    if (last) last.next = task;\n    if (!head) {\n      head = task;\n      notify();\n    } last = task;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_microtask.js\n// module id = 168\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 169\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn-ext.js\n// module id = 170\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 171\n// module chunks = 0","module.exports = function (exec) {\n  try {\n    return { e: false, v: exec() };\n  } catch (e) {\n    return { e: true, v: e };\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_perform.js\n// module id = 172\n// module chunks = 0","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_promise-resolve.js\n// module id = 173\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n    function (test, buggy, set) {\n      try {\n        set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n        set(test, []);\n        buggy = !(test instanceof Array);\n      } catch (e) { buggy = true; }\n      return function setPrototypeOf(O, proto) {\n        check(O, proto);\n        if (buggy) O.__proto__ = proto;\n        else set(O, proto);\n        return O;\n      };\n    }({}, false) : undefined),\n  check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-proto.js\n// module id = 174\n// module chunks = 0","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_species-constructor.js\n// module id = 175\n// module chunks = 0","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n  var str = String(defined(this));\n  var res = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n  return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-repeat.js\n// module id = 176\n// module chunks = 0","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n  var exp = {};\n  var FORCE = fails(function () {\n    return !!spaces[KEY]() || non[KEY]() != non;\n  });\n  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n  if (ALIAS) exp[ALIAS] = fn;\n  $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n  string = String(defined(string));\n  if (TYPE & 1) string = string.replace(ltrim, '');\n  if (TYPE & 2) string = string.replace(rtrim, '');\n  return string;\n};\n\nmodule.exports = exporter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-trim.js\n// module id = 177\n// module chunks = 0","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n  '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-ws.js\n// module id = 178\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 179\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks-define.js\n// module id = 180\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 181\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.iterator.js\n// module id = 182\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.1.3.6 Map.prototype.get(key)\n  get: function get(key) {\n    var entry = strong.getEntry(validate(this, MAP), key);\n    return entry && entry.v;\n  },\n  // 23.1.3.9 Map.prototype.set(key, value)\n  set: function set(key, value) {\n    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n  }\n}, strong, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.map.js\n// module id = 183\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n  try {\n    // correct subclassing with @@species support\n    var promise = $Promise.resolve(1);\n    var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n      exec(empty, empty);\n    };\n    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n  } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n    var run = function (reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value);\n            if (domain) domain.exit();\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        reject(e);\n      }\n    };\n    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\nvar onUnhandled = function (promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({ promise: promise, reason: value });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    } promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\nvar isUnhandled = function (promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n  task.call(global, function () {\n    var handler;\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({ promise: promise, reason: promise._v });\n    }\n  });\n};\nvar $reject = function (value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\nvar $resolve = function (value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = { _w: promise, _d: false }; // wrap\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({ _w: promise, _d: false }, e); // wrap\n  }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n  // 25.4.3.1 Promise(executor)\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    this._c = [];             // <- awaiting reactions\n    this._a = undefined;      // <- checked in isUnhandled reactions\n    this._s = 0;              // <- state\n    this._d = false;          // <- done\n    this._v = undefined;      // <- value\n    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n    this._n = false;          // <- notify\n  };\n  Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n      this._c.push(reaction);\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    // 25.4.5.1 Promise.prototype.catch(onRejected)\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === $Promise || C === Wrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n  // 25.4.4.5 Promise.reject(r)\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    var $$reject = capability.reject;\n    $$reject(r);\n    return capability.promise;\n  }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n  // 25.4.4.6 Promise.resolve(x)\n  resolve: function resolve(x) {\n    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n  }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n  $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n  // 25.4.4.1 Promise.all(iterable)\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var values = [];\n      var index = 0;\n      var remaining = 1;\n      forOf(iterable, false, function (promise) {\n        var $index = index++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        C.resolve(promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[$index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  },\n  // 25.4.4.4 Promise.race(iterable)\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      forOf(iterable, false, function (promise) {\n        C.resolve(promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.promise.js\n// module id = 184\n// module chunks = 0","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n  // 21.1.3.11 String.prototype.match(regexp)\n  return [function match(regexp) {\n    'use strict';\n    var O = defined(this);\n    var fn = regexp == undefined ? undefined : regexp[MATCH];\n    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n  }, $match];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.match.js\n// module id = 185\n// module chunks = 0","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n  // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n  return [function replace(searchValue, replaceValue) {\n    'use strict';\n    var O = defined(this);\n    var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n    return fn !== undefined\n      ? fn.call(searchValue, O, replaceValue)\n      : $replace.call(String(O), searchValue, replaceValue);\n  }, $replace];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.replace.js\n// module id = 186\n// module chunks = 0","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n  // 21.1.3.15 String.prototype.search(regexp)\n  return [function search(regexp) {\n    'use strict';\n    var O = defined(this);\n    var fn = regexp == undefined ? undefined : regexp[SEARCH];\n    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n  }, $search];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.search.js\n// module id = 187\n// module chunks = 0","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n  'use strict';\n  var isRegExp = require('./_is-regexp');\n  var _split = $split;\n  var $push = [].push;\n  var $SPLIT = 'split';\n  var LENGTH = 'length';\n  var LAST_INDEX = 'lastIndex';\n  if (\n    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n    ''[$SPLIT](/.?/)[LENGTH]\n  ) {\n    var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n    // based on es5-shim implementation, need to rework it\n    $split = function (separator, limit) {\n      var string = String(this);\n      if (separator === undefined && limit === 0) return [];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) return _split.call(string, separator, limit);\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var separator2, match, lastIndex, lastLength, i;\n      // Doesn't need flags gy, but they don't hurt\n      if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n      while (match = separatorCopy.exec(string)) {\n        // `separatorCopy.lastIndex` is not reliable cross-browser\n        lastIndex = match.index + match[0][LENGTH];\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n          // eslint-disable-next-line no-loop-func\n          if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n            for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n          });\n          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n          lastLength = match[0][LENGTH];\n          lastLastIndex = lastIndex;\n          if (output[LENGTH] >= splitLimit) break;\n        }\n        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string[LENGTH]) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n    };\n  // Chakra, V8\n  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n    $split = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n    };\n  }\n  // 21.1.3.17 String.prototype.split(separator, limit)\n  return [function split(separator, limit) {\n    var O = defined(this);\n    var fn = separator == undefined ? undefined : separator[SPLIT];\n    return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n  }, $split];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.split.js\n// module id = 188\n// module chunks = 0","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n  return function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.anchor.js\n// module id = 189\n// module chunks = 0","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n  return function big() {\n    return createHTML(this, 'big', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.big.js\n// module id = 190\n// module chunks = 0","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n  return function blink() {\n    return createHTML(this, 'blink', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.blink.js\n// module id = 191\n// module chunks = 0","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n  return function bold() {\n    return createHTML(this, 'b', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.bold.js\n// module id = 192\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n  // 21.1.3.3 String.prototype.codePointAt(pos)\n  codePointAt: function codePointAt(pos) {\n    return $at(this, pos);\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.code-point-at.js\n// module id = 193\n// module chunks = 0","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = context(this, searchString, ENDS_WITH);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n    var search = String(searchString);\n    return $endsWith\n      ? $endsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.ends-with.js\n// module id = 194\n// module chunks = 0","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n  return function fixed() {\n    return createHTML(this, 'tt', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fixed.js\n// module id = 195\n// module chunks = 0","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n  return function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontcolor.js\n// module id = 196\n// module chunks = 0","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n  return function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontsize.js\n// module id = 197\n// module chunks = 0","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  // 21.1.2.2 String.fromCodePoint(...codePoints)\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n      );\n    } return res.join('');\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.from-code-point.js\n// module id = 198\n// module chunks = 0","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~context(this, searchString, INCLUDES)\n      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.includes.js\n// module id = 199\n// module chunks = 0","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n  return function italics() {\n    return createHTML(this, 'i', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.italics.js\n// module id = 200\n// module chunks = 0","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n  return function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.link.js\n// module id = 201\n// module chunks = 0","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n  // 21.1.2.4 String.raw(callSite, ...substitutions)\n  raw: function raw(callSite) {\n    var tpl = toIObject(callSite.raw);\n    var len = toLength(tpl.length);\n    var aLen = arguments.length;\n    var res = [];\n    var i = 0;\n    while (len > i) {\n      res.push(String(tpl[i++]));\n      if (i < aLen) res.push(String(arguments[i]));\n    } return res.join('');\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.raw.js\n// module id = 202\n// module chunks = 0","var $export = require('./_export');\n\n$export($export.P, 'String', {\n  // 21.1.3.13 String.prototype.repeat(count)\n  repeat: require('./_string-repeat')\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.repeat.js\n// module id = 203\n// module chunks = 0","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n  return function small() {\n    return createHTML(this, 'small', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.small.js\n// module id = 204\n// module chunks = 0","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.starts-with.js\n// module id = 205\n// module chunks = 0","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n  return function strike() {\n    return createHTML(this, 'strike', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.strike.js\n// module id = 206\n// module chunks = 0","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n  return function sub() {\n    return createHTML(this, 'sub', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sub.js\n// module id = 207\n// module chunks = 0","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n  return function sup() {\n    return createHTML(this, 'sup', '', '');\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sup.js\n// module id = 208\n// module chunks = 0","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n  return function trim() {\n    return $trim(this, 3);\n  };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.trim.js\n// module id = 209\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n  require('./_object-pie').f = $propertyIsEnumerable;\n  require('./_object-gops').f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !require('./_library')) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.symbol.js\n// module id = 210\n// module chunks = 0","var attrRE = /([\\w-]+)|=|(['\"])([.\\s\\S]*?)\\2/g;\nvar voidElements = require('void-elements');\n\nmodule.exports = function (tag) {\n    var i = 0;\n    var key;\n    var expectingValueAfterEquals = true;\n    var res = {\n        type: 'tag',\n        name: '',\n        voidElement: false,\n        attrs: {},\n        children: []\n    };\n\n    tag.replace(attrRE, function (match) {\n        if (match === '=') {\n            expectingValueAfterEquals = true;\n            i++;\n            return;\n        }\n\n        if (!expectingValueAfterEquals) {\n            if (key) {\n                res.attrs[key] = key; // boolean attribute\n            }\n            key=match;\n        } else {\n            if (i === 0) {\n                if (voidElements[match] || tag.charAt(tag.length - 2) === '/') {\n                    res.voidElement = true;\n                }\n                res.name = match;\n            } else {\n                res.attrs[key] = match.replace(/^['\"]|['\"]$/g, '');\n                key=undefined;\n            }\n        }\n        i++;\n        expectingValueAfterEquals = false;\n    });\n\n    return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-parse-stringify2/lib/parse-tag.js\n// module id = 211\n// module chunks = 0","/*jshint -W030 */\nvar tagRE = /(?:<!--[\\S\\s]*?-->|<(?:\"[^\"]*\"['\"]*|'[^']*'['\"]*|[^'\">])+>)/g;\nvar parseTag = require('./parse-tag');\n// re-used obj for quick lookups of components\nvar empty = Object.create ? Object.create(null) : {};\n// common logic for pushing a child node onto a list\nfunction pushTextNode(list, html, level, start, ignoreWhitespace) {\n    // calculate correct end of the content slice in case there's\n    // no tag after the text node.\n    var end = html.indexOf('<', start);\n    var content = html.slice(start, end === -1 ? undefined : end);\n    // if a node is nothing but whitespace, collapse it as the spec states:\n    // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n    if (/^\\s*$/.test(content)) {\n        content = ' ';\n    }\n    // don't add whitespace-only text nodes if they would be trailing text nodes\n    // or if they would be leading whitespace-only text nodes:\n    //  * end > -1 indicates this is not a trailing text node\n    //  * leading node is when level is -1 and list has length 0\n    if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {\n        list.push({\n            type: 'text',\n            content: content\n        });\n    }\n}\n\nmodule.exports = function parse(html, options) {\n    options || (options = {});\n    options.components || (options.components = empty);\n    var result = [];\n    var current;\n    var level = -1;\n    var arr = [];\n    var byTag = {};\n    var inComponent = false;\n\n    html.replace(tagRE, function (tag, index) {\n        if (inComponent) {\n            if (tag !== ('</' + current.name + '>')) {\n                return;\n            } else {\n                inComponent = false;\n            }\n        }\n\n        var isOpen = tag.charAt(1) !== '/';\n        var isComment = tag.indexOf('<!--') === 0;\n        var start = index + tag.length;\n        var nextChar = html.charAt(start);\n        var parent;\n\n        if (isOpen && !isComment) {\n            level++;\n\n            current = parseTag(tag);\n            if (current.type === 'tag' && options.components[current.name]) {\n                current.type = 'component';\n                inComponent = true;\n            }\n\n            if (!current.voidElement && !inComponent && nextChar && nextChar !== '<') {\n                pushTextNode(current.children, html, level, start, options.ignoreWhitespace);\n            }\n\n            byTag[current.tagName] = current;\n\n            // if we're at root, push new base node\n            if (level === 0) {\n                result.push(current);\n            }\n\n            parent = arr[level - 1];\n\n            if (parent) {\n                parent.children.push(current);\n            }\n\n            arr[level] = current;\n        }\n\n        if (isComment || !isOpen || current.voidElement) {\n            if (!isComment) {\n                level--;\n            }\n            if (!inComponent && nextChar !== '<' && nextChar) {\n                // trailing text node\n                // if we're at the root, push a base text node. otherwise add as\n                // a child to the current node.\n                parent = level === -1 ? result : arr[level].children;\n                pushTextNode(parent, html, level, start, options.ignoreWhitespace);\n            }\n        }\n    });\n\n    // If the \"html\" passed isn't actually html, add it as a text node.\n    if (!result.length && html.length) {\n        pushTextNode(result, html, 0, 0, options.ignoreWhitespace);\n    }\n\n    return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-parse-stringify2/lib/parse.js\n// module id = 212\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERRORS_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction injectable() {\n    return function (target) {\n        if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {\n            throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);\n        }\n        var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];\n        Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);\n        return target;\n    };\n}\nexports.injectable = injectable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/injectable.js\n// module id = 213\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction multiInject(serviceIdentifier) {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);\n        if (typeof index === \"number\") {\n            decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n        }\n        else {\n            decorator_utils_1.tagProperty(target, targetKey, metadata);\n        }\n    };\n}\nexports.multiInject = multiInject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/multi_inject.js\n// module id = 214\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction named(name) {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);\n        if (typeof index === \"number\") {\n            decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n        }\n        else {\n            decorator_utils_1.tagProperty(target, targetKey, metadata);\n        }\n    };\n}\nexports.named = named;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/named.js\n// module id = 215\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction optional() {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);\n        if (typeof index === \"number\") {\n            decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n        }\n        else {\n            decorator_utils_1.tagProperty(target, targetKey, metadata);\n        }\n    };\n}\nexports.optional = optional;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/optional.js\n// module id = 216\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERRORS_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nfunction postConstruct() {\n    return function (target, propertyKey, descriptor) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);\n        if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {\n            throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);\n        }\n        Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);\n    };\n}\nexports.postConstruct = postConstruct;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/post_construct.js\n// module id = 217\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction tagged(metadataKey, metadataValue) {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(metadataKey, metadataValue);\n        if (typeof index === \"number\") {\n            decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n        }\n        else {\n            decorator_utils_1.tagProperty(target, targetKey, metadata);\n        }\n    };\n}\nexports.tagged = tagged;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/tagged.js\n// module id = 218\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction targetName(name) {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);\n        decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n    };\n}\nexports.targetName = targetName;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/target_name.js\n// module id = 219\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction unmanaged() {\n    return function (target, targetKey, index) {\n        var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);\n        decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n    };\n}\nexports.unmanaged = unmanaged;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/annotation/unmanaged.js\n// module id = 220\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar guid_1 = require(\"../utils/guid\");\nvar Binding = (function () {\n    function Binding(serviceIdentifier, scope) {\n        this.guid = guid_1.guid();\n        this.activated = false;\n        this.serviceIdentifier = serviceIdentifier;\n        this.scope = scope;\n        this.type = literal_types_1.BindingTypeEnum.Invalid;\n        this.constraint = function (request) { return true; };\n        this.implementationType = null;\n        this.cache = null;\n        this.factory = null;\n        this.provider = null;\n        this.onActivation = null;\n        this.dynamicValue = null;\n    }\n    Binding.prototype.clone = function () {\n        var clone = new Binding(this.serviceIdentifier, this.scope);\n        clone.activated = false;\n        clone.implementationType = this.implementationType;\n        clone.dynamicValue = this.dynamicValue;\n        clone.scope = this.scope;\n        clone.type = this.type;\n        clone.factory = this.factory;\n        clone.provider = this.provider;\n        clone.constraint = this.constraint;\n        clone.onActivation = this.onActivation;\n        clone.cache = this.cache;\n        return clone;\n    };\n    return Binding;\n}());\nexports.Binding = Binding;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/bindings/binding.js\n// module id = 221\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BindingCount = {\n    MultipleBindingsAvailable: 2,\n    NoBindingsAvailable: 0,\n    OnlyOneBindingAvailable: 1\n};\nexports.BindingCount = BindingCount;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/bindings/binding_count.js\n// module id = 222\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_1 = require(\"../bindings/binding\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_reader_1 = require(\"../planning/metadata_reader\");\nvar planner_1 = require(\"../planning/planner\");\nvar resolver_1 = require(\"../resolution/resolver\");\nvar binding_to_syntax_1 = require(\"../syntax/binding_to_syntax\");\nvar guid_1 = require(\"../utils/guid\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar container_snapshot_1 = require(\"./container_snapshot\");\nvar lookup_1 = require(\"./lookup\");\nvar Container = (function () {\n    function Container(containerOptions) {\n        if (containerOptions !== undefined) {\n            if (typeof containerOptions !== \"object\") {\n                throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);\n            }\n            else {\n                if (containerOptions.defaultScope !== undefined &&\n                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Singleton &&\n                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Transient &&\n                    containerOptions.defaultScope !== literal_types_1.BindingScopeEnum.Request) {\n                    throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);\n                }\n                if (containerOptions.autoBindInjectable !== undefined &&\n                    typeof containerOptions.autoBindInjectable !== \"boolean\") {\n                    throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);\n                }\n            }\n            this.options = {\n                autoBindInjectable: containerOptions.autoBindInjectable,\n                defaultScope: containerOptions.defaultScope\n            };\n        }\n        else {\n            this.options = {\n                autoBindInjectable: false,\n                defaultScope: literal_types_1.BindingScopeEnum.Transient\n            };\n        }\n        this.guid = guid_1.guid();\n        this._bindingDictionary = new lookup_1.Lookup();\n        this._snapshots = [];\n        this._middleware = null;\n        this.parent = null;\n        this._metadataReader = new metadata_reader_1.MetadataReader();\n    }\n    Container.merge = function (container1, container2) {\n        var container = new Container();\n        var bindingDictionary = planner_1.getBindingDictionary(container);\n        var bindingDictionary1 = planner_1.getBindingDictionary(container1);\n        var bindingDictionary2 = planner_1.getBindingDictionary(container2);\n        function copyDictionary(origin, destination) {\n            origin.traverse(function (key, value) {\n                value.forEach(function (binding) {\n                    destination.add(binding.serviceIdentifier, binding.clone());\n                });\n            });\n        }\n        copyDictionary(bindingDictionary1, bindingDictionary);\n        copyDictionary(bindingDictionary2, bindingDictionary);\n        return container;\n    };\n    Container.prototype.load = function () {\n        var _this = this;\n        var modules = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            modules[_i] = arguments[_i];\n        }\n        var setModuleId = function (bindingToSyntax, moduleId) {\n            bindingToSyntax._binding.moduleId = moduleId;\n        };\n        var getBindFunction = function (moduleId) {\n            return function (serviceIdentifier) {\n                var bindingToSyntax = _this.bind.call(_this, serviceIdentifier);\n                setModuleId(bindingToSyntax, moduleId);\n                return bindingToSyntax;\n            };\n        };\n        var getUnbindFunction = function (moduleId) {\n            return function (serviceIdentifier) {\n                var _unbind = _this.unbind.bind(_this);\n                _unbind(serviceIdentifier);\n            };\n        };\n        var getIsboundFunction = function (moduleId) {\n            return function (serviceIdentifier) {\n                var _isBound = _this.isBound.bind(_this);\n                return _isBound(serviceIdentifier);\n            };\n        };\n        var getRebindFunction = function (moduleId) {\n            return function (serviceIdentifier) {\n                var bindingToSyntax = _this.rebind.call(_this, serviceIdentifier);\n                setModuleId(bindingToSyntax, moduleId);\n                return bindingToSyntax;\n            };\n        };\n        modules.forEach(function (module) {\n            var bindFunction = getBindFunction(module.guid);\n            var unbindFunction = getUnbindFunction(module.guid);\n            var isboundFunction = getIsboundFunction(module.guid);\n            var rebindFunction = getRebindFunction(module.guid);\n            module.registry(bindFunction, unbindFunction, isboundFunction, rebindFunction);\n        });\n    };\n    Container.prototype.unload = function () {\n        var _this = this;\n        var modules = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            modules[_i] = arguments[_i];\n        }\n        var conditionFactory = function (expected) { return function (item) {\n            return item.moduleId === expected;\n        }; };\n        modules.forEach(function (module) {\n            var condition = conditionFactory(module.guid);\n            _this._bindingDictionary.removeByCondition(condition);\n        });\n    };\n    Container.prototype.bind = function (serviceIdentifier) {\n        var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;\n        var binding = new binding_1.Binding(serviceIdentifier, scope);\n        this._bindingDictionary.add(serviceIdentifier, binding);\n        return new binding_to_syntax_1.BindingToSyntax(binding);\n    };\n    Container.prototype.rebind = function (serviceIdentifier) {\n        this.unbind(serviceIdentifier);\n        return this.bind(serviceIdentifier);\n    };\n    Container.prototype.unbind = function (serviceIdentifier) {\n        try {\n            this._bindingDictionary.remove(serviceIdentifier);\n        }\n        catch (e) {\n            throw new Error(ERROR_MSGS.CANNOT_UNBIND + \" \" + serialization_1.getServiceIdentifierAsString(serviceIdentifier));\n        }\n    };\n    Container.prototype.unbindAll = function () {\n        this._bindingDictionary = new lookup_1.Lookup();\n    };\n    Container.prototype.isBound = function (serviceIdentifier) {\n        var bound = this._bindingDictionary.hasKey(serviceIdentifier);\n        if (!bound && this.parent) {\n            bound = this.parent.isBound(serviceIdentifier);\n        }\n        return bound;\n    };\n    Container.prototype.isBoundNamed = function (serviceIdentifier, named) {\n        return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n    };\n    Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {\n        var bound = false;\n        if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n            var bindings = this._bindingDictionary.get(serviceIdentifier);\n            var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);\n            bound = bindings.some(function (b) { return b.constraint(request_1); });\n        }\n        if (!bound && this.parent) {\n            bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n        }\n        return bound;\n    };\n    Container.prototype.snapshot = function () {\n        this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));\n    };\n    Container.prototype.restore = function () {\n        var snapshot = this._snapshots.pop();\n        if (snapshot === undefined) {\n            throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);\n        }\n        this._bindingDictionary = snapshot.bindings;\n        this._middleware = snapshot.middleware;\n    };\n    Container.prototype.createChild = function () {\n        var child = new Container();\n        child.parent = this;\n        return child;\n    };\n    Container.prototype.applyMiddleware = function () {\n        var middlewares = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            middlewares[_i] = arguments[_i];\n        }\n        var initial = (this._middleware) ? this._middleware : this._planAndResolve();\n        this._middleware = middlewares.reduce(function (prev, curr) { return curr(prev); }, initial);\n    };\n    Container.prototype.applyCustomMetadataReader = function (metadataReader) {\n        this._metadataReader = metadataReader;\n    };\n    Container.prototype.get = function (serviceIdentifier) {\n        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);\n    };\n    Container.prototype.getTagged = function (serviceIdentifier, key, value) {\n        return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);\n    };\n    Container.prototype.getNamed = function (serviceIdentifier, named) {\n        return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n    };\n    Container.prototype.getAll = function (serviceIdentifier) {\n        return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);\n    };\n    Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {\n        return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);\n    };\n    Container.prototype.getAllNamed = function (serviceIdentifier, named) {\n        return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n    };\n    Container.prototype.resolve = function (constructorFunction) {\n        var tempContainer = new Container();\n        tempContainer.bind(constructorFunction).toSelf();\n        tempContainer.parent = this;\n        return tempContainer.get(constructorFunction);\n    };\n    Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {\n        var result = null;\n        var defaultArgs = {\n            avoidConstraints: avoidConstraints,\n            contextInterceptor: function (context) { return context; },\n            isMultiInject: isMultiInject,\n            key: key,\n            serviceIdentifier: serviceIdentifier,\n            targetType: targetType,\n            value: value\n        };\n        if (this._middleware) {\n            result = this._middleware(defaultArgs);\n            if (result === undefined || result === null) {\n                throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n            }\n        }\n        else {\n            result = this._planAndResolve()(defaultArgs);\n        }\n        return result;\n    };\n    Container.prototype._planAndResolve = function () {\n        var _this = this;\n        return function (args) {\n            var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);\n            context = args.contextInterceptor(context);\n            var result = resolver_1.resolve(context);\n            return result;\n        };\n    };\n    return Container;\n}());\nexports.Container = Container;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/container/container.js\n// module id = 223\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar guid_1 = require(\"../utils/guid\");\nvar ContainerModule = (function () {\n    function ContainerModule(registry) {\n        this.guid = guid_1.guid();\n        this.registry = registry;\n    }\n    return ContainerModule;\n}());\nexports.ContainerModule = ContainerModule;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/container/container_module.js\n// module id = 224\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ContainerSnapshot = (function () {\n    function ContainerSnapshot() {\n    }\n    ContainerSnapshot.of = function (bindings, middleware) {\n        var snapshot = new ContainerSnapshot();\n        snapshot.bindings = bindings;\n        snapshot.middleware = middleware;\n        return snapshot;\n    };\n    return ContainerSnapshot;\n}());\nexports.ContainerSnapshot = ContainerSnapshot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/container/container_snapshot.js\n// module id = 225\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar Lookup = (function () {\n    function Lookup() {\n        this._map = new Map();\n    }\n    Lookup.prototype.getMap = function () {\n        return this._map;\n    };\n    Lookup.prototype.add = function (serviceIdentifier, value) {\n        if (serviceIdentifier === null || serviceIdentifier === undefined) {\n            throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n        }\n        if (value === null || value === undefined) {\n            throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n        }\n        var entry = this._map.get(serviceIdentifier);\n        if (entry !== undefined) {\n            entry.push(value);\n            this._map.set(serviceIdentifier, entry);\n        }\n        else {\n            this._map.set(serviceIdentifier, [value]);\n        }\n    };\n    Lookup.prototype.get = function (serviceIdentifier) {\n        if (serviceIdentifier === null || serviceIdentifier === undefined) {\n            throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n        }\n        var entry = this._map.get(serviceIdentifier);\n        if (entry !== undefined) {\n            return entry;\n        }\n        else {\n            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n        }\n    };\n    Lookup.prototype.remove = function (serviceIdentifier) {\n        if (serviceIdentifier === null || serviceIdentifier === undefined) {\n            throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n        }\n        if (!this._map.delete(serviceIdentifier)) {\n            throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n        }\n    };\n    Lookup.prototype.removeByCondition = function (condition) {\n        var _this = this;\n        this._map.forEach(function (entries, key) {\n            var updatedEntries = entries.filter(function (entry) { return !condition(entry); });\n            if (updatedEntries.length > 0) {\n                _this._map.set(key, updatedEntries);\n            }\n            else {\n                _this._map.delete(key);\n            }\n        });\n    };\n    Lookup.prototype.hasKey = function (serviceIdentifier) {\n        if (serviceIdentifier === null || serviceIdentifier === undefined) {\n            throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n        }\n        return this._map.has(serviceIdentifier);\n    };\n    Lookup.prototype.clone = function () {\n        var copy = new Lookup();\n        this._map.forEach(function (value, key) {\n            value.forEach(function (b) { return copy.add(key, b.clone()); });\n        });\n        return copy;\n    };\n    Lookup.prototype.traverse = function (func) {\n        this._map.forEach(function (value, key) {\n            func(key, value);\n        });\n    };\n    return Lookup;\n}());\nexports.Lookup = Lookup;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/container/lookup.js\n// module id = 226\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar guid_1 = require(\"../utils/guid\");\nvar Context = (function () {\n    function Context(container) {\n        this.guid = guid_1.guid();\n        this.container = container;\n    }\n    Context.prototype.addPlan = function (plan) {\n        this.plan = plan;\n    };\n    Context.prototype.setCurrentRequest = function (currentRequest) {\n        this.currentRequest = currentRequest;\n    };\n    return Context;\n}());\nexports.Context = Context;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/context.js\n// module id = 227\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Plan = (function () {\n    function Plan(parentContext, rootRequest) {\n        this.parentContext = parentContext;\n        this.rootRequest = rootRequest;\n    }\n    return Plan;\n}());\nexports.Plan = Plan;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/plan.js\n// module id = 228\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_count_1 = require(\"../bindings/binding_count\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar exceptions_1 = require(\"../utils/exceptions\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar context_1 = require(\"./context\");\nvar metadata_1 = require(\"./metadata\");\nvar plan_1 = require(\"./plan\");\nvar reflection_utils_1 = require(\"./reflection_utils\");\nvar request_1 = require(\"./request\");\nvar target_1 = require(\"./target\");\nfunction getBindingDictionary(cntnr) {\n    return cntnr._bindingDictionary;\n}\nexports.getBindingDictionary = getBindingDictionary;\nfunction _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {\n    var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;\n    var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);\n    var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);\n    if (key !== undefined) {\n        var tagMetadata = new metadata_1.Metadata(key, value);\n        target.metadata.push(tagMetadata);\n    }\n    return target;\n}\nfunction _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {\n    var bindings = getBindings(context.container, target.serviceIdentifier);\n    var activeBindings = [];\n    if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable &&\n        context.container.options.autoBindInjectable &&\n        typeof target.serviceIdentifier === \"function\" &&\n        metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {\n        context.container.bind(target.serviceIdentifier).toSelf();\n        bindings = getBindings(context.container, target.serviceIdentifier);\n    }\n    if (!avoidConstraints) {\n        activeBindings = bindings.filter(function (binding) {\n            var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);\n            return binding.constraint(request);\n        });\n    }\n    else {\n        activeBindings = bindings;\n    }\n    _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);\n    return activeBindings;\n}\nfunction _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {\n    switch (bindings.length) {\n        case binding_count_1.BindingCount.NoBindingsAvailable:\n            if (target.isOptional()) {\n                return bindings;\n            }\n            else {\n                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);\n                var msg = ERROR_MSGS.NOT_REGISTERED;\n                msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);\n                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n                throw new Error(msg);\n            }\n        case binding_count_1.BindingCount.OnlyOneBindingAvailable:\n            if (!target.isArray()) {\n                return bindings;\n            }\n        case binding_count_1.BindingCount.MultipleBindingsAvailable:\n        default:\n            if (!target.isArray()) {\n                var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);\n                var msg = ERROR_MSGS.AMBIGUOUS_MATCH + \" \" + serviceIdentifierString;\n                msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n                throw new Error(msg);\n            }\n            else {\n                return bindings;\n            }\n    }\n}\nfunction _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {\n    var activeBindings;\n    var childRequest;\n    if (parentRequest === null) {\n        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);\n        childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);\n        var thePlan = new plan_1.Plan(context, childRequest);\n        context.addPlan(thePlan);\n    }\n    else {\n        activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);\n        childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);\n    }\n    activeBindings.forEach(function (binding) {\n        var subChildRequest = null;\n        if (target.isArray()) {\n            subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);\n        }\n        else {\n            if (binding.cache) {\n                return;\n            }\n            subChildRequest = childRequest;\n        }\n        if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {\n            var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);\n            dependencies.forEach(function (dependency) {\n                _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);\n            });\n        }\n    });\n}\nfunction getBindings(container, serviceIdentifier) {\n    var bindings = [];\n    var bindingDictionary = getBindingDictionary(container);\n    if (bindingDictionary.hasKey(serviceIdentifier)) {\n        bindings = bindingDictionary.get(serviceIdentifier);\n    }\n    else if (container.parent !== null) {\n        bindings = getBindings(container.parent, serviceIdentifier);\n    }\n    return bindings;\n}\nfunction plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {\n    if (avoidConstraints === void 0) { avoidConstraints = false; }\n    var context = new context_1.Context(container);\n    var target = _createTarget(isMultiInject, targetType, serviceIdentifier, \"\", key, value);\n    try {\n        _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);\n        return context;\n    }\n    catch (error) {\n        if (exceptions_1.isStackOverflowExeption(error)) {\n            if (context.plan) {\n                serialization_1.circularDependencyToException(context.plan.rootRequest);\n            }\n        }\n        throw error;\n    }\n}\nexports.plan = plan;\nfunction createMockRequest(container, serviceIdentifier, key, value) {\n    var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, \"\", serviceIdentifier, new metadata_1.Metadata(key, value));\n    var context = new context_1.Context(container);\n    var request = new request_1.Request(serviceIdentifier, context, null, [], target);\n    return request;\n}\nexports.createMockRequest = createMockRequest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/planner.js\n// module id = 229\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar QueryableString = (function () {\n    function QueryableString(str) {\n        this.str = str;\n    }\n    QueryableString.prototype.startsWith = function (searchString) {\n        return this.str.indexOf(searchString) === 0;\n    };\n    QueryableString.prototype.endsWith = function (searchString) {\n        var reverseString = \"\";\n        var reverseSearchString = searchString.split(\"\").reverse().join(\"\");\n        reverseString = this.str.split(\"\").reverse().join(\"\");\n        return this.startsWith.call({ str: reverseString }, reverseSearchString);\n    };\n    QueryableString.prototype.contains = function (searchString) {\n        return (this.str.indexOf(searchString) !== -1);\n    };\n    QueryableString.prototype.equals = function (compareString) {\n        return this.str === compareString;\n    };\n    QueryableString.prototype.value = function () {\n        return this.str;\n    };\n    return QueryableString;\n}());\nexports.QueryableString = QueryableString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/queryable_string.js\n// module id = 230\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inject_1 = require(\"../annotation/inject\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar target_1 = require(\"./target\");\nfunction getDependencies(metadataReader, func) {\n    var constructorName = serialization_1.getFunctionName(func);\n    var targets = getTargets(metadataReader, constructorName, func, false);\n    return targets;\n}\nexports.getDependencies = getDependencies;\nfunction getTargets(metadataReader, constructorName, func, isBaseClass) {\n    var metadata = metadataReader.getConstructorMetadata(func);\n    var serviceIdentifiers = metadata.compilerGeneratedMetadata;\n    if (serviceIdentifiers === undefined) {\n        var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + \" \" + constructorName + \".\";\n        throw new Error(msg);\n    }\n    var constructorArgsMetadata = metadata.userGeneratedMetadata;\n    var keys = Object.keys(constructorArgsMetadata);\n    var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);\n    var iterations = (hasUserDeclaredUnknownInjections) ? keys.length : func.length;\n    var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);\n    var propertyTargets = getClassPropsAsTargets(metadataReader, func);\n    var targets = constructorTargets.concat(propertyTargets);\n    var baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, func);\n    if (targets.length < baseClassDependencyCount) {\n        var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_1 +\n            constructorName + ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_2;\n        throw new Error(error);\n    }\n    return targets;\n}\nfunction getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {\n    var targetMetadata = constructorArgsMetadata[index.toString()] || [];\n    var metadata = formatTargetMetadata(targetMetadata);\n    var isManaged = metadata.unmanaged !== true;\n    var serviceIdentifier = serviceIdentifiers[index];\n    var injectIdentifier = (metadata.inject || metadata.multiInject);\n    serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;\n    if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {\n        serviceIdentifier = serviceIdentifier.unwrap();\n    }\n    if (isManaged) {\n        var isObject = serviceIdentifier === Object;\n        var isFunction = serviceIdentifier === Function;\n        var isUndefined = serviceIdentifier === undefined;\n        var isUnknownType = (isObject || isFunction || isUndefined);\n        if (!isBaseClass && isUnknownType) {\n            var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + \" argument \" + index + \" in class \" + constructorName + \".\";\n            throw new Error(msg);\n        }\n        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);\n        target.metadata = targetMetadata;\n        return target;\n    }\n    return null;\n}\nfunction getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {\n    var targets = [];\n    for (var i = 0; i < iterations; i++) {\n        var index = i;\n        var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);\n        if (target !== null) {\n            targets.push(target);\n        }\n    }\n    return targets;\n}\nfunction getClassPropsAsTargets(metadataReader, constructorFunc) {\n    var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);\n    var targets = [];\n    var keys = Object.keys(classPropsMetadata);\n    for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n        var key = keys_1[_i];\n        var targetMetadata = classPropsMetadata[key];\n        var metadata = formatTargetMetadata(classPropsMetadata[key]);\n        var targetName = metadata.targetName || key;\n        var serviceIdentifier = (metadata.inject || metadata.multiInject);\n        var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);\n        target.metadata = targetMetadata;\n        targets.push(target);\n    }\n    var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;\n    if (baseConstructor !== Object) {\n        var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);\n        targets = targets.concat(baseTargets);\n    }\n    return targets;\n}\nfunction getBaseClassDependencyCount(metadataReader, func) {\n    var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;\n    if (baseConstructor !== Object) {\n        var baseConstructorName = serialization_1.getFunctionName(baseConstructor);\n        var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);\n        var metadata = targets.map(function (t) {\n            return t.metadata.filter(function (m) {\n                return m.key === METADATA_KEY.UNMANAGED_TAG;\n            });\n        });\n        var unmanagedCount = [].concat.apply([], metadata).length;\n        var dependencyCount = targets.length - unmanagedCount;\n        if (dependencyCount > 0) {\n            return dependencyCount;\n        }\n        else {\n            return getBaseClassDependencyCount(metadataReader, baseConstructor);\n        }\n    }\n    else {\n        return 0;\n    }\n}\nfunction formatTargetMetadata(targetMetadata) {\n    var targetMetadataMap = {};\n    targetMetadata.forEach(function (m) {\n        targetMetadataMap[m.key.toString()] = m.value;\n    });\n    return {\n        inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],\n        multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],\n        targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],\n        unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]\n    };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/reflection_utils.js\n// module id = 231\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar guid_1 = require(\"../utils/guid\");\nvar Request = (function () {\n    function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {\n        this.guid = guid_1.guid();\n        this.serviceIdentifier = serviceIdentifier;\n        this.parentContext = parentContext;\n        this.parentRequest = parentRequest;\n        this.target = target;\n        this.childRequests = [];\n        this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);\n        this.requestScope = parentRequest === null\n            ? new Map()\n            : null;\n    }\n    Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {\n        var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);\n        this.childRequests.push(child);\n        return child;\n    };\n    return Request;\n}());\nexports.Request = Request;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/planning/request.js\n// module id = 232\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar error_msgs_1 = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction _injectProperties(instance, childRequests, resolveRequest) {\n    var propertyInjectionsRequests = childRequests.filter(function (childRequest) {\n        return (childRequest.target !== null &&\n            childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty);\n    });\n    var propertyInjections = propertyInjectionsRequests.map(resolveRequest);\n    propertyInjectionsRequests.forEach(function (r, index) {\n        var propertyName = \"\";\n        propertyName = r.target.name.value();\n        var injection = propertyInjections[index];\n        instance[propertyName] = injection;\n    });\n    return instance;\n}\nfunction _createInstance(Func, injections) {\n    return new (Func.bind.apply(Func, [void 0].concat(injections)))();\n}\nfunction _postConstruct(constr, result) {\n    if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {\n        var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);\n        try {\n            result[data.value]();\n        }\n        catch (e) {\n            throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));\n        }\n    }\n}\nfunction resolveInstance(constr, childRequests, resolveRequest) {\n    var result = null;\n    if (childRequests.length > 0) {\n        var constructorInjectionsRequests = childRequests.filter(function (childRequest) {\n            return (childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument);\n        });\n        var constructorInjections = constructorInjectionsRequests.map(resolveRequest);\n        result = _createInstance(constr, constructorInjections);\n        result = _injectProperties(result, childRequests, resolveRequest);\n    }\n    else {\n        result = new constr();\n    }\n    _postConstruct(constr, result);\n    return result;\n}\nexports.resolveInstance = resolveInstance;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/resolution/instantiation.js\n// module id = 233\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar exceptions_1 = require(\"../utils/exceptions\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar instantiation_1 = require(\"./instantiation\");\nvar invokeFactory = function (factoryType, serviceIdentifier, fn) {\n    try {\n        return fn();\n    }\n    catch (error) {\n        if (exceptions_1.isStackOverflowExeption(error)) {\n            throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));\n        }\n        else {\n            throw error;\n        }\n    }\n};\nvar _resolveRequest = function (requestScope) {\n    return function (request) {\n        request.parentContext.setCurrentRequest(request);\n        var bindings = request.bindings;\n        var childRequests = request.childRequests;\n        var targetIsAnArray = request.target && request.target.isArray();\n        var targetParentIsNotAnArray = !request.parentRequest ||\n            !request.parentRequest.target ||\n            !request.target ||\n            !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n        if (targetIsAnArray && targetParentIsNotAnArray) {\n            return childRequests.map(function (childRequest) {\n                var _f = _resolveRequest(requestScope);\n                return _f(childRequest);\n            });\n        }\n        else {\n            var result = null;\n            if (request.target.isOptional() && bindings.length === 0) {\n                return undefined;\n            }\n            var binding_1 = bindings[0];\n            var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;\n            var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;\n            if (isSingleton && binding_1.activated) {\n                return binding_1.cache;\n            }\n            if (isRequestSingleton &&\n                requestScope !== null &&\n                requestScope.has(binding_1.guid)) {\n                return requestScope.get(binding_1.guid);\n            }\n            if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {\n                result = binding_1.cache;\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {\n                result = binding_1.cache;\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {\n                result = binding_1.implementationType;\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {\n                result = invokeFactory(\"toDynamicValue\", binding_1.serviceIdentifier, function () { return binding_1.dynamicValue(request.parentContext); });\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {\n                result = invokeFactory(\"toFactory\", binding_1.serviceIdentifier, function () { return binding_1.factory(request.parentContext); });\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {\n                result = invokeFactory(\"toProvider\", binding_1.serviceIdentifier, function () { return binding_1.provider(request.parentContext); });\n            }\n            else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {\n                result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));\n            }\n            else {\n                var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);\n                throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + \" \" + serviceIdentifier);\n            }\n            if (typeof binding_1.onActivation === \"function\") {\n                result = binding_1.onActivation(request.parentContext, result);\n            }\n            if (isSingleton) {\n                binding_1.cache = result;\n                binding_1.activated = true;\n            }\n            if (isRequestSingleton &&\n                requestScope !== null &&\n                !requestScope.has(binding_1.guid)) {\n                requestScope.set(binding_1.guid, result);\n            }\n            return result;\n        }\n    };\n};\nfunction resolve(context) {\n    var _f = _resolveRequest(context.plan.rootRequest.requestScope);\n    return _f(context.plan.rootRequest);\n}\nexports.resolve = resolve;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/resolution/resolver.js\n// module id = 234\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar binding_when_on_syntax_1 = require(\"./binding_when_on_syntax\");\nvar BindingInSyntax = (function () {\n    function BindingInSyntax(binding) {\n        this._binding = binding;\n    }\n    BindingInSyntax.prototype.inRequestScope = function () {\n        this._binding.scope = literal_types_1.BindingScopeEnum.Request;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingInSyntax.prototype.inSingletonScope = function () {\n        this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingInSyntax.prototype.inTransientScope = function () {\n        this._binding.scope = literal_types_1.BindingScopeEnum.Transient;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    return BindingInSyntax;\n}());\nexports.BindingInSyntax = BindingInSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_in_syntax.js\n// module id = 235\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_in_syntax_1 = require(\"./binding_in_syntax\");\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingInWhenOnSyntax = (function () {\n    function BindingInWhenOnSyntax(binding) {\n        this._binding = binding;\n        this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n        this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);\n        this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);\n    }\n    BindingInWhenOnSyntax.prototype.inRequestScope = function () {\n        return this._bindingInSyntax.inRequestScope();\n    };\n    BindingInWhenOnSyntax.prototype.inSingletonScope = function () {\n        return this._bindingInSyntax.inSingletonScope();\n    };\n    BindingInWhenOnSyntax.prototype.inTransientScope = function () {\n        return this._bindingInSyntax.inTransientScope();\n    };\n    BindingInWhenOnSyntax.prototype.when = function (constraint) {\n        return this._bindingWhenSyntax.when(constraint);\n    };\n    BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {\n        return this._bindingWhenSyntax.whenTargetNamed(name);\n    };\n    BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {\n        return this._bindingWhenSyntax.whenTargetIsDefault();\n    };\n    BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n    };\n    BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\n        return this._bindingWhenSyntax.whenInjectedInto(parent);\n    };\n    BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {\n        return this._bindingWhenSyntax.whenParentNamed(name);\n    };\n    BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenParentTagged(tag, value);\n    };\n    BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n        return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n    };\n    BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n        return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n    };\n    BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\n        return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n    };\n    BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n    };\n    BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\n        return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n    };\n    BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n        return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n    };\n    BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n        return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n    };\n    BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n        return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n    };\n    BindingInWhenOnSyntax.prototype.onActivation = function (handler) {\n        return this._bindingOnSyntax.onActivation(handler);\n    };\n    return BindingInWhenOnSyntax;\n}());\nexports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_in_when_on_syntax.js\n// module id = 236\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar binding_in_when_on_syntax_1 = require(\"./binding_in_when_on_syntax\");\nvar binding_when_on_syntax_1 = require(\"./binding_when_on_syntax\");\nvar BindingToSyntax = (function () {\n    function BindingToSyntax(binding) {\n        this._binding = binding;\n    }\n    BindingToSyntax.prototype.to = function (constructor) {\n        this._binding.type = literal_types_1.BindingTypeEnum.Instance;\n        this._binding.implementationType = constructor;\n        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toSelf = function () {\n        if (typeof this._binding.serviceIdentifier !== \"function\") {\n            throw new Error(\"\" + ERROR_MSGS.INVALID_TO_SELF_VALUE);\n        }\n        var self = this._binding.serviceIdentifier;\n        return this.to(self);\n    };\n    BindingToSyntax.prototype.toConstantValue = function (value) {\n        this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;\n        this._binding.cache = value;\n        this._binding.dynamicValue = null;\n        this._binding.implementationType = null;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toDynamicValue = function (func) {\n        this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;\n        this._binding.cache = null;\n        this._binding.dynamicValue = func;\n        this._binding.implementationType = null;\n        return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toConstructor = function (constructor) {\n        this._binding.type = literal_types_1.BindingTypeEnum.Constructor;\n        this._binding.implementationType = constructor;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toFactory = function (factory) {\n        this._binding.type = literal_types_1.BindingTypeEnum.Factory;\n        this._binding.factory = factory;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toFunction = function (func) {\n        if (typeof func !== \"function\") {\n            throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);\n        }\n        var bindingWhenOnSyntax = this.toConstantValue(func);\n        this._binding.type = literal_types_1.BindingTypeEnum.Function;\n        return bindingWhenOnSyntax;\n    };\n    BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {\n        this._binding.type = literal_types_1.BindingTypeEnum.Factory;\n        this._binding.factory = function (context) {\n            var autofactory = function () { return context.container.get(serviceIdentifier); };\n            return autofactory;\n        };\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toProvider = function (provider) {\n        this._binding.type = literal_types_1.BindingTypeEnum.Provider;\n        this._binding.provider = provider;\n        return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n    };\n    BindingToSyntax.prototype.toService = function (service) {\n        this.toDynamicValue(function (context) { return context.container.get(service); });\n    };\n    return BindingToSyntax;\n}());\nexports.BindingToSyntax = BindingToSyntax;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/syntax/binding_to_syntax.js\n// module id = 237\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.multiBindToService = function (container) {\n    return function (service) {\n        return function () {\n            var types = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                types[_i] = arguments[_i];\n            }\n            return types.forEach(function (t) { return container.bind(t).toService(service); });\n        };\n    };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inversify/lib/utils/binding_utils.js\n// module id = 238\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 239\n// module chunks = 0","\"use strict\";\n;\n;\n;\nvar isWebSocket = function (constructor) {\n    return constructor && constructor.CLOSING === 2;\n};\nvar isGlobalWebSocket = function () {\n    return typeof WebSocket !== 'undefined' && isWebSocket(WebSocket);\n};\nvar getDefaultOptions = function () { return ({\n    constructor: isGlobalWebSocket() ? WebSocket : null,\n    maxReconnectionDelay: 10000,\n    minReconnectionDelay: 1500,\n    reconnectionDelayGrowFactor: 1.3,\n    connectionTimeout: 4000,\n    maxRetries: Infinity,\n    debug: false,\n}); };\nvar bypassProperty = function (src, dst, name) {\n    Object.defineProperty(dst, name, {\n        get: function () { return src[name]; },\n        set: function (value) { src[name] = value; },\n        enumerable: true,\n        configurable: true,\n    });\n};\nvar initReconnectionDelay = function (config) {\n    return (config.minReconnectionDelay + Math.random() * config.minReconnectionDelay);\n};\nvar updateReconnectionDelay = function (config, previousDelay) {\n    var newDelay = previousDelay * config.reconnectionDelayGrowFactor;\n    return (newDelay > config.maxReconnectionDelay)\n        ? config.maxReconnectionDelay\n        : newDelay;\n};\nvar LEVEL_0_EVENTS = ['onopen', 'onclose', 'onmessage', 'onerror'];\nvar reassignEventListeners = function (ws, oldWs, listeners) {\n    Object.keys(listeners).forEach(function (type) {\n        listeners[type].forEach(function (_a) {\n            var listener = _a[0], options = _a[1];\n            ws.addEventListener(type, listener, options);\n        });\n    });\n    if (oldWs) {\n        LEVEL_0_EVENTS.forEach(function (name) {\n            ws[name] = oldWs[name];\n        });\n    }\n};\nvar ReconnectingWebsocket = function (url, protocols, options) {\n    var _this = this;\n    if (options === void 0) { options = {}; }\n    var ws;\n    var connectingTimeout;\n    var reconnectDelay = 0;\n    var retriesCount = 0;\n    var shouldRetry = true;\n    var savedOnClose = null;\n    var listeners = {};\n    // require new to construct\n    if (!(this instanceof ReconnectingWebsocket)) {\n        throw new TypeError(\"Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator\");\n    }\n    // Set config. Not using `Object.assign` because of IE11\n    var config = getDefaultOptions();\n    Object.keys(config)\n        .filter(function (key) { return options.hasOwnProperty(key); })\n        .forEach(function (key) { return config[key] = options[key]; });\n    if (!isWebSocket(config.constructor)) {\n        throw new TypeError('Invalid WebSocket constructor. Set `options.constructor`');\n    }\n    var log = config.debug ? function () {\n        var params = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            params[_i] = arguments[_i];\n        }\n        return console.log.apply(console, ['RWS:'].concat(params));\n    } : function () { };\n    /**\n     * Not using dispatchEvent, otherwise we must use a DOM Event object\n     * Deferred because we want to handle the close event before this\n     */\n    var emitError = function (code, msg) { return setTimeout(function () {\n        var err = new Error(msg);\n        err.code = code;\n        if (Array.isArray(listeners.error)) {\n            listeners.error.forEach(function (_a) {\n                var fn = _a[0];\n                return fn(err);\n            });\n        }\n        if (ws.onerror) {\n            ws.onerror(err);\n        }\n    }, 0); };\n    var handleClose = function () {\n        log('handleClose', { shouldRetry: shouldRetry });\n        retriesCount++;\n        log('retries count:', retriesCount);\n        if (retriesCount > config.maxRetries) {\n            emitError('EHOSTDOWN', 'Too many failed connection attempts');\n            return;\n        }\n        if (!reconnectDelay) {\n            reconnectDelay = initReconnectionDelay(config);\n        }\n        else {\n            reconnectDelay = updateReconnectionDelay(config, reconnectDelay);\n        }\n        log('handleClose - reconnectDelay:', reconnectDelay);\n        if (shouldRetry) {\n            setTimeout(connect, reconnectDelay);\n        }\n    };\n    var connect = function () {\n        if (!shouldRetry) {\n            return;\n        }\n        log('connect');\n        var oldWs = ws;\n        var wsUrl = (typeof url === 'function') ? url() : url;\n        ws = new config.constructor(wsUrl, protocols);\n        connectingTimeout = setTimeout(function () {\n            log('timeout');\n            ws.close();\n            emitError('ETIMEDOUT', 'Connection timeout');\n        }, config.connectionTimeout);\n        log('bypass properties');\n        for (var key in ws) {\n            // @todo move to constant\n            if (['addEventListener', 'removeEventListener', 'close', 'send'].indexOf(key) < 0) {\n                bypassProperty(ws, _this, key);\n            }\n        }\n        ws.addEventListener('open', function () {\n            clearTimeout(connectingTimeout);\n            log('open');\n            reconnectDelay = initReconnectionDelay(config);\n            log('reconnectDelay:', reconnectDelay);\n            retriesCount = 0;\n        });\n        ws.addEventListener('close', handleClose);\n        reassignEventListeners(ws, oldWs, listeners);\n        // because when closing with fastClose=true, it is saved and set to null to avoid double calls\n        ws.onclose = ws.onclose || savedOnClose;\n        savedOnClose = null;\n    };\n    log('init');\n    connect();\n    this.close = function (code, reason, _a) {\n        if (code === void 0) { code = 1000; }\n        if (reason === void 0) { reason = ''; }\n        var _b = _a === void 0 ? {} : _a, _c = _b.keepClosed, keepClosed = _c === void 0 ? false : _c, _d = _b.fastClose, fastClose = _d === void 0 ? true : _d, _e = _b.delay, delay = _e === void 0 ? 0 : _e;\n        log('close - params:', { reason: reason, keepClosed: keepClosed, fastClose: fastClose, delay: delay, retriesCount: retriesCount, maxRetries: config.maxRetries });\n        shouldRetry = !keepClosed && retriesCount <= config.maxRetries;\n        if (delay) {\n            reconnectDelay = delay;\n        }\n        ws.close(code, reason);\n        if (fastClose) {\n            var fakeCloseEvent_1 = {\n                code: code,\n                reason: reason,\n                wasClean: true,\n            };\n            // execute close listeners soon with a fake closeEvent\n            // and remove them from the WS instance so they\n            // don't get fired on the real close.\n            handleClose();\n            ws.removeEventListener('close', handleClose);\n            // run and remove level2\n            if (Array.isArray(listeners.close)) {\n                listeners.close.forEach(function (_a) {\n                    var listener = _a[0], options = _a[1];\n                    listener(fakeCloseEvent_1);\n                    ws.removeEventListener('close', listener, options);\n                });\n            }\n            // run and remove level0\n            if (ws.onclose) {\n                savedOnClose = ws.onclose;\n                ws.onclose(fakeCloseEvent_1);\n                ws.onclose = null;\n            }\n        }\n    };\n    this.send = function (data) {\n        ws.send(data);\n    };\n    this.addEventListener = function (type, listener, options) {\n        if (Array.isArray(listeners[type])) {\n            if (!listeners[type].some(function (_a) {\n                var l = _a[0];\n                return l === listener;\n            })) {\n                listeners[type].push([listener, options]);\n            }\n        }\n        else {\n            listeners[type] = [[listener, options]];\n        }\n        ws.addEventListener(type, listener, options);\n    };\n    this.removeEventListener = function (type, listener, options) {\n        if (Array.isArray(listeners[type])) {\n            listeners[type] = listeners[type].filter(function (_a) {\n                var l = _a[0];\n                return l !== listener;\n            });\n        }\n        ws.removeEventListener(type, listener, options);\n    };\n};\nmodule.exports = ReconnectingWebsocket;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reconnecting-websocket/dist/index.js\n// module id = 240\n// module chunks = 0","/*! *****************************************************************************\r\nCopyright (C) Microsoft. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\nvar Reflect;\r\n(function (Reflect) {\r\n    // Metadata Proposal\r\n    // https://rbuckton.github.io/reflect-metadata/\r\n    (function (factory) {\r\n        var root = typeof global === \"object\" ? global :\r\n            typeof self === \"object\" ? self :\r\n                typeof this === \"object\" ? this :\r\n                    Function(\"return this;\")();\r\n        var exporter = makeExporter(Reflect);\r\n        if (typeof root.Reflect === \"undefined\") {\r\n            root.Reflect = Reflect;\r\n        }\r\n        else {\r\n            exporter = makeExporter(root.Reflect, exporter);\r\n        }\r\n        factory(exporter);\r\n        function makeExporter(target, previous) {\r\n            return function (key, value) {\r\n                if (typeof target[key] !== \"function\") {\r\n                    Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\r\n                }\r\n                if (previous)\r\n                    previous(key, value);\r\n            };\r\n        }\r\n    })(function (exporter) {\r\n        var hasOwn = Object.prototype.hasOwnProperty;\r\n        // feature test for Symbol support\r\n        var supportsSymbol = typeof Symbol === \"function\";\r\n        var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\r\n        var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\r\n        var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\r\n        var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\r\n        var downLevel = !supportsCreate && !supportsProto;\r\n        var HashMap = {\r\n            // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\r\n            create: supportsCreate\r\n                ? function () { return MakeDictionary(Object.create(null)); }\r\n                : supportsProto\r\n                    ? function () { return MakeDictionary({ __proto__: null }); }\r\n                    : function () { return MakeDictionary({}); },\r\n            has: downLevel\r\n                ? function (map, key) { return hasOwn.call(map, key); }\r\n                : function (map, key) { return key in map; },\r\n            get: downLevel\r\n                ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\r\n                : function (map, key) { return map[key]; },\r\n        };\r\n        // Load global or shim versions of Map, Set, and WeakMap\r\n        var functionPrototype = Object.getPrototypeOf(Function);\r\n        var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\r\n        var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\r\n        var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\r\n        var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\r\n        // [[Metadata]] internal slot\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\r\n        var Metadata = new _WeakMap();\r\n        /**\r\n         * Applies a set of decorators to a property of a target object.\r\n         * @param decorators An array of decorators.\r\n         * @param target The target object.\r\n         * @param propertyKey (Optional) The property key to decorate.\r\n         * @param attributes (Optional) The property descriptor for the target key.\r\n         * @remarks Decorators are applied in reverse order.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     Example = Reflect.decorate(decoratorsArray, Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     Object.defineProperty(Example, \"staticMethod\",\r\n         *         Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\r\n         *             Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\r\n         *\r\n         *     // method (on prototype)\r\n         *     Object.defineProperty(Example.prototype, \"method\",\r\n         *         Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\r\n         *             Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\r\n         *\r\n         */\r\n        function decorate(decorators, target, propertyKey, attributes) {\r\n            if (!IsUndefined(propertyKey)) {\r\n                if (!IsArray(decorators))\r\n                    throw new TypeError();\r\n                if (!IsObject(target))\r\n                    throw new TypeError();\r\n                if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\r\n                    throw new TypeError();\r\n                if (IsNull(attributes))\r\n                    attributes = undefined;\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n                return DecorateProperty(decorators, target, propertyKey, attributes);\r\n            }\r\n            else {\r\n                if (!IsArray(decorators))\r\n                    throw new TypeError();\r\n                if (!IsConstructor(target))\r\n                    throw new TypeError();\r\n                return DecorateConstructor(decorators, target);\r\n            }\r\n        }\r\n        exporter(\"decorate\", decorate);\r\n        // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\r\n        // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\r\n        /**\r\n         * A default metadata decorator factory that can be used on a class, class member, or parameter.\r\n         * @param metadataKey The key for the metadata entry.\r\n         * @param metadataValue The value for the metadata entry.\r\n         * @returns A decorator function.\r\n         * @remarks\r\n         * If `metadataKey` is already defined for the target and target key, the\r\n         * metadataValue for that key will be overwritten.\r\n         * @example\r\n         *\r\n         *     // constructor\r\n         *     @Reflect.metadata(key, value)\r\n         *     class Example {\r\n         *     }\r\n         *\r\n         *     // property (on constructor, TypeScript only)\r\n         *     class Example {\r\n         *         @Reflect.metadata(key, value)\r\n         *         static staticProperty;\r\n         *     }\r\n         *\r\n         *     // property (on prototype, TypeScript only)\r\n         *     class Example {\r\n         *         @Reflect.metadata(key, value)\r\n         *         property;\r\n         *     }\r\n         *\r\n         *     // method (on constructor)\r\n         *     class Example {\r\n         *         @Reflect.metadata(key, value)\r\n         *         static staticMethod() { }\r\n         *     }\r\n         *\r\n         *     // method (on prototype)\r\n         *     class Example {\r\n         *         @Reflect.metadata(key, value)\r\n         *         method() { }\r\n         *     }\r\n         *\r\n         */\r\n        function metadata(metadataKey, metadataValue) {\r\n            function decorator(target, propertyKey) {\r\n                if (!IsObject(target))\r\n                    throw new TypeError();\r\n                if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\r\n                    throw new TypeError();\r\n                OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n            }\r\n            return decorator;\r\n        }\r\n        exporter(\"metadata\", metadata);\r\n        /**\r\n         * Define a unique metadata entry on the target.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param metadataValue A value that contains attached metadata.\r\n         * @param target The target object on which to define metadata.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     Reflect.defineMetadata(\"custom:annotation\", options, Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\r\n         *\r\n         *     // decorator factory as metadata-producing annotation.\r\n         *     function MyAnnotation(options): Decorator {\r\n         *         return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\r\n         *     }\r\n         *\r\n         */\r\n        function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n        }\r\n        exporter(\"defineMetadata\", defineMetadata);\r\n        /**\r\n         * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.hasMetadata(\"custom:annotation\", Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function hasMetadata(metadataKey, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryHasMetadata(metadataKey, target, propertyKey);\r\n        }\r\n        exporter(\"hasMetadata\", hasMetadata);\r\n        /**\r\n         * Gets a value indicating whether the target object has the provided metadata key defined.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function hasOwnMetadata(metadataKey, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\r\n        }\r\n        exporter(\"hasOwnMetadata\", hasOwnMetadata);\r\n        /**\r\n         * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.getMetadata(\"custom:annotation\", Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function getMetadata(metadataKey, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryGetMetadata(metadataKey, target, propertyKey);\r\n        }\r\n        exporter(\"getMetadata\", getMetadata);\r\n        /**\r\n         * Gets the metadata value for the provided metadata key on the target object.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function getOwnMetadata(metadataKey, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\r\n        }\r\n        exporter(\"getOwnMetadata\", getOwnMetadata);\r\n        /**\r\n         * Gets the metadata keys defined on the target object or its prototype chain.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns An array of unique metadata keys.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.getMetadataKeys(Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.getMetadataKeys(Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.getMetadataKeys(Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.getMetadataKeys(Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.getMetadataKeys(Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function getMetadataKeys(target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryMetadataKeys(target, propertyKey);\r\n        }\r\n        exporter(\"getMetadataKeys\", getMetadataKeys);\r\n        /**\r\n         * Gets the unique metadata keys defined on the target object.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns An array of unique metadata keys.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.getOwnMetadataKeys(Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function getOwnMetadataKeys(target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            return OrdinaryOwnMetadataKeys(target, propertyKey);\r\n        }\r\n        exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\r\n        /**\r\n         * Deletes the metadata entry from the target object with the provided key.\r\n         * @param metadataKey A key used to store and retrieve metadata.\r\n         * @param target The target object on which the metadata is defined.\r\n         * @param propertyKey (Optional) The property key for the target.\r\n         * @returns `true` if the metadata entry was found and deleted; otherwise, false.\r\n         * @example\r\n         *\r\n         *     class Example {\r\n         *         // property declarations are not part of ES6, though they are valid in TypeScript:\r\n         *         // static staticProperty;\r\n         *         // property;\r\n         *\r\n         *         constructor(p) { }\r\n         *         static staticMethod(p) { }\r\n         *         method(p) { }\r\n         *     }\r\n         *\r\n         *     // constructor\r\n         *     result = Reflect.deleteMetadata(\"custom:annotation\", Example);\r\n         *\r\n         *     // property (on constructor)\r\n         *     result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n         *\r\n         *     // property (on prototype)\r\n         *     result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n         *\r\n         *     // method (on constructor)\r\n         *     result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n         *\r\n         *     // method (on prototype)\r\n         *     result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n         *\r\n         */\r\n        function deleteMetadata(metadataKey, target, propertyKey) {\r\n            if (!IsObject(target))\r\n                throw new TypeError();\r\n            if (!IsUndefined(propertyKey))\r\n                propertyKey = ToPropertyKey(propertyKey);\r\n            var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\r\n            if (IsUndefined(metadataMap))\r\n                return false;\r\n            if (!metadataMap.delete(metadataKey))\r\n                return false;\r\n            if (metadataMap.size > 0)\r\n                return true;\r\n            var targetMetadata = Metadata.get(target);\r\n            targetMetadata.delete(propertyKey);\r\n            if (targetMetadata.size > 0)\r\n                return true;\r\n            Metadata.delete(target);\r\n            return true;\r\n        }\r\n        exporter(\"deleteMetadata\", deleteMetadata);\r\n        function DecorateConstructor(decorators, target) {\r\n            for (var i = decorators.length - 1; i >= 0; --i) {\r\n                var decorator = decorators[i];\r\n                var decorated = decorator(target);\r\n                if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n                    if (!IsConstructor(decorated))\r\n                        throw new TypeError();\r\n                    target = decorated;\r\n                }\r\n            }\r\n            return target;\r\n        }\r\n        function DecorateProperty(decorators, target, propertyKey, descriptor) {\r\n            for (var i = decorators.length - 1; i >= 0; --i) {\r\n                var decorator = decorators[i];\r\n                var decorated = decorator(target, propertyKey, descriptor);\r\n                if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n                    if (!IsObject(decorated))\r\n                        throw new TypeError();\r\n                    descriptor = decorated;\r\n                }\r\n            }\r\n            return descriptor;\r\n        }\r\n        function GetOrCreateMetadataMap(O, P, Create) {\r\n            var targetMetadata = Metadata.get(O);\r\n            if (IsUndefined(targetMetadata)) {\r\n                if (!Create)\r\n                    return undefined;\r\n                targetMetadata = new _Map();\r\n                Metadata.set(O, targetMetadata);\r\n            }\r\n            var metadataMap = targetMetadata.get(P);\r\n            if (IsUndefined(metadataMap)) {\r\n                if (!Create)\r\n                    return undefined;\r\n                metadataMap = new _Map();\r\n                targetMetadata.set(P, metadataMap);\r\n            }\r\n            return metadataMap;\r\n        }\r\n        // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\r\n        function OrdinaryHasMetadata(MetadataKey, O, P) {\r\n            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n            if (hasOwn)\r\n                return true;\r\n            var parent = OrdinaryGetPrototypeOf(O);\r\n            if (!IsNull(parent))\r\n                return OrdinaryHasMetadata(MetadataKey, parent, P);\r\n            return false;\r\n        }\r\n        // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\r\n        function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\r\n            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n            if (IsUndefined(metadataMap))\r\n                return false;\r\n            return ToBoolean(metadataMap.has(MetadataKey));\r\n        }\r\n        // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\r\n        function OrdinaryGetMetadata(MetadataKey, O, P) {\r\n            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n            if (hasOwn)\r\n                return OrdinaryGetOwnMetadata(MetadataKey, O, P);\r\n            var parent = OrdinaryGetPrototypeOf(O);\r\n            if (!IsNull(parent))\r\n                return OrdinaryGetMetadata(MetadataKey, parent, P);\r\n            return undefined;\r\n        }\r\n        // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\r\n        function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\r\n            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n            if (IsUndefined(metadataMap))\r\n                return undefined;\r\n            return metadataMap.get(MetadataKey);\r\n        }\r\n        // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\r\n        function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\r\n            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\r\n            metadataMap.set(MetadataKey, MetadataValue);\r\n        }\r\n        // 3.1.6.1 OrdinaryMetadataKeys(O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\r\n        function OrdinaryMetadataKeys(O, P) {\r\n            var ownKeys = OrdinaryOwnMetadataKeys(O, P);\r\n            var parent = OrdinaryGetPrototypeOf(O);\r\n            if (parent === null)\r\n                return ownKeys;\r\n            var parentKeys = OrdinaryMetadataKeys(parent, P);\r\n            if (parentKeys.length <= 0)\r\n                return ownKeys;\r\n            if (ownKeys.length <= 0)\r\n                return parentKeys;\r\n            var set = new _Set();\r\n            var keys = [];\r\n            for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\r\n                var key = ownKeys_1[_i];\r\n                var hasKey = set.has(key);\r\n                if (!hasKey) {\r\n                    set.add(key);\r\n                    keys.push(key);\r\n                }\r\n            }\r\n            for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\r\n                var key = parentKeys_1[_a];\r\n                var hasKey = set.has(key);\r\n                if (!hasKey) {\r\n                    set.add(key);\r\n                    keys.push(key);\r\n                }\r\n            }\r\n            return keys;\r\n        }\r\n        // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\r\n        // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\r\n        function OrdinaryOwnMetadataKeys(O, P) {\r\n            var keys = [];\r\n            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n            if (IsUndefined(metadataMap))\r\n                return keys;\r\n            var keysObj = metadataMap.keys();\r\n            var iterator = GetIterator(keysObj);\r\n            var k = 0;\r\n            while (true) {\r\n                var next = IteratorStep(iterator);\r\n                if (!next) {\r\n                    keys.length = k;\r\n                    return keys;\r\n                }\r\n                var nextValue = IteratorValue(next);\r\n                try {\r\n                    keys[k] = nextValue;\r\n                }\r\n                catch (e) {\r\n                    try {\r\n                        IteratorClose(iterator);\r\n                    }\r\n                    finally {\r\n                        throw e;\r\n                    }\r\n                }\r\n                k++;\r\n            }\r\n        }\r\n        // 6 ECMAScript Data Typ0es and Values\r\n        // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\r\n        function Type(x) {\r\n            if (x === null)\r\n                return 1 /* Null */;\r\n            switch (typeof x) {\r\n                case \"undefined\": return 0 /* Undefined */;\r\n                case \"boolean\": return 2 /* Boolean */;\r\n                case \"string\": return 3 /* String */;\r\n                case \"symbol\": return 4 /* Symbol */;\r\n                case \"number\": return 5 /* Number */;\r\n                case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\r\n                default: return 6 /* Object */;\r\n            }\r\n        }\r\n        // 6.1.1 The Undefined Type\r\n        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\r\n        function IsUndefined(x) {\r\n            return x === undefined;\r\n        }\r\n        // 6.1.2 The Null Type\r\n        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\r\n        function IsNull(x) {\r\n            return x === null;\r\n        }\r\n        // 6.1.5 The Symbol Type\r\n        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\r\n        function IsSymbol(x) {\r\n            return typeof x === \"symbol\";\r\n        }\r\n        // 6.1.7 The Object Type\r\n        // https://tc39.github.io/ecma262/#sec-object-type\r\n        function IsObject(x) {\r\n            return typeof x === \"object\" ? x !== null : typeof x === \"function\";\r\n        }\r\n        // 7.1 Type Conversion\r\n        // https://tc39.github.io/ecma262/#sec-type-conversion\r\n        // 7.1.1 ToPrimitive(input [, PreferredType])\r\n        // https://tc39.github.io/ecma262/#sec-toprimitive\r\n        function ToPrimitive(input, PreferredType) {\r\n            switch (Type(input)) {\r\n                case 0 /* Undefined */: return input;\r\n                case 1 /* Null */: return input;\r\n                case 2 /* Boolean */: return input;\r\n                case 3 /* String */: return input;\r\n                case 4 /* Symbol */: return input;\r\n                case 5 /* Number */: return input;\r\n            }\r\n            var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\r\n            var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\r\n            if (exoticToPrim !== undefined) {\r\n                var result = exoticToPrim.call(input, hint);\r\n                if (IsObject(result))\r\n                    throw new TypeError();\r\n                return result;\r\n            }\r\n            return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\r\n        }\r\n        // 7.1.1.1 OrdinaryToPrimitive(O, hint)\r\n        // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\r\n        function OrdinaryToPrimitive(O, hint) {\r\n            if (hint === \"string\") {\r\n                var toString_1 = O.toString;\r\n                if (IsCallable(toString_1)) {\r\n                    var result = toString_1.call(O);\r\n                    if (!IsObject(result))\r\n                        return result;\r\n                }\r\n                var valueOf = O.valueOf;\r\n                if (IsCallable(valueOf)) {\r\n                    var result = valueOf.call(O);\r\n                    if (!IsObject(result))\r\n                        return result;\r\n                }\r\n            }\r\n            else {\r\n                var valueOf = O.valueOf;\r\n                if (IsCallable(valueOf)) {\r\n                    var result = valueOf.call(O);\r\n                    if (!IsObject(result))\r\n                        return result;\r\n                }\r\n                var toString_2 = O.toString;\r\n                if (IsCallable(toString_2)) {\r\n                    var result = toString_2.call(O);\r\n                    if (!IsObject(result))\r\n                        return result;\r\n                }\r\n            }\r\n            throw new TypeError();\r\n        }\r\n        // 7.1.2 ToBoolean(argument)\r\n        // https://tc39.github.io/ecma262/2016/#sec-toboolean\r\n        function ToBoolean(argument) {\r\n            return !!argument;\r\n        }\r\n        // 7.1.12 ToString(argument)\r\n        // https://tc39.github.io/ecma262/#sec-tostring\r\n        function ToString(argument) {\r\n            return \"\" + argument;\r\n        }\r\n        // 7.1.14 ToPropertyKey(argument)\r\n        // https://tc39.github.io/ecma262/#sec-topropertykey\r\n        function ToPropertyKey(argument) {\r\n            var key = ToPrimitive(argument, 3 /* String */);\r\n            if (IsSymbol(key))\r\n                return key;\r\n            return ToString(key);\r\n        }\r\n        // 7.2 Testing and Comparison Operations\r\n        // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\r\n        // 7.2.2 IsArray(argument)\r\n        // https://tc39.github.io/ecma262/#sec-isarray\r\n        function IsArray(argument) {\r\n            return Array.isArray\r\n                ? Array.isArray(argument)\r\n                : argument instanceof Object\r\n                    ? argument instanceof Array\r\n                    : Object.prototype.toString.call(argument) === \"[object Array]\";\r\n        }\r\n        // 7.2.3 IsCallable(argument)\r\n        // https://tc39.github.io/ecma262/#sec-iscallable\r\n        function IsCallable(argument) {\r\n            // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\r\n            return typeof argument === \"function\";\r\n        }\r\n        // 7.2.4 IsConstructor(argument)\r\n        // https://tc39.github.io/ecma262/#sec-isconstructor\r\n        function IsConstructor(argument) {\r\n            // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\r\n            return typeof argument === \"function\";\r\n        }\r\n        // 7.2.7 IsPropertyKey(argument)\r\n        // https://tc39.github.io/ecma262/#sec-ispropertykey\r\n        function IsPropertyKey(argument) {\r\n            switch (Type(argument)) {\r\n                case 3 /* String */: return true;\r\n                case 4 /* Symbol */: return true;\r\n                default: return false;\r\n            }\r\n        }\r\n        // 7.3 Operations on Objects\r\n        // https://tc39.github.io/ecma262/#sec-operations-on-objects\r\n        // 7.3.9 GetMethod(V, P)\r\n        // https://tc39.github.io/ecma262/#sec-getmethod\r\n        function GetMethod(V, P) {\r\n            var func = V[P];\r\n            if (func === undefined || func === null)\r\n                return undefined;\r\n            if (!IsCallable(func))\r\n                throw new TypeError();\r\n            return func;\r\n        }\r\n        // 7.4 Operations on Iterator Objects\r\n        // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\r\n        function GetIterator(obj) {\r\n            var method = GetMethod(obj, iteratorSymbol);\r\n            if (!IsCallable(method))\r\n                throw new TypeError(); // from Call\r\n            var iterator = method.call(obj);\r\n            if (!IsObject(iterator))\r\n                throw new TypeError();\r\n            return iterator;\r\n        }\r\n        // 7.4.4 IteratorValue(iterResult)\r\n        // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\r\n        function IteratorValue(iterResult) {\r\n            return iterResult.value;\r\n        }\r\n        // 7.4.5 IteratorStep(iterator)\r\n        // https://tc39.github.io/ecma262/#sec-iteratorstep\r\n        function IteratorStep(iterator) {\r\n            var result = iterator.next();\r\n            return result.done ? false : result;\r\n        }\r\n        // 7.4.6 IteratorClose(iterator, completion)\r\n        // https://tc39.github.io/ecma262/#sec-iteratorclose\r\n        function IteratorClose(iterator) {\r\n            var f = iterator[\"return\"];\r\n            if (f)\r\n                f.call(iterator);\r\n        }\r\n        // 9.1 Ordinary Object Internal Methods and Internal Slots\r\n        // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\r\n        // 9.1.1.1 OrdinaryGetPrototypeOf(O)\r\n        // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\r\n        function OrdinaryGetPrototypeOf(O) {\r\n            var proto = Object.getPrototypeOf(O);\r\n            if (typeof O !== \"function\" || O === functionPrototype)\r\n                return proto;\r\n            // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\r\n            // Try to determine the superclass constructor. Compatible implementations\r\n            // must either set __proto__ on a subclass constructor to the superclass constructor,\r\n            // or ensure each class has a valid `constructor` property on its prototype that\r\n            // points back to the constructor.\r\n            // If this is not the same as Function.[[Prototype]], then this is definately inherited.\r\n            // This is the case when in ES6 or when using __proto__ in a compatible browser.\r\n            if (proto !== functionPrototype)\r\n                return proto;\r\n            // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\r\n            var prototype = O.prototype;\r\n            var prototypeProto = prototype && Object.getPrototypeOf(prototype);\r\n            if (prototypeProto == null || prototypeProto === Object.prototype)\r\n                return proto;\r\n            // If the constructor was not a function, then we cannot determine the heritage.\r\n            var constructor = prototypeProto.constructor;\r\n            if (typeof constructor !== \"function\")\r\n                return proto;\r\n            // If we have some kind of self-reference, then we cannot determine the heritage.\r\n            if (constructor === O)\r\n                return proto;\r\n            // we have a pretty good guess at the heritage.\r\n            return constructor;\r\n        }\r\n        // naive Map shim\r\n        function CreateMapPolyfill() {\r\n            var cacheSentinel = {};\r\n            var arraySentinel = [];\r\n            var MapIterator = (function () {\r\n                function MapIterator(keys, values, selector) {\r\n                    this._index = 0;\r\n                    this._keys = keys;\r\n                    this._values = values;\r\n                    this._selector = selector;\r\n                }\r\n                MapIterator.prototype[\"@@iterator\"] = function () { return this; };\r\n                MapIterator.prototype[iteratorSymbol] = function () { return this; };\r\n                MapIterator.prototype.next = function () {\r\n                    var index = this._index;\r\n                    if (index >= 0 && index < this._keys.length) {\r\n                        var result = this._selector(this._keys[index], this._values[index]);\r\n                        if (index + 1 >= this._keys.length) {\r\n                            this._index = -1;\r\n                            this._keys = arraySentinel;\r\n                            this._values = arraySentinel;\r\n                        }\r\n                        else {\r\n                            this._index++;\r\n                        }\r\n                        return { value: result, done: false };\r\n                    }\r\n                    return { value: undefined, done: true };\r\n                };\r\n                MapIterator.prototype.throw = function (error) {\r\n                    if (this._index >= 0) {\r\n                        this._index = -1;\r\n                        this._keys = arraySentinel;\r\n                        this._values = arraySentinel;\r\n                    }\r\n                    throw error;\r\n                };\r\n                MapIterator.prototype.return = function (value) {\r\n                    if (this._index >= 0) {\r\n                        this._index = -1;\r\n                        this._keys = arraySentinel;\r\n                        this._values = arraySentinel;\r\n                    }\r\n                    return { value: value, done: true };\r\n                };\r\n                return MapIterator;\r\n            }());\r\n            return (function () {\r\n                function Map() {\r\n                    this._keys = [];\r\n                    this._values = [];\r\n                    this._cacheKey = cacheSentinel;\r\n                    this._cacheIndex = -2;\r\n                }\r\n                Object.defineProperty(Map.prototype, \"size\", {\r\n                    get: function () { return this._keys.length; },\r\n                    enumerable: true,\r\n                    configurable: true\r\n                });\r\n                Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\r\n                Map.prototype.get = function (key) {\r\n                    var index = this._find(key, /*insert*/ false);\r\n                    return index >= 0 ? this._values[index] : undefined;\r\n                };\r\n                Map.prototype.set = function (key, value) {\r\n                    var index = this._find(key, /*insert*/ true);\r\n                    this._values[index] = value;\r\n                    return this;\r\n                };\r\n                Map.prototype.delete = function (key) {\r\n                    var index = this._find(key, /*insert*/ false);\r\n                    if (index >= 0) {\r\n                        var size = this._keys.length;\r\n                        for (var i = index + 1; i < size; i++) {\r\n                            this._keys[i - 1] = this._keys[i];\r\n                            this._values[i - 1] = this._values[i];\r\n                        }\r\n                        this._keys.length--;\r\n                        this._values.length--;\r\n                        if (key === this._cacheKey) {\r\n                            this._cacheKey = cacheSentinel;\r\n                            this._cacheIndex = -2;\r\n                        }\r\n                        return true;\r\n                    }\r\n                    return false;\r\n                };\r\n                Map.prototype.clear = function () {\r\n                    this._keys.length = 0;\r\n                    this._values.length = 0;\r\n                    this._cacheKey = cacheSentinel;\r\n                    this._cacheIndex = -2;\r\n                };\r\n                Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\r\n                Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\r\n                Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\r\n                Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\r\n                Map.prototype[iteratorSymbol] = function () { return this.entries(); };\r\n                Map.prototype._find = function (key, insert) {\r\n                    if (this._cacheKey !== key) {\r\n                        this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\r\n                    }\r\n                    if (this._cacheIndex < 0 && insert) {\r\n                        this._cacheIndex = this._keys.length;\r\n                        this._keys.push(key);\r\n                        this._values.push(undefined);\r\n                    }\r\n                    return this._cacheIndex;\r\n                };\r\n                return Map;\r\n            }());\r\n            function getKey(key, _) {\r\n                return key;\r\n            }\r\n            function getValue(_, value) {\r\n                return value;\r\n            }\r\n            function getEntry(key, value) {\r\n                return [key, value];\r\n            }\r\n        }\r\n        // naive Set shim\r\n        function CreateSetPolyfill() {\r\n            return (function () {\r\n                function Set() {\r\n                    this._map = new _Map();\r\n                }\r\n                Object.defineProperty(Set.prototype, \"size\", {\r\n                    get: function () { return this._map.size; },\r\n                    enumerable: true,\r\n                    configurable: true\r\n                });\r\n                Set.prototype.has = function (value) { return this._map.has(value); };\r\n                Set.prototype.add = function (value) { return this._map.set(value, value), this; };\r\n                Set.prototype.delete = function (value) { return this._map.delete(value); };\r\n                Set.prototype.clear = function () { this._map.clear(); };\r\n                Set.prototype.keys = function () { return this._map.keys(); };\r\n                Set.prototype.values = function () { return this._map.values(); };\r\n                Set.prototype.entries = function () { return this._map.entries(); };\r\n                Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\r\n                Set.prototype[iteratorSymbol] = function () { return this.keys(); };\r\n                return Set;\r\n            }());\r\n        }\r\n        // naive WeakMap shim\r\n        function CreateWeakMapPolyfill() {\r\n            var UUID_SIZE = 16;\r\n            var keys = HashMap.create();\r\n            var rootKey = CreateUniqueKey();\r\n            return (function () {\r\n                function WeakMap() {\r\n                    this._key = CreateUniqueKey();\r\n                }\r\n                WeakMap.prototype.has = function (target) {\r\n                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n                    return table !== undefined ? HashMap.has(table, this._key) : false;\r\n                };\r\n                WeakMap.prototype.get = function (target) {\r\n                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n                    return table !== undefined ? HashMap.get(table, this._key) : undefined;\r\n                };\r\n                WeakMap.prototype.set = function (target, value) {\r\n                    var table = GetOrCreateWeakMapTable(target, /*create*/ true);\r\n                    table[this._key] = value;\r\n                    return this;\r\n                };\r\n                WeakMap.prototype.delete = function (target) {\r\n                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n                    return table !== undefined ? delete table[this._key] : false;\r\n                };\r\n                WeakMap.prototype.clear = function () {\r\n                    // NOTE: not a real clear, just makes the previous data unreachable\r\n                    this._key = CreateUniqueKey();\r\n                };\r\n                return WeakMap;\r\n            }());\r\n            function CreateUniqueKey() {\r\n                var key;\r\n                do\r\n                    key = \"@@WeakMap@@\" + CreateUUID();\r\n                while (HashMap.has(keys, key));\r\n                keys[key] = true;\r\n                return key;\r\n            }\r\n            function GetOrCreateWeakMapTable(target, create) {\r\n                if (!hasOwn.call(target, rootKey)) {\r\n                    if (!create)\r\n                        return undefined;\r\n                    Object.defineProperty(target, rootKey, { value: HashMap.create() });\r\n                }\r\n                return target[rootKey];\r\n            }\r\n            function FillRandomBytes(buffer, size) {\r\n                for (var i = 0; i < size; ++i)\r\n                    buffer[i] = Math.random() * 0xff | 0;\r\n                return buffer;\r\n            }\r\n            function GenRandomBytes(size) {\r\n                if (typeof Uint8Array === \"function\") {\r\n                    if (typeof crypto !== \"undefined\")\r\n                        return crypto.getRandomValues(new Uint8Array(size));\r\n                    if (typeof msCrypto !== \"undefined\")\r\n                        return msCrypto.getRandomValues(new Uint8Array(size));\r\n                    return FillRandomBytes(new Uint8Array(size), size);\r\n                }\r\n                return FillRandomBytes(new Array(size), size);\r\n            }\r\n            function CreateUUID() {\r\n                var data = GenRandomBytes(UUID_SIZE);\r\n                // mark as random - RFC 4122 § 4.4\r\n                data[6] = data[6] & 0x4f | 0x40;\r\n                data[8] = data[8] & 0xbf | 0x80;\r\n                var result = \"\";\r\n                for (var offset = 0; offset < UUID_SIZE; ++offset) {\r\n                    var byte = data[offset];\r\n                    if (offset === 4 || offset === 6 || offset === 8)\r\n                        result += \"-\";\r\n                    if (byte < 16)\r\n                        result += \"0\";\r\n                    result += byte.toString(16).toLowerCase();\r\n                }\r\n                return result;\r\n            }\r\n        }\r\n        // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\r\n        function MakeDictionary(obj) {\r\n            obj.__ = undefined;\r\n            delete obj.__;\r\n            return obj;\r\n        }\r\n    });\r\n})(Reflect || (Reflect = {}));\r\n//# sourceMappingURL=Reflect.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reflect-metadata/Reflect.js\n// module id = 241\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\n\nexports.default = function (html) {\n    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\n    var context = options.context || document;\n\n    // If there's nothing here, return null;\n    if (!html) {\n        return null;\n    }\n\n    // Maintain a list of created vnodes so we can call the create hook.\n    var createdVNodes = [];\n\n    // Parse the string into the AST and convert to VNodes.\n    var vnodes = convertNodes((0, _parse2.default)(html), createdVNodes, context);\n\n    var res = void 0;\n    if (!vnodes) {\n        // If there are no vnodes but there is string content, then the string\n        // must be just text or at least invalid HTML that we should treat as\n        // text (since the AST parser didn't find any well-formed HTML).\n        res = toVNode({ type: 'text', content: html }, createdVNodes, context);\n    } else if (vnodes.length === 1) {\n        // If there's only one root node, just return it as opposed to an array.\n        res = vnodes[0];\n    } else {\n        // Otherwise we have an array of VNodes, which we should return.\n        res = vnodes;\n    }\n\n    // Call the 'create' hook for each created node.\n    options.hooks && options.hooks.create && createdVNodes.forEach(function (node) {\n        options.hooks.create(node);\n    });\n    return res;\n};\n\nvar _parse = require('html-parse-stringify2/lib/parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nvar _h = require('snabbdom/h');\n\nvar _h2 = _interopRequireDefault(_h);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction convertNodes(nodes, createdVNodes, context) {\n    if (nodes instanceof Array && nodes.length > 0) {\n        return nodes.map(function (node) {\n            return toVNode(node, createdVNodes, context);\n        });\n    } else {\n        return undefined;\n    }\n}\n\nfunction toVNode(node, createdVNodes, context) {\n    var newNode = void 0;\n    if (node.type === 'text') {\n        newNode = (0, _utils.createTextVNode)(node.content, context);\n    } else {\n        newNode = (0, _h2.default)(node.name, buildVNodeData(node, context), convertNodes(node.children, createdVNodes, context));\n    }\n    createdVNodes.push(newNode);\n    return newNode;\n}\n\nfunction buildVNodeData(node, context) {\n    var data = {};\n    if (!node.attrs) {\n        return data;\n    }\n\n    var attrs = Object.keys(node.attrs).reduce(function (memo, name) {\n        if (name !== 'style' && name !== 'class') {\n            var val = (0, _utils.unescapeEntities)(node.attrs[name], context);\n            memo ? memo[name] = val : memo = _defineProperty({}, name, val);\n        }\n        return memo;\n    }, null);\n    if (attrs) {\n        data.attrs = attrs;\n    }\n\n    var style = parseStyle(node);\n    if (style) {\n        data.style = style;\n    }\n\n    var classes = parseClass(node);\n    if (classes) {\n        data.class = classes;\n    }\n\n    return data;\n}\n\nfunction parseStyle(node) {\n    try {\n        return node.attrs.style.split(';').reduce(function (memo, styleProp) {\n            var res = styleProp.split(':');\n            var name = (0, _utils.transformName)(res[0].trim());\n            if (name) {\n                var val = res[1].replace('!important', '').trim();\n                memo ? memo[name] = val : memo = _defineProperty({}, name, val);\n            }\n            return memo;\n        }, null);\n    } catch (e) {\n        return null;\n    }\n}\n\nfunction parseClass(node) {\n    try {\n        return node.attrs.class.split(' ').reduce(function (memo, className) {\n            className = className.trim();\n            if (className) {\n                memo ? memo[className] = true : memo = _defineProperty({}, className, true);\n            }\n            return memo;\n        }, null);\n    } catch (e) {\n        return null;\n    }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom-virtualize/lib/strings.js\n// module id = 242\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.createTextVNode = createTextVNode;\nexports.transformName = transformName;\nexports.unescapeEntities = unescapeEntities;\n\nvar _vnode = require('snabbdom/vnode');\n\nvar _vnode2 = _interopRequireDefault(_vnode);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createTextVNode(text, context) {\n    return (0, _vnode2.default)(undefined, undefined, undefined, unescapeEntities(text, context));\n}\n\nfunction transformName(name) {\n    // Replace -a with A to help camel case style property names.\n    name = name.replace(/-(\\w)/g, function _replace($1, $2) {\n        return $2.toUpperCase();\n    });\n    // Handle properties that start with a -.\n    var firstChar = name.charAt(0).toLowerCase();\n    return '' + firstChar + name.substring(1);\n}\n\n// Regex for matching HTML entities.\nvar entityRegex = new RegExp('&[a-z0-9#]+;', 'gi');\n// Element for setting innerHTML for transforming entities.\nvar el = null;\n\nfunction unescapeEntities(text, context) {\n    // Create the element using the context if it doesn't exist.\n    if (!el) {\n        el = context.createElement('div');\n    }\n    return text.replace(entityRegex, function (entity) {\n        el.innerHTML = entity;\n        return el.textContent;\n    });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom-virtualize/lib/utils.js\n// module id = 243\n// module chunks = 0","module.exports = require('./lib/strings');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom-virtualize/strings.js\n// module id = 244\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar vnode_1 = require(\"./vnode\");\nvar is = require(\"./is\");\nfunction addNS(data, children, sel) {\n    data.ns = 'http://www.w3.org/2000/svg';\n    if (sel !== 'foreignObject' && children !== undefined) {\n        for (var i = 0; i < children.length; ++i) {\n            var childData = children[i].data;\n            if (childData !== undefined) {\n                addNS(childData, children[i].children, children[i].sel);\n            }\n        }\n    }\n}\nfunction h(sel, b, c) {\n    var data = {}, children, text, i;\n    if (c !== undefined) {\n        data = b;\n        if (is.array(c)) {\n            children = c;\n        }\n        else if (is.primitive(c)) {\n            text = c;\n        }\n        else if (c && c.sel) {\n            children = [c];\n        }\n    }\n    else if (b !== undefined) {\n        if (is.array(b)) {\n            children = b;\n        }\n        else if (is.primitive(b)) {\n            text = b;\n        }\n        else if (b && b.sel) {\n            children = [b];\n        }\n        else {\n            data = b;\n        }\n    }\n    if (is.array(children)) {\n        for (i = 0; i < children.length; ++i) {\n            if (is.primitive(children[i]))\n                children[i] = vnode_1.vnode(undefined, undefined, undefined, children[i], undefined);\n        }\n    }\n    if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n        (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {\n        addNS(data, children, sel);\n    }\n    return vnode_1.vnode(sel, data, children, text, undefined);\n}\nexports.h = h;\n;\nexports.default = h;\n//# sourceMappingURL=h.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom/h.js\n// module id = 245\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.array = Array.isArray;\nfunction primitive(s) {\n    return typeof s === 'string' || typeof s === 'number';\n}\nexports.primitive = primitive;\n//# sourceMappingURL=is.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/snabbdom/is.js\n// module id = 246\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"../types\");\nfunction overrideCommandStackOptions(container, options) {\n    var defaultOptions = container.get(types_1.TYPES.CommandStackOptions);\n    for (var p in options) {\n        defaultOptions[p] = options[p];\n    }\n    return defaultOptions;\n}\nexports.overrideCommandStackOptions = overrideCommandStackOptions;\n//# sourceMappingURL=command-stack-options.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/commands/command-stack-options.js\n// module id = 247\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar smodel_storage_1 = require(\"./model/smodel-storage\");\nvar types_1 = require(\"./types\");\nvar initialize_canvas_1 = require(\"./features/initialize-canvas\");\nvar logging_1 = require(\"../utils/logging\");\nvar action_dispatcher_1 = require(\"./actions/action-dispatcher\");\nvar action_handler_1 = require(\"./actions/action-handler\");\nvar command_stack_1 = require(\"./commands/command-stack\");\nvar smodel_factory_1 = require(\"./model/smodel-factory\");\nvar animation_frame_syncer_1 = require(\"./animations/animation-frame-syncer\");\nvar viewer_1 = require(\"./views/viewer\");\nvar mouse_tool_1 = require(\"./views/mouse-tool\");\nvar key_tool_1 = require(\"./views/key-tool\");\nvar vnode_decorators_1 = require(\"./views/vnode-decorators\");\nvar view_1 = require(\"./views/view\");\nvar viewer_cache_1 = require(\"./views/viewer-cache\");\nvar dom_helper_1 = require(\"./views/dom-helper\");\nvar id_decorator_1 = require(\"./views/id-decorator\");\nvar command_1 = require(\"./commands/command\");\nvar defaultContainerModule = new inversify_1.ContainerModule(function (bind) {\n    // Logging ---------------------------------------------\n    bind(types_1.TYPES.ILogger).to(logging_1.NullLogger).inSingletonScope();\n    bind(types_1.TYPES.LogLevel).toConstantValue(logging_1.LogLevel.warn);\n    // Registries ---------------------------------------------\n    bind(types_1.TYPES.ActionHandlerRegistry).to(action_handler_1.ActionHandlerRegistry).inSingletonScope();\n    bind(types_1.TYPES.ViewRegistry).to(view_1.ViewRegistry).inSingletonScope();\n    // Model Creation ---------------------------------------------\n    bind(types_1.TYPES.IModelFactory).to(smodel_factory_1.SModelFactory).inSingletonScope();\n    // Action Dispatcher ---------------------------------------------\n    bind(types_1.TYPES.IActionDispatcher).to(action_dispatcher_1.ActionDispatcher).inSingletonScope();\n    bind(types_1.TYPES.IActionDispatcherProvider).toProvider(function (context) {\n        return function () {\n            return new Promise(function (resolve) {\n                resolve(context.container.get(types_1.TYPES.IActionDispatcher));\n            });\n        };\n    });\n    // Action handler\n    bind(types_1.TYPES.IActionHandlerInitializer).to(command_1.CommandActionHandlerInitializer);\n    // Command Stack ---------------------------------------------\n    bind(types_1.TYPES.ICommandStack).to(command_stack_1.CommandStack).inSingletonScope();\n    bind(types_1.TYPES.ICommandStackProvider).toProvider(function (context) {\n        return function () {\n            return new Promise(function (resolve) {\n                resolve(context.container.get(types_1.TYPES.ICommandStack));\n            });\n        };\n    });\n    bind(types_1.TYPES.CommandStackOptions).toConstantValue({\n        defaultDuration: 250,\n        undoHistoryLimit: 50\n    });\n    // Viewer ---------------------------------------------\n    bind(viewer_1.Viewer).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IViewer).toDynamicValue(function (context) {\n        return context.container.get(viewer_1.Viewer);\n    }).inSingletonScope().whenTargetNamed('delegate');\n    bind(viewer_cache_1.ViewerCache).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IViewer).toDynamicValue(function (context) {\n        return context.container.get(viewer_cache_1.ViewerCache);\n    }).inSingletonScope().whenTargetIsDefault();\n    bind(types_1.TYPES.IViewerProvider).toProvider(function (context) {\n        return function () {\n            return new Promise(function (resolve) {\n                resolve(context.container.get(types_1.TYPES.IViewer));\n            });\n        };\n    });\n    bind(types_1.TYPES.ViewerOptions).toConstantValue({\n        baseDiv: 'sprotty',\n        baseClass: 'sprotty',\n        hiddenDiv: 'sprotty-hidden',\n        hiddenClass: 'sprotty-hidden',\n        popupDiv: 'sprotty-popup',\n        popupClass: 'sprotty-popup',\n        popupClosedClass: 'sprotty-popup-closed',\n        needsClientLayout: true,\n        needsServerLayout: false,\n        popupOpenDelay: 700,\n        popupCloseDelay: 300\n    });\n    bind(types_1.TYPES.DOMHelper).to(dom_helper_1.DOMHelper).inSingletonScope();\n    bind(types_1.TYPES.ModelRendererFactory).toFactory(function (context) {\n        return function (decorators) {\n            var viewRegistry = context.container.get(types_1.TYPES.ViewRegistry);\n            return new viewer_1.ModelRenderer(viewRegistry, decorators);\n        };\n    });\n    // Tools & Decorators --------------------------------------\n    bind(id_decorator_1.IdDecorator).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(id_decorator_1.IdDecorator);\n    }).inSingletonScope();\n    bind(mouse_tool_1.MouseTool).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(mouse_tool_1.MouseTool);\n    }).inSingletonScope();\n    bind(key_tool_1.KeyTool).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(key_tool_1.KeyTool);\n    }).inSingletonScope();\n    bind(vnode_decorators_1.FocusFixDecorator).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(vnode_decorators_1.FocusFixDecorator);\n    }).inSingletonScope();\n    bind(types_1.TYPES.PopupVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(id_decorator_1.IdDecorator);\n    }).inSingletonScope();\n    bind(mouse_tool_1.PopupMouseTool).toSelf().inSingletonScope();\n    bind(types_1.TYPES.PopupVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(mouse_tool_1.PopupMouseTool);\n    }).inSingletonScope();\n    bind(types_1.TYPES.HiddenVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(id_decorator_1.IdDecorator);\n    }).inSingletonScope();\n    // Animation Frame Sync ------------------------------------------\n    bind(types_1.TYPES.AnimationFrameSyncer).to(animation_frame_syncer_1.AnimationFrameSyncer).inSingletonScope();\n    // Canvas Initialization ---------------------------------------------\n    bind(types_1.TYPES.ICommand).toConstructor(initialize_canvas_1.InitializeCanvasBoundsCommand);\n    bind(initialize_canvas_1.CanvasBoundsInitializer).toSelf().inSingletonScope();\n    bind(types_1.TYPES.IVNodeDecorator).toDynamicValue(function (context) {\n        return context.container.get(initialize_canvas_1.CanvasBoundsInitializer);\n    }).inSingletonScope();\n    bind(types_1.TYPES.SModelStorage).to(smodel_storage_1.SModelStorage).inSingletonScope();\n});\nexports.default = defaultContainerModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/di.config.js\n// module id = 248\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../types\");\nvar dom_helper_1 = require(\"./dom-helper\");\nvar vnode_utils_1 = require(\"./vnode-utils\");\nvar IdDecorator = /** @class */ (function () {\n    function IdDecorator(logger, domHelper) {\n        this.logger = logger;\n        this.domHelper = domHelper;\n    }\n    IdDecorator.prototype.decorate = function (vnode, element) {\n        var attrs = vnode_utils_1.getAttrs(vnode);\n        if (attrs.id !== undefined)\n            this.logger.warn(vnode, 'Overriding id of vnode (' + attrs.id + '). Make sure not to set it manually in view.');\n        attrs.id = this.domHelper.createUniqueDOMElementId(element);\n        if (!vnode.key)\n            vnode.key = element.id;\n        return vnode;\n    };\n    IdDecorator.prototype.postUpdate = function () {\n    };\n    IdDecorator = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ILogger)),\n        __param(1, inversify_1.inject(types_1.TYPES.DOMHelper)),\n        __metadata(\"design:paramtypes\", [Object, dom_helper_1.DOMHelper])\n    ], IdDecorator);\n    return IdDecorator;\n}());\nexports.IdDecorator = IdDecorator;\n//# sourceMappingURL=id-decorator.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/id-decorator.js\n// module id = 249\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"../types\");\nfunction overrideViewerOptions(container, options) {\n    var defaultOptions = container.get(types_1.TYPES.ViewerOptions);\n    for (var p in options) {\n        defaultOptions[p] = options[p];\n    }\n    return defaultOptions;\n}\nexports.overrideViewerOptions = overrideViewerOptions;\n//# sourceMappingURL=viewer-options.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/base/views/viewer-options.js\n// module id = 250\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar bounds_manipulation_1 = require(\"./bounds-manipulation\");\nvar hidden_bounds_updater_1 = require(\"./hidden-bounds-updater\");\nvar layout_1 = require(\"./layout\");\nvar boundsModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.ICommand).toConstructor(bounds_manipulation_1.SetBoundsCommand);\n    bind(types_1.TYPES.ICommand).toConstructor(bounds_manipulation_1.RequestBoundsCommand);\n    bind(types_1.TYPES.HiddenVNodeDecorator).to(hidden_bounds_updater_1.HiddenBoundsUpdater).inSingletonScope();\n    bind(types_1.TYPES.Layouter).to(layout_1.Layouter).inSingletonScope();\n    bind(types_1.TYPES.LayoutRegistry).to(layout_1.LayoutRegistry).inSingletonScope();\n});\nexports.default = boundsModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/di.config.js\n// module id = 251\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar geometry_1 = require(\"../../utils/geometry\");\nvar smodel_1 = require(\"../../base/model/smodel\");\nvar bounds_manipulation_1 = require(\"./bounds-manipulation\");\nvar model_1 = require(\"./model\");\nvar layout_1 = require(\"./layout\");\nvar model_2 = require(\"../export/model\");\nvar BoundsData = /** @class */ (function () {\n    function BoundsData() {\n    }\n    return BoundsData;\n}());\nexports.BoundsData = BoundsData;\n/**\n * Grabs the bounds from hidden SVG DOM elements, applies layouts and fires\n * ComputedBoundsActions.\n *\n * The actual bounds of an element can usually not be determined from the SModel\n * as they depend on the view implementation and CSS stylings. So the best way is\n * to grab them from a live (but hidden) SVG using getBBox().\n *\n * If an element is Alignable, and the top-left corner of its bounding box is not\n * the origin, we also issue a realign with the ComputedBoundsAction.\n */\nvar HiddenBoundsUpdater = /** @class */ (function () {\n    function HiddenBoundsUpdater(actionDispatcher, layouter) {\n        this.actionDispatcher = actionDispatcher;\n        this.layouter = layouter;\n        this.element2boundsData = new Map;\n    }\n    HiddenBoundsUpdater.prototype.decorate = function (vnode, element) {\n        if (model_1.isSizeable(element) || model_1.isLayoutContainer(element)) {\n            this.element2boundsData.set(element, {\n                vnode: vnode,\n                bounds: element.bounds,\n                boundsChanged: false,\n                alignmentChanged: false\n            });\n        }\n        if (element instanceof smodel_1.SModelRoot)\n            this.root = element;\n        return vnode;\n    };\n    HiddenBoundsUpdater.prototype.postUpdate = function () {\n        if (this.root !== undefined && model_2.isExportable(this.root) && this.root.export)\n            return;\n        this.getBoundsFromDOM();\n        this.layouter.layout(this.element2boundsData);\n        var resizes = [];\n        var realignments = [];\n        this.element2boundsData.forEach(function (boundsData, element) {\n            if (boundsData.boundsChanged && boundsData.bounds !== undefined)\n                resizes.push({\n                    elementId: element.id,\n                    newBounds: boundsData.bounds\n                });\n            if (boundsData.alignmentChanged && boundsData.alignment !== undefined)\n                realignments.push({\n                    elementId: element.id,\n                    newAlignment: boundsData.alignment\n                });\n        });\n        var revision = (this.root !== undefined) ? this.root.revision : undefined;\n        this.actionDispatcher.dispatch(new bounds_manipulation_1.ComputedBoundsAction(resizes, revision, realignments));\n        this.element2boundsData.clear();\n    };\n    HiddenBoundsUpdater.prototype.getBoundsFromDOM = function () {\n        var _this = this;\n        this.element2boundsData.forEach(function (boundsData, element) {\n            if (boundsData.bounds && model_1.isSizeable(element)) {\n                var vnode = boundsData.vnode;\n                if (vnode && vnode.elm) {\n                    var boundingBox = _this.getBounds(vnode.elm, element);\n                    if (model_1.isAlignable(element) && !(geometry_1.almostEquals(boundingBox.x, 0) && geometry_1.almostEquals(boundingBox.y, 0))) {\n                        boundsData.alignment = {\n                            x: -boundingBox.x,\n                            y: -boundingBox.y\n                        };\n                        boundsData.alignmentChanged = true;\n                    }\n                    var newBounds = {\n                        x: element.bounds.x,\n                        y: element.bounds.y,\n                        width: boundingBox.width,\n                        height: boundingBox.height\n                    };\n                    if (!(geometry_1.almostEquals(newBounds.x, element.bounds.x)\n                        && geometry_1.almostEquals(newBounds.y, element.bounds.y)\n                        && geometry_1.almostEquals(newBounds.width, element.bounds.width)\n                        && geometry_1.almostEquals(newBounds.height, element.bounds.height))) {\n                        boundsData.bounds = newBounds;\n                        boundsData.boundsChanged = true;\n                    }\n                }\n            }\n        });\n    };\n    HiddenBoundsUpdater.prototype.getBounds = function (elm, element) {\n        var bounds = elm.getBBox();\n        return {\n            x: bounds.x,\n            y: bounds.y,\n            width: bounds.width,\n            height: bounds.height\n        };\n    };\n    HiddenBoundsUpdater = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.Layouter)),\n        __metadata(\"design:paramtypes\", [Object, layout_1.Layouter])\n    ], HiddenBoundsUpdater);\n    return HiddenBoundsUpdater;\n}());\nexports.HiddenBoundsUpdater = HiddenBoundsUpdater;\n//# sourceMappingURL=hidden-bounds-updater.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/hidden-bounds-updater.js\n// module id = 252\n// module chunks = 0","\"use strict\";\n/*\n* Copyright (C) 2017 TypeFox and others.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar animation_1 = require(\"../../base/animations/animation\");\nvar ResizeAnimation = /** @class */ (function (_super) {\n    __extends(ResizeAnimation, _super);\n    function ResizeAnimation(model, elementResizes, context, reverse) {\n        if (reverse === void 0) { reverse = false; }\n        var _this = _super.call(this, context) || this;\n        _this.model = model;\n        _this.elementResizes = elementResizes;\n        _this.reverse = reverse;\n        return _this;\n    }\n    ResizeAnimation.prototype.tween = function (t) {\n        var _this = this;\n        this.elementResizes.forEach(function (elementResize) {\n            var element = elementResize.element;\n            var newDimension = (_this.reverse) ? {\n                width: (1 - t) * elementResize.toDimension.width + t * elementResize.fromDimension.width,\n                height: (1 - t) * elementResize.toDimension.height + t * elementResize.fromDimension.height\n            } : {\n                width: (1 - t) * elementResize.fromDimension.width + t * elementResize.toDimension.width,\n                height: (1 - t) * elementResize.fromDimension.height + t * elementResize.toDimension.height\n            };\n            element.bounds = {\n                x: element.bounds.x,\n                y: element.bounds.y,\n                width: newDimension.width,\n                height: newDimension.height\n            };\n        });\n        return this.model;\n    };\n    return ResizeAnimation;\n}(animation_1.Animation));\nexports.ResizeAnimation = ResizeAnimation;\n//# sourceMappingURL=resize.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/bounds/resize.js\n// module id = 253\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar button_handler_1 = require(\"./button-handler\");\nvar buttonModule = new inversify_1.ContainerModule(function (bind) {\n    bind(button_handler_1.ButtonHandlerRegistry).toSelf().inSingletonScope();\n});\nexports.default = buttonModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/button/di.config.js\n// module id = 254\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar expand_1 = require(\"./expand\");\nvar expandModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.IButtonHandler).toConstructor(expand_1.ExpandButtonHandler);\n});\nexports.default = expandModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/expand/di.config.js\n// module id = 255\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar model_1 = require(\"./model\");\nvar smodel_utils_1 = require(\"../../base/model/smodel-utils\");\nvar JSX = { createElement: snabbdom.svg };\nvar ExpandButtonView = /** @class */ (function () {\n    function ExpandButtonView() {\n    }\n    ExpandButtonView.prototype.render = function (button, context) {\n        var expandable = smodel_utils_1.findParentByFeature(button, model_1.isExpandable);\n        var path = (expandable !== undefined && expandable.expanded)\n            ? 'M 1,5 L 8,12 L 15,5 Z'\n            : 'M 1,8 L 8,15 L 8,1 Z';\n        return JSX.createElement(\"g\", { \"class-sprotty-button\": \"{true}\", \"class-enabled\": \"{button.enabled}\" },\n            JSX.createElement(\"rect\", { x: 0, y: 0, width: 16, height: 16, opacity: 0 }),\n            JSX.createElement(\"path\", { d: path }));\n    };\n    return ExpandButtonView;\n}());\nexports.ExpandButtonView = ExpandButtonView;\n//# sourceMappingURL=views.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/expand/views.js\n// module id = 256\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar export_1 = require(\"./export\");\nvar svg_exporter_1 = require(\"./svg-exporter\");\nvar exportSvgModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.KeyListener).to(export_1.ExportSvgKeyListener).inSingletonScope();\n    bind(types_1.TYPES.HiddenVNodeDecorator).to(export_1.ExportSvgDecorator).inSingletonScope();\n    bind(types_1.TYPES.ICommand).toConstructor(export_1.ExportSvgCommand);\n    bind(types_1.TYPES.SvgExporter).to(svg_exporter_1.SvgExporter).inSingletonScope();\n});\nexports.default = exportSvgModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/export/di.config.js\n// module id = 257\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar fade_1 = require(\"./fade\");\nvar fadeModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.IVNodeDecorator).to(fade_1.ElementFader).inSingletonScope();\n});\nexports.default = fadeModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/fade/di.config.js\n// module id = 258\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar hover_1 = require(\"./hover\");\nvar popup_position_updater_1 = require(\"./popup-position-updater\");\nvar initializer_1 = require(\"./initializer\");\nvar hoverModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.PopupVNodeDecorator).to(popup_position_updater_1.PopupPositionUpdater).inSingletonScope();\n    bind(types_1.TYPES.IActionHandlerInitializer).to(initializer_1.PopupActionHandlerInitializer);\n    bind(types_1.TYPES.ICommand).toConstructor(hover_1.HoverFeedbackCommand);\n    bind(types_1.TYPES.ICommand).toConstructor(hover_1.SetPopupModelCommand);\n    bind(types_1.TYPES.MouseListener).to(hover_1.HoverMouseListener);\n    bind(types_1.TYPES.PopupMouseListener).to(hover_1.PopupHoverMouseListener);\n    bind(types_1.TYPES.KeyListener).to(hover_1.HoverKeyListener);\n    bind(types_1.TYPES.HoverState).toConstantValue({\n        mouseOverTimer: undefined,\n        mouseOutTimer: undefined,\n        popupOpen: false,\n        previousPopupElement: undefined\n    });\n});\nexports.default = hoverModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/hover/di.config.js\n// module id = 259\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar hover_1 = require(\"./hover\");\nvar smodel_factory_1 = require(\"../../base/model/smodel-factory\");\nvar center_fit_1 = require(\"../viewport/center-fit\");\nvar viewport_1 = require(\"../viewport/viewport\");\nvar move_1 = require(\"../move/move\");\nvar ClosePopupActionHandler = /** @class */ (function () {\n    function ClosePopupActionHandler() {\n        this.popupOpen = false;\n    }\n    ClosePopupActionHandler.prototype.handle = function (action) {\n        if (action.kind === hover_1.SetPopupModelCommand.KIND) {\n            this.popupOpen = action.newRoot.type !== smodel_factory_1.EMPTY_ROOT.type;\n        }\n        else if (this.popupOpen) {\n            return new hover_1.SetPopupModelAction({ id: smodel_factory_1.EMPTY_ROOT.id, type: smodel_factory_1.EMPTY_ROOT.type });\n        }\n    };\n    return ClosePopupActionHandler;\n}());\nvar PopupActionHandlerInitializer = /** @class */ (function () {\n    function PopupActionHandlerInitializer() {\n    }\n    PopupActionHandlerInitializer.prototype.initialize = function (registry) {\n        var closePopupActionHandler = new ClosePopupActionHandler();\n        registry.register(center_fit_1.FitToScreenCommand.KIND, closePopupActionHandler);\n        registry.register(center_fit_1.CenterCommand.KIND, closePopupActionHandler);\n        registry.register(viewport_1.ViewportCommand.KIND, closePopupActionHandler);\n        registry.register(hover_1.SetPopupModelCommand.KIND, closePopupActionHandler);\n        registry.register(move_1.MoveCommand.KIND, closePopupActionHandler);\n    };\n    PopupActionHandlerInitializer = __decorate([\n        inversify_1.injectable()\n    ], PopupActionHandlerInitializer);\n    return PopupActionHandlerInitializer;\n}());\nexports.PopupActionHandlerInitializer = PopupActionHandlerInitializer;\n//# sourceMappingURL=initializer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/hover/initializer.js\n// module id = 260\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar PopupPositionUpdater = /** @class */ (function () {\n    function PopupPositionUpdater(options) {\n        this.options = options;\n    }\n    PopupPositionUpdater.prototype.decorate = function (vnode, element) {\n        return vnode;\n    };\n    PopupPositionUpdater.prototype.postUpdate = function () {\n        var popupDiv = document.getElementById(this.options.popupDiv);\n        if (popupDiv !== null && typeof window !== 'undefined') {\n            var boundingClientRect = popupDiv.getBoundingClientRect();\n            if (window.innerHeight < boundingClientRect.height + boundingClientRect.top) {\n                popupDiv.style.top = (window.scrollY + window.innerHeight - boundingClientRect.height - 5) + 'px';\n            }\n            if (window.innerWidth < boundingClientRect.left + boundingClientRect.width) {\n                popupDiv.style.left = (window.scrollX + window.innerWidth - boundingClientRect.width - 5) + 'px';\n            }\n            if (boundingClientRect.left < 0) {\n                popupDiv.style.left = '0px';\n            }\n            if (boundingClientRect.top < 0) {\n                popupDiv.style.top = '0px';\n            }\n        }\n    };\n    PopupPositionUpdater = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __metadata(\"design:paramtypes\", [Object])\n    ], PopupPositionUpdater);\n    return PopupPositionUpdater;\n}());\nexports.PopupPositionUpdater = PopupPositionUpdater;\n//# sourceMappingURL=popup-position-updater.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/hover/popup-position-updater.js\n// module id = 261\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar move_1 = require(\"./move\");\nvar moveModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.MouseListener).to(move_1.MoveMouseListener);\n    bind(types_1.TYPES.ICommand).toConstructor(move_1.MoveCommand);\n    bind(types_1.TYPES.IVNodeDecorator).to(move_1.LocationDecorator);\n    bind(types_1.TYPES.HiddenVNodeDecorator).to(move_1.LocationDecorator);\n});\nexports.default = moveModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/move/di.config.js\n// module id = 262\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar open_1 = require(\"./open\");\nvar openModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.MouseListener).to(open_1.OpenMouseListener);\n});\nexports.default = openModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/open/di.config.js\n// module id = 263\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar select_1 = require(\"./select\");\nvar selectModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.ICommand).toConstructor(select_1.SelectCommand);\n    bind(types_1.TYPES.ICommand).toConstructor(select_1.SelectAllCommand);\n    bind(types_1.TYPES.KeyListener).to(select_1.SelectKeyboardListener);\n    bind(types_1.TYPES.MouseListener).to(select_1.SelectMouseListener);\n});\nexports.default = selectModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/select/di.config.js\n// module id = 264\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar undo_redo_1 = require(\"./undo-redo\");\nvar undoRedoModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.KeyListener).to(undo_redo_1.UndoRedoKeyListener);\n});\nexports.default = undoRedoModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/undo-redo/di.config.js\n// module id = 265\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../../base/types\");\nvar center_fit_1 = require(\"./center-fit\");\nvar viewport_1 = require(\"./viewport\");\nvar scroll_1 = require(\"./scroll\");\nvar zoom_1 = require(\"./zoom\");\nvar viewportModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.ICommand).toConstructor(center_fit_1.CenterCommand);\n    bind(types_1.TYPES.ICommand).toConstructor(center_fit_1.FitToScreenCommand);\n    bind(types_1.TYPES.ICommand).toConstructor(viewport_1.ViewportCommand);\n    bind(types_1.TYPES.KeyListener).to(center_fit_1.CenterKeyboardListener);\n    bind(types_1.TYPES.MouseListener).to(scroll_1.ScrollMouseListener);\n    bind(types_1.TYPES.MouseListener).to(zoom_1.ZoomMouseListener);\n});\nexports.default = viewportModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/features/viewport/di.config.js\n// module id = 266\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar smodel_factory_1 = require(\"../base/model/smodel-factory\");\nvar smodel_utils_1 = require(\"../base/model/smodel-utils\");\nvar sgraph_1 = require(\"./sgraph\");\nvar model_1 = require(\"../features/button/model\");\nvar SGraphFactory = /** @class */ (function (_super) {\n    __extends(SGraphFactory, _super);\n    function SGraphFactory() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SGraphFactory.prototype.createElement = function (schema, parent) {\n        if (this.isNodeSchema(schema))\n            return this.initializeChild(new sgraph_1.SNode(), schema, parent);\n        else if (this.isPortSchema(schema))\n            return this.initializeChild(new sgraph_1.SPort(), schema, parent);\n        else if (this.isEdgeSchema(schema))\n            return this.initializeChild(new sgraph_1.SEdge(), schema, parent);\n        else if (this.isLabelSchema(schema))\n            return this.initializeChild(new sgraph_1.SLabel(), schema, parent);\n        else if (this.isCompartmentSchema(schema))\n            return this.initializeChild(new sgraph_1.SCompartment(), schema, parent);\n        if (this.isButtonSchema(schema))\n            return this.initializeChild(new model_1.SButton(), schema, parent);\n        else\n            return _super.prototype.createElement.call(this, schema, parent);\n    };\n    SGraphFactory.prototype.createRoot = function (schema) {\n        if (this.isGraphSchema(schema))\n            return this.initializeRoot(new sgraph_1.SGraph(), schema);\n        else\n            return _super.prototype.createRoot.call(this, schema);\n    };\n    SGraphFactory.prototype.isGraphSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'graph';\n    };\n    SGraphFactory.prototype.isNodeSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'node';\n    };\n    SGraphFactory.prototype.isPortSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'port';\n    };\n    SGraphFactory.prototype.isEdgeSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'edge';\n    };\n    SGraphFactory.prototype.isLabelSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'label';\n    };\n    SGraphFactory.prototype.isCompartmentSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'comp';\n    };\n    SGraphFactory.prototype.isButtonSchema = function (schema) {\n        return smodel_utils_1.getBasicType(schema) === 'button';\n    };\n    SGraphFactory = __decorate([\n        inversify_1.injectable()\n    ], SGraphFactory);\n    return SGraphFactory;\n}(smodel_factory_1.SModelFactory));\nexports.SGraphFactory = SGraphFactory;\n//# sourceMappingURL=sgraph-factory.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/graph/sgraph-factory.js\n// module id = 267\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar strings_1 = require(\"snabbdom-virtualize/strings\");\nvar PreRenderedView = /** @class */ (function () {\n    function PreRenderedView() {\n    }\n    PreRenderedView.prototype.render = function (model, context) {\n        var node = strings_1.default(model.code);\n        this.correctNamespace(node);\n        return node;\n    };\n    PreRenderedView.prototype.correctNamespace = function (node) {\n        if (node.sel === 'svg' || node.sel === 'g')\n            this.setNamespace(node, 'http://www.w3.org/2000/svg');\n    };\n    PreRenderedView.prototype.setNamespace = function (node, ns) {\n        if (node.data === undefined)\n            node.data = {};\n        node.data.ns = ns;\n        var children = node.children;\n        if (children !== undefined) {\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (typeof child !== 'string')\n                    this.setNamespace(child, ns);\n            }\n        }\n    };\n    return PreRenderedView;\n}());\nexports.PreRenderedView = PreRenderedView;\n//# sourceMappingURL=generic-views.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/lib/generic-views.js\n// module id = 268\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar vnode_utils_1 = require(\"../base/views/vnode-utils\");\nvar JSX = { createElement: snabbdom.html };\nvar HtmlRootView = /** @class */ (function () {\n    function HtmlRootView() {\n    }\n    HtmlRootView.prototype.render = function (model, context) {\n        var root = JSX.createElement(\"div\", null, context.renderChildren(model));\n        for (var _i = 0, _a = model.classes; _i < _a.length; _i++) {\n            var c = _a[_i];\n            vnode_utils_1.setClass(root, c, true);\n        }\n        return root;\n    };\n    return HtmlRootView;\n}());\nexports.HtmlRootView = HtmlRootView;\n//# sourceMappingURL=html-views.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/lib/html-views.js\n// module id = 269\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar smodel_1 = require(\"../base/model/smodel\");\nvar geometry_1 = require(\"../utils/geometry\");\nvar model_1 = require(\"../features/bounds/model\");\nvar model_2 = require(\"../features/move/model\");\nvar model_3 = require(\"../features/select/model\");\n/**\n * Root model element class for HTML content. Usually this is rendered with a `div` DOM element.\n */\nvar HtmlRoot = /** @class */ (function (_super) {\n    __extends(HtmlRoot, _super);\n    function HtmlRoot() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.classes = [];\n        return _this;\n    }\n    return HtmlRoot;\n}(smodel_1.SModelRoot));\nexports.HtmlRoot = HtmlRoot;\n/**\n * Pre-rendered elements contain HTML or SVG code to be transferred to the DOM. This can be useful to\n * render complex figures or to compute the view on the server instead of the client code.\n */\nvar PreRenderedElement = /** @class */ (function (_super) {\n    __extends(PreRenderedElement, _super);\n    function PreRenderedElement() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return PreRenderedElement;\n}(smodel_1.SChildElement));\nexports.PreRenderedElement = PreRenderedElement;\n/**\n * Same as PreRenderedElement, but with a position and a size.\n */\nvar ShapedPreRenderedElement = /** @class */ (function (_super) {\n    __extends(ShapedPreRenderedElement, _super);\n    function ShapedPreRenderedElement() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.position = geometry_1.ORIGIN_POINT;\n        _this.size = geometry_1.EMPTY_DIMENSION;\n        _this.selected = false;\n        _this.alignment = geometry_1.ORIGIN_POINT;\n        return _this;\n    }\n    Object.defineProperty(ShapedPreRenderedElement.prototype, \"bounds\", {\n        get: function () {\n            return {\n                x: this.position.x,\n                y: this.position.y,\n                width: this.size.width,\n                height: this.size.height\n            };\n        },\n        set: function (newBounds) {\n            this.position = {\n                x: newBounds.x,\n                y: newBounds.y\n            };\n            this.size = {\n                width: newBounds.width,\n                height: newBounds.height\n            };\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ShapedPreRenderedElement.prototype.hasFeature = function (feature) {\n        return feature === model_2.moveFeature || feature === model_1.boundsFeature || feature === model_3.selectFeature || feature === model_1.alignFeature;\n    };\n    return ShapedPreRenderedElement;\n}(PreRenderedElement));\nexports.ShapedPreRenderedElement = ShapedPreRenderedElement;\n//# sourceMappingURL=model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/lib/model.js\n// module id = 270\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar snabbdom = require(\"snabbdom-jsx\");\nvar geometry_1 = require(\"../utils/geometry\");\nvar views_1 = require(\"../graph/views\");\nvar JSX = { createElement: snabbdom.svg };\nvar SvgViewportView = /** @class */ (function () {\n    function SvgViewportView() {\n    }\n    SvgViewportView.prototype.render = function (model, context) {\n        var transform = \"scale(\" + model.zoom + \") translate(\" + -model.scroll.x + \",\" + -model.scroll.y + \")\";\n        return JSX.createElement(\"svg\", null,\n            JSX.createElement(\"g\", { transform: transform }, context.renderChildren(model)));\n    };\n    return SvgViewportView;\n}());\nexports.SvgViewportView = SvgViewportView;\nvar CircularNodeView = /** @class */ (function (_super) {\n    __extends(CircularNodeView, _super);\n    function CircularNodeView() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CircularNodeView.prototype.render = function (node, context) {\n        var radius = this.getRadius(node);\n        return JSX.createElement(\"g\", null,\n            JSX.createElement(\"circle\", { \"class-sprotty-node\": true, \"class-mouseover\": node.hoverFeedback, \"class-selected\": node.selected, r: radius, cx: radius, cy: radius }));\n    };\n    CircularNodeView.prototype.getRadius = function (node) {\n        var d = Math.min(node.size.width, node.size.height);\n        if (d > 0)\n            return d / 2;\n        else\n            return 0;\n    };\n    CircularNodeView.prototype.getAnchor = function (node, refPoint, anchorCorrection) {\n        var radius = this.getRadius(node);\n        var cx = node.position.x + radius;\n        var cy = node.position.y + radius;\n        var dx = cx - refPoint.x;\n        var dy = cy - refPoint.y;\n        var distance = Math.sqrt(dx * dx + dy * dy);\n        var normX = (dx / distance) || 0;\n        var normY = (dy / distance) || 0;\n        var strokeCorrection = 0.5 * this.getStrokeWidth(node);\n        return {\n            x: cx - normX * (radius + strokeCorrection + anchorCorrection),\n            y: cy - normY * (radius + strokeCorrection + anchorCorrection)\n        };\n    };\n    return CircularNodeView;\n}(views_1.AnchorableView));\nexports.CircularNodeView = CircularNodeView;\nvar RectangularNodeView = /** @class */ (function (_super) {\n    __extends(RectangularNodeView, _super);\n    function RectangularNodeView() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    RectangularNodeView.prototype.render = function (node, context) {\n        return JSX.createElement(\"g\", null,\n            JSX.createElement(\"rect\", { \"class-sprotty-node\": true, \"class-mouseover\": node.hoverFeedback, \"class-selected\": node.selected, x: \"0\", y: \"0\", width: node.size.width, height: node.size.height }));\n    };\n    RectangularNodeView.prototype.getAnchor = function (node, refPoint, anchorCorrection) {\n        var bounds = node.bounds;\n        var correction = 0.5 * this.getStrokeWidth(node) + anchorCorrection;\n        var c = geometry_1.center(bounds);\n        var finder = new NearestPointFinder(c, refPoint);\n        if (!geometry_1.almostEquals(c.y, refPoint.y)) {\n            var xTop = this.getXIntersection(bounds.y, c, refPoint);\n            if (xTop >= bounds.x && xTop <= bounds.x + bounds.width)\n                finder.addCandidate(xTop, bounds.y - correction);\n            var xBottom = this.getXIntersection(bounds.y + bounds.height, c, refPoint);\n            if (xBottom >= bounds.x && xBottom <= bounds.x + bounds.width)\n                finder.addCandidate(xBottom, bounds.y + bounds.height + correction);\n        }\n        if (!geometry_1.almostEquals(c.x, refPoint.x)) {\n            var yLeft = this.getYIntersection(bounds.x, c, refPoint);\n            if (yLeft >= bounds.y && yLeft <= bounds.y + bounds.height)\n                finder.addCandidate(bounds.x - correction, yLeft);\n            var yRight = this.getYIntersection(bounds.x + bounds.width, c, refPoint);\n            if (yRight >= bounds.y && yRight <= bounds.y + bounds.height)\n                finder.addCandidate(bounds.x + bounds.width + correction, yRight);\n        }\n        return finder.best;\n    };\n    RectangularNodeView.prototype.getXIntersection = function (yIntersection, center, point) {\n        var t = (yIntersection - center.y) / (point.y - center.y);\n        return (point.x - center.x) * t + center.x;\n    };\n    RectangularNodeView.prototype.getYIntersection = function (xIntersection, center, point) {\n        var t = (xIntersection - center.x) / (point.x - center.x);\n        return (point.y - center.y) * t + center.y;\n    };\n    return RectangularNodeView;\n}(views_1.AnchorableView));\nexports.RectangularNodeView = RectangularNodeView;\nvar NearestPointFinder = /** @class */ (function () {\n    function NearestPointFinder(center, refPoint) {\n        this.center = center;\n        this.refPoint = refPoint;\n        this.currentDist = -1;\n    }\n    NearestPointFinder.prototype.addCandidate = function (x, y) {\n        var dx = this.refPoint.x - x;\n        var dy = this.refPoint.y - y;\n        var dist = dx * dx + dy * dy;\n        if (this.currentDist < 0 || dist < this.currentDist) {\n            this.currentBest = {\n                x: x,\n                y: y\n            };\n            this.currentDist = dist;\n        }\n    };\n    Object.defineProperty(NearestPointFinder.prototype, \"best\", {\n        get: function () {\n            if (this.currentBest === undefined)\n                return this.center;\n            else\n                return this.currentBest;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    return NearestPointFinder;\n}());\n//# sourceMappingURL=svg-views.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/lib/svg-views.js\n// module id = 271\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../base/types\");\n/**\n * This container module does NOT provide any binding for TYPES.ModelSource because that needs to be\n * done according to the needs of the application. You can choose between a local (LocalModelSource)\n * and a remote (e.g. WebSocketDiagramServer) implementation.\n */\nvar modelSourceModule = new inversify_1.ContainerModule(function (bind) {\n    bind(types_1.TYPES.ModelSourceProvider).toProvider(function (context) {\n        return function () {\n            return new Promise(function (resolve) {\n                resolve(context.container.get(types_1.TYPES.ModelSource));\n            });\n        };\n    });\n});\nexports.default = modelSourceModule;\n//# sourceMappingURL=di.config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/di.config.js\n// module id = 272\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar types_1 = require(\"../base/types\");\nvar action_handler_1 = require(\"../base/actions/action-handler\");\nvar smodel_utils_1 = require(\"../base/model/smodel-utils\");\nvar set_model_1 = require(\"../base/features/set-model\");\nvar smodel_1 = require(\"../base/model/smodel\");\nvar bounds_manipulation_1 = require(\"../features/bounds/bounds-manipulation\");\nvar model_matching_1 = require(\"../features/update/model-matching\");\nvar update_model_1 = require(\"../features/update/update-model\");\nvar hover_1 = require(\"../features/hover/hover\");\nvar model_source_1 = require(\"./model-source\");\nvar svg_exporter_1 = require(\"../features/export/svg-exporter\");\nvar file_saver_1 = require(\"file-saver\");\nvar expand_1 = require(\"../features/expand/expand\");\nvar diagram_state_1 = require(\"./diagram-state\");\n/**\n * A model source that handles actions for bounds calculation and model\n * updates.\n */\nvar LocalModelSource = /** @class */ (function (_super) {\n    __extends(LocalModelSource, _super);\n    function LocalModelSource(actionDispatcher, actionHandlerRegistry, viewerOptions, popupModelFactory, modelProvider) {\n        var _this = _super.call(this, actionDispatcher, actionHandlerRegistry, viewerOptions) || this;\n        _this.popupModelFactory = popupModelFactory;\n        _this.modelProvider = modelProvider;\n        _this.currentRoot = {\n            type: 'NONE',\n            id: 'ROOT'\n        };\n        _this.diagramState = {\n            expansionState: new diagram_state_1.ExpansionState(_this.currentRoot)\n        };\n        return _this;\n    }\n    Object.defineProperty(LocalModelSource.prototype, \"model\", {\n        get: function () {\n            return this.currentRoot;\n        },\n        set: function (root) {\n            this.setModel(root);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    LocalModelSource.prototype.initialize = function (registry) {\n        _super.prototype.initialize.call(this, registry);\n        // Register model manipulation commands\n        registry.registerCommand(update_model_1.UpdateModelCommand);\n        // Register this model source\n        registry.register(bounds_manipulation_1.ComputedBoundsAction.KIND, this);\n        registry.register(hover_1.RequestPopupModelAction.KIND, this);\n        registry.register(expand_1.CollapseExpandAction.KIND, this);\n        registry.register(expand_1.CollapseExpandAllAction.KIND, this);\n    };\n    LocalModelSource.prototype.setModel = function (newRoot) {\n        this.currentRoot = newRoot;\n        this.diagramState = {\n            expansionState: new diagram_state_1.ExpansionState(newRoot)\n        };\n        this.submitModel(newRoot, false);\n    };\n    LocalModelSource.prototype.updateModel = function (newRoot) {\n        if (newRoot === undefined) {\n            this.submitModel(this.currentRoot, true);\n        }\n        else {\n            this.currentRoot = newRoot;\n            this.submitModel(newRoot, true);\n        }\n    };\n    LocalModelSource.prototype.submitModel = function (newRoot, update) {\n        if (this.viewerOptions.needsClientLayout) {\n            this.actionDispatcher.dispatch(new bounds_manipulation_1.RequestBoundsAction(newRoot));\n        }\n        else {\n            if (update) {\n                this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(newRoot));\n            }\n            else {\n                this.actionDispatcher.dispatch(new set_model_1.SetModelAction(newRoot));\n            }\n            if (this.onModelSubmitted !== undefined) {\n                this.onModelSubmitted(newRoot);\n            }\n        }\n    };\n    LocalModelSource.prototype.applyMatches = function (matches) {\n        var root = this.currentRoot;\n        model_matching_1.applyMatches(root, matches);\n        if (this.viewerOptions.needsClientLayout) {\n            this.actionDispatcher.dispatch(new bounds_manipulation_1.RequestBoundsAction(root));\n        }\n        else {\n            var update = new update_model_1.UpdateModelAction();\n            update.matches = matches;\n            this.actionDispatcher.dispatch(update);\n            if (this.onModelSubmitted !== undefined) {\n                this.onModelSubmitted(root);\n            }\n        }\n    };\n    LocalModelSource.prototype.addElements = function (elements) {\n        var matches = [];\n        for (var i in elements) {\n            var e = elements[i];\n            if (e.element !== undefined && e.parentId !== undefined) {\n                matches.push({\n                    right: e.element,\n                    rightParentId: e.parentId\n                });\n            }\n            else if (e.id !== undefined) {\n                matches.push({\n                    right: e,\n                    rightParentId: this.currentRoot.id\n                });\n            }\n        }\n        this.applyMatches(matches);\n    };\n    LocalModelSource.prototype.removeElements = function (elements) {\n        var matches = [];\n        var index = new smodel_1.SModelIndex();\n        index.add(this.currentRoot);\n        for (var i in elements) {\n            var e = elements[i];\n            if (e.elementId !== undefined && e.parentId !== undefined) {\n                var element = index.getById(e.elementId);\n                if (element !== undefined) {\n                    matches.push({\n                        left: element,\n                        leftParentId: e.parentId\n                    });\n                }\n            }\n            else {\n                var element = index.getById(e);\n                if (element !== undefined) {\n                    matches.push({\n                        left: element,\n                        leftParentId: this.currentRoot.id\n                    });\n                }\n            }\n        }\n        this.applyMatches(matches);\n    };\n    LocalModelSource.prototype.handle = function (action) {\n        switch (action.kind) {\n            case set_model_1.RequestModelAction.KIND:\n                this.handleRequestModel(action);\n                break;\n            case bounds_manipulation_1.ComputedBoundsAction.KIND:\n                this.handleComputedBounds(action);\n                break;\n            case hover_1.RequestPopupModelAction.KIND:\n                this.handleRequestPopupModel(action);\n                break;\n            case svg_exporter_1.ExportSvgAction.KIND:\n                this.handleExportSvgAction(action);\n                break;\n            case expand_1.CollapseExpandAction.KIND:\n                this.handleCollapseExpandAction(action);\n                break;\n            case expand_1.CollapseExpandAllAction.KIND:\n                this.handleCollapseExpandAllAction(action);\n                break;\n        }\n    };\n    LocalModelSource.prototype.handleRequestModel = function (action) {\n        this.submitModel(this.currentRoot, false);\n    };\n    LocalModelSource.prototype.handleComputedBounds = function (action) {\n        var root = this.currentRoot;\n        var index = new smodel_1.SModelIndex();\n        index.add(root);\n        for (var _i = 0, _a = action.bounds; _i < _a.length; _i++) {\n            var b = _a[_i];\n            var element = index.getById(b.elementId);\n            if (element !== undefined)\n                this.applyBounds(element, b.newBounds);\n        }\n        if (action.alignments !== undefined) {\n            for (var _b = 0, _c = action.alignments; _b < _c.length; _b++) {\n                var a = _c[_b];\n                var element = index.getById(a.elementId);\n                if (element !== undefined)\n                    this.applyAlignment(element, a.newAlignment);\n            }\n        }\n        this.actionDispatcher.dispatch(new update_model_1.UpdateModelAction(root));\n        if (this.onModelSubmitted !== undefined) {\n            this.onModelSubmitted(root);\n        }\n    };\n    LocalModelSource.prototype.applyBounds = function (element, newBounds) {\n        var e = element;\n        e.position = { x: newBounds.x, y: newBounds.y };\n        e.size = { width: newBounds.width, height: newBounds.height };\n    };\n    LocalModelSource.prototype.applyAlignment = function (element, newAlignment) {\n        var e = element;\n        e.alignment = { x: newAlignment.x, y: newAlignment.y };\n    };\n    LocalModelSource.prototype.handleRequestPopupModel = function (action) {\n        if (this.popupModelFactory !== undefined) {\n            var element = smodel_utils_1.findElement(this.currentRoot, action.elementId);\n            var popupRoot = this.popupModelFactory(action, element);\n            if (popupRoot !== undefined) {\n                popupRoot.canvasBounds = action.bounds;\n                this.actionDispatcher.dispatch(new hover_1.SetPopupModelAction(popupRoot));\n            }\n        }\n    };\n    LocalModelSource.prototype.handleExportSvgAction = function (action) {\n        var blob = new Blob([action.svg], { type: \"text/plain;charset=utf-8\" });\n        file_saver_1.saveAs(blob, \"diagram.svg\");\n    };\n    LocalModelSource.prototype.handleCollapseExpandAction = function (action) {\n        if (this.modelProvider !== undefined) {\n            this.diagramState.expansionState.apply(action);\n            var expandedModel = this.modelProvider.getModel(this.diagramState, this.currentRoot);\n            this.updateModel(expandedModel);\n        }\n    };\n    LocalModelSource.prototype.handleCollapseExpandAllAction = function (action) {\n        if (this.modelProvider !== undefined) {\n            if (action.expand) {\n                // Expanding all elements locally is currently not supported\n            }\n            else {\n                this.diagramState.expansionState.collapseAll();\n            }\n            var expandedModel = this.modelProvider.getModel(this.diagramState, this.currentRoot);\n            this.updateModel(expandedModel);\n        }\n    };\n    LocalModelSource = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.IActionDispatcher)),\n        __param(1, inversify_1.inject(types_1.TYPES.ActionHandlerRegistry)),\n        __param(2, inversify_1.inject(types_1.TYPES.ViewerOptions)),\n        __param(3, inversify_1.inject(types_1.TYPES.PopupModelFactory)), __param(3, inversify_1.optional()),\n        __param(4, inversify_1.inject(types_1.TYPES.StateAwareModelProvider)), __param(4, inversify_1.optional()),\n        __metadata(\"design:paramtypes\", [Object, action_handler_1.ActionHandlerRegistry, Object, Function, Object])\n    ], LocalModelSource);\n    return LocalModelSource;\n}(model_source_1.ModelSource));\nexports.LocalModelSource = LocalModelSource;\n//# sourceMappingURL=local-model-source.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/local-model-source.js\n// module id = 273\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar logging_1 = require(\"../utils/logging\");\nvar types_1 = require(\"../base/types\");\nvar LoggingAction = /** @class */ (function () {\n    function LoggingAction(severity, time, caller, message, params) {\n        this.severity = severity;\n        this.time = time;\n        this.caller = caller;\n        this.message = message;\n        this.params = params;\n        this.kind = LoggingAction.KIND;\n    }\n    LoggingAction.KIND = 'logging';\n    return LoggingAction;\n}());\nexports.LoggingAction = LoggingAction;\n/**\n * A logger that forwards messages of type 'error', 'warn', and 'info' to the model source.\n */\nvar ForwardingLogger = /** @class */ (function () {\n    function ForwardingLogger(modelSourceProvider, logLevel) {\n        this.modelSourceProvider = modelSourceProvider;\n        this.logLevel = logLevel;\n    }\n    ForwardingLogger.prototype.error = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= logging_1.LogLevel.error)\n            this.forward(thisArg, message, logging_1.LogLevel.error, params);\n    };\n    ForwardingLogger.prototype.warn = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= logging_1.LogLevel.warn)\n            this.forward(thisArg, message, logging_1.LogLevel.warn, params);\n    };\n    ForwardingLogger.prototype.info = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= logging_1.LogLevel.info)\n            this.forward(thisArg, message, logging_1.LogLevel.info, params);\n    };\n    ForwardingLogger.prototype.log = function (thisArg, message) {\n        var params = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            params[_i - 2] = arguments[_i];\n        }\n        if (this.logLevel >= logging_1.LogLevel.log) {\n            // We cannot forward 'log' level messages since that would lead to endless loops\n            try {\n                var caller = typeof thisArg === 'object' ? thisArg.constructor.name : String(thisArg);\n                console.log.apply(thisArg, [caller + ': ' + message].concat(params));\n            }\n            catch (error) { }\n        }\n    };\n    ForwardingLogger.prototype.forward = function (thisArg, message, logLevel, params) {\n        var date = new Date();\n        var action = new LoggingAction(logging_1.LogLevel[logLevel], date.toLocaleTimeString(), typeof thisArg === 'object' ? thisArg.constructor.name : String(thisArg), message, params.map(function (p) { return JSON.stringify(p); }));\n        this.modelSourceProvider().then(function (modelSource) {\n            try {\n                modelSource.handle(action);\n            }\n            catch (error) {\n                try {\n                    console.log.apply(thisArg, [message, action, error]);\n                }\n                catch (error) { }\n            }\n        });\n    };\n    ForwardingLogger = __decorate([\n        inversify_1.injectable(),\n        __param(0, inversify_1.inject(types_1.TYPES.ModelSourceProvider)),\n        __param(1, inversify_1.inject(types_1.TYPES.LogLevel)),\n        __metadata(\"design:paramtypes\", [Function, Number])\n    ], ForwardingLogger);\n    return ForwardingLogger;\n}());\nexports.ForwardingLogger = ForwardingLogger;\n//# sourceMappingURL=logging.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/logging.js\n// module id = 274\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inversify_1 = require(\"inversify\");\nvar diagram_server_1 = require(\"./diagram-server\");\n/**\n * An external ModelSource that connects to the model provider using a\n * websocket.\n */\nvar WebSocketDiagramServer = /** @class */ (function (_super) {\n    __extends(WebSocketDiagramServer, _super);\n    function WebSocketDiagramServer() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    WebSocketDiagramServer.prototype.listen = function (webSocket) {\n        var _this = this;\n        webSocket.addEventListener('message', function (event) {\n            _this.messageReceived(event.data);\n        });\n        webSocket.addEventListener('error', function (event) {\n            _this.logger.error(_this, 'error event received', event);\n        });\n        this.webSocket = webSocket;\n    };\n    WebSocketDiagramServer.prototype.disconnect = function () {\n        if (this.webSocket) {\n            this.webSocket.close();\n            this.webSocket = undefined;\n        }\n    };\n    WebSocketDiagramServer.prototype.sendMessage = function (message) {\n        if (this.webSocket) {\n            this.webSocket.send(JSON.stringify(message));\n        }\n        else {\n            throw new Error('WebSocket is not connected');\n        }\n    };\n    WebSocketDiagramServer = __decorate([\n        inversify_1.injectable()\n    ], WebSocketDiagramServer);\n    return WebSocketDiagramServer;\n}(diagram_server_1.DiagramServer));\nexports.WebSocketDiagramServer = WebSocketDiagramServer;\n//# sourceMappingURL=websocket.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/model-source/websocket.js\n// module id = 275\n// module chunks = 0","\"use strict\";\n/*\n * Copyright (C) 2017 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction rgb(red, green, blue) {\n    return {\n        red: red,\n        green: green,\n        blue: blue\n    };\n}\nexports.rgb = rgb;\nfunction toSVG(c) {\n    return 'rgb(' + c.red + ',' + c.green + ',' + c.blue + ')';\n}\nexports.toSVG = toSVG;\nvar ColorMap = /** @class */ (function () {\n    function ColorMap(stops) {\n        this.stops = stops;\n    }\n    ColorMap.prototype.getColor = function (t) {\n        t = Math.max(0, Math.min(0.99999999, t));\n        var i = Math.floor(t * this.stops.length);\n        return this.stops[i];\n    };\n    return ColorMap;\n}());\nexports.ColorMap = ColorMap;\n//# sourceMappingURL=color.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/lib/utils/color.js\n// module id = 276\n// module chunks = 0","function createElement(tagName) {\n    return document.createElement(tagName);\n}\nfunction createElementNS(namespaceURI, qualifiedName) {\n    return document.createElementNS(namespaceURI, qualifiedName);\n}\nfunction createTextNode(text) {\n    return document.createTextNode(text);\n}\nfunction createComment(text) {\n    return document.createComment(text);\n}\nfunction insertBefore(parentNode, newNode, referenceNode) {\n    parentNode.insertBefore(newNode, referenceNode);\n}\nfunction removeChild(node, child) {\n    node.removeChild(child);\n}\nfunction appendChild(node, child) {\n    node.appendChild(child);\n}\nfunction parentNode(node) {\n    return node.parentNode;\n}\nfunction nextSibling(node) {\n    return node.nextSibling;\n}\nfunction tagName(elm) {\n    return elm.tagName;\n}\nfunction setTextContent(node, text) {\n    node.textContent = text;\n}\nfunction getTextContent(node) {\n    return node.textContent;\n}\nfunction isElement(node) {\n    return node.nodeType === 1;\n}\nfunction isText(node) {\n    return node.nodeType === 3;\n}\nfunction isComment(node) {\n    return node.nodeType === 8;\n}\nexport var htmlDomApi = {\n    createElement: createElement,\n    createElementNS: createElementNS,\n    createTextNode: createTextNode,\n    createComment: createComment,\n    insertBefore: insertBefore,\n    removeChild: removeChild,\n    appendChild: appendChild,\n    parentNode: parentNode,\n    nextSibling: nextSibling,\n    tagName: tagName,\n    setTextContent: setTextContent,\n    getTextContent: getTextContent,\n    isElement: isElement,\n    isText: isText,\n    isComment: isComment,\n};\nexport default htmlDomApi;\n//# sourceMappingURL=htmldomapi.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/htmldomapi.js\n// module id = 277\n// module chunks = 0","import { h } from './h';\nfunction copyToThunk(vnode, thunk) {\n    thunk.elm = vnode.elm;\n    vnode.data.fn = thunk.data.fn;\n    vnode.data.args = thunk.data.args;\n    thunk.data = vnode.data;\n    thunk.children = vnode.children;\n    thunk.text = vnode.text;\n    thunk.elm = vnode.elm;\n}\nfunction init(thunk) {\n    var cur = thunk.data;\n    var vnode = cur.fn.apply(undefined, cur.args);\n    copyToThunk(vnode, thunk);\n}\nfunction prepatch(oldVnode, thunk) {\n    var i, old = oldVnode.data, cur = thunk.data;\n    var oldArgs = old.args, args = cur.args;\n    if (old.fn !== cur.fn || oldArgs.length !== args.length) {\n        copyToThunk(cur.fn.apply(undefined, args), thunk);\n        return;\n    }\n    for (i = 0; i < args.length; ++i) {\n        if (oldArgs[i] !== args[i]) {\n            copyToThunk(cur.fn.apply(undefined, args), thunk);\n            return;\n        }\n    }\n    copyToThunk(oldVnode, thunk);\n}\nexport var thunk = function thunk(sel, key, fn, args) {\n    if (args === undefined) {\n        args = fn;\n        fn = key;\n        key = undefined;\n    }\n    return h(sel, {\n        key: key,\n        hook: { init: init, prepatch: prepatch },\n        fn: fn,\n        args: args\n    });\n};\nexport default thunk;\n//# sourceMappingURL=thunk.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/es/thunk.js\n// module id = 278\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar colonChar = 58;\nvar xChar = 120;\nfunction updateAttrs(oldVnode, vnode) {\n    var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs;\n    if (!oldAttrs && !attrs)\n        return;\n    if (oldAttrs === attrs)\n        return;\n    oldAttrs = oldAttrs || {};\n    attrs = attrs || {};\n    // update modified attributes, add new attributes\n    for (key in attrs) {\n        var cur = attrs[key];\n        var old = oldAttrs[key];\n        if (old !== cur) {\n            if (cur === true) {\n                elm.setAttribute(key, \"\");\n            }\n            else if (cur === false) {\n                elm.removeAttribute(key);\n            }\n            else {\n                if (key.charCodeAt(0) !== xChar) {\n                    elm.setAttribute(key, cur);\n                }\n                else if (key.charCodeAt(3) === colonChar) {\n                    // Assume xml namespace\n                    elm.setAttributeNS(xmlNS, key, cur);\n                }\n                else if (key.charCodeAt(5) === colonChar) {\n                    // Assume xlink namespace\n                    elm.setAttributeNS(xlinkNS, key, cur);\n                }\n                else {\n                    elm.setAttribute(key, cur);\n                }\n            }\n        }\n    }\n    // remove removed attributes\n    // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)\n    // the other option is to remove all attributes with value == undefined\n    for (key in oldAttrs) {\n        if (!(key in attrs)) {\n            elm.removeAttribute(key);\n        }\n    }\n}\nexports.attributesModule = { create: updateAttrs, update: updateAttrs };\nexports.default = exports.attributesModule;\n//# sourceMappingURL=attributes.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/modules/attributes.js\n// module id = 279\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction updateClass(oldVnode, vnode) {\n    var cur, name, elm = vnode.elm, oldClass = oldVnode.data.class, klass = vnode.data.class;\n    if (!oldClass && !klass)\n        return;\n    if (oldClass === klass)\n        return;\n    oldClass = oldClass || {};\n    klass = klass || {};\n    for (name in oldClass) {\n        if (!klass[name]) {\n            elm.classList.remove(name);\n        }\n    }\n    for (name in klass) {\n        cur = klass[name];\n        if (cur !== oldClass[name]) {\n            elm.classList[cur ? 'add' : 'remove'](name);\n        }\n    }\n}\nexports.classModule = { create: updateClass, update: updateClass };\nexports.default = exports.classModule;\n//# sourceMappingURL=class.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/modules/class.js\n// module id = 280\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction invokeHandler(handler, vnode, event) {\n    if (typeof handler === \"function\") {\n        // call function handler\n        handler.call(vnode, event, vnode);\n    }\n    else if (typeof handler === \"object\") {\n        // call handler with arguments\n        if (typeof handler[0] === \"function\") {\n            // special case for single argument for performance\n            if (handler.length === 2) {\n                handler[0].call(vnode, handler[1], event, vnode);\n            }\n            else {\n                var args = handler.slice(1);\n                args.push(event);\n                args.push(vnode);\n                handler[0].apply(vnode, args);\n            }\n        }\n        else {\n            // call multiple handlers\n            for (var i = 0; i < handler.length; i++) {\n                invokeHandler(handler[i]);\n            }\n        }\n    }\n}\nfunction handleEvent(event, vnode) {\n    var name = event.type, on = vnode.data.on;\n    // call event handler(s) if exists\n    if (on && on[name]) {\n        invokeHandler(on[name], vnode, event);\n    }\n}\nfunction createListener() {\n    return function handler(event) {\n        handleEvent(event, handler.vnode);\n    };\n}\nfunction updateEventListeners(oldVnode, vnode) {\n    var oldOn = oldVnode.data.on, oldListener = oldVnode.listener, oldElm = oldVnode.elm, on = vnode && vnode.data.on, elm = (vnode && vnode.elm), name;\n    // optimization for reused immutable handlers\n    if (oldOn === on) {\n        return;\n    }\n    // remove existing listeners which no longer used\n    if (oldOn && oldListener) {\n        // if element changed or deleted we remove all existing listeners unconditionally\n        if (!on) {\n            for (name in oldOn) {\n                // remove listener if element was changed or existing listeners removed\n                oldElm.removeEventListener(name, oldListener, false);\n            }\n        }\n        else {\n            for (name in oldOn) {\n                // remove listener if existing listener removed\n                if (!on[name]) {\n                    oldElm.removeEventListener(name, oldListener, false);\n                }\n            }\n        }\n    }\n    // add new listeners which has not already attached\n    if (on) {\n        // reuse existing listener or create new\n        var listener = vnode.listener = oldVnode.listener || createListener();\n        // update vnode for listener\n        listener.vnode = vnode;\n        // if element changed or added we add all needed listeners unconditionally\n        if (!oldOn) {\n            for (name in on) {\n                // add listener if element was changed or new listeners added\n                elm.addEventListener(name, listener, false);\n            }\n        }\n        else {\n            for (name in on) {\n                // add listener if new listener added\n                if (!oldOn[name]) {\n                    elm.addEventListener(name, listener, false);\n                }\n            }\n        }\n    }\n}\nexports.eventListenersModule = {\n    create: updateEventListeners,\n    update: updateEventListeners,\n    destroy: updateEventListeners\n};\nexports.default = exports.eventListenersModule;\n//# sourceMappingURL=eventlisteners.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/modules/eventlisteners.js\n// module id = 281\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction updateProps(oldVnode, vnode) {\n    var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props;\n    if (!oldProps && !props)\n        return;\n    if (oldProps === props)\n        return;\n    oldProps = oldProps || {};\n    props = props || {};\n    for (key in oldProps) {\n        if (!props[key]) {\n            delete elm[key];\n        }\n    }\n    for (key in props) {\n        cur = props[key];\n        old = oldProps[key];\n        if (old !== cur && (key !== 'value' || elm[key] !== cur)) {\n            elm[key] = cur;\n        }\n    }\n}\nexports.propsModule = { create: updateProps, update: updateProps };\nexports.default = exports.propsModule;\n//# sourceMappingURL=props.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/modules/props.js\n// module id = 282\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout;\nvar nextFrame = function (fn) { raf(function () { raf(fn); }); };\nfunction setNextFrame(obj, prop, val) {\n    nextFrame(function () { obj[prop] = val; });\n}\nfunction updateStyle(oldVnode, vnode) {\n    var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style;\n    if (!oldStyle && !style)\n        return;\n    if (oldStyle === style)\n        return;\n    oldStyle = oldStyle || {};\n    style = style || {};\n    var oldHasDel = 'delayed' in oldStyle;\n    for (name in oldStyle) {\n        if (!style[name]) {\n            if (name[0] === '-' && name[1] === '-') {\n                elm.style.removeProperty(name);\n            }\n            else {\n                elm.style[name] = '';\n            }\n        }\n    }\n    for (name in style) {\n        cur = style[name];\n        if (name === 'delayed' && style.delayed) {\n            for (var name2 in style.delayed) {\n                cur = style.delayed[name2];\n                if (!oldHasDel || cur !== oldStyle.delayed[name2]) {\n                    setNextFrame(elm.style, name2, cur);\n                }\n            }\n        }\n        else if (name !== 'remove' && cur !== oldStyle[name]) {\n            if (name[0] === '-' && name[1] === '-') {\n                elm.style.setProperty(name, cur);\n            }\n            else {\n                elm.style[name] = cur;\n            }\n        }\n    }\n}\nfunction applyDestroyStyle(vnode) {\n    var style, name, elm = vnode.elm, s = vnode.data.style;\n    if (!s || !(style = s.destroy))\n        return;\n    for (name in style) {\n        elm.style[name] = style[name];\n    }\n}\nfunction applyRemoveStyle(vnode, rm) {\n    var s = vnode.data.style;\n    if (!s || !s.remove) {\n        rm();\n        return;\n    }\n    var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = [];\n    for (name in style) {\n        applied.push(name);\n        elm.style[name] = style[name];\n    }\n    compStyle = getComputedStyle(elm);\n    var props = compStyle['transition-property'].split(', ');\n    for (; i < props.length; ++i) {\n        if (applied.indexOf(props[i]) !== -1)\n            amount++;\n    }\n    elm.addEventListener('transitionend', function (ev) {\n        if (ev.target === elm)\n            --amount;\n        if (amount === 0)\n            rm();\n    });\n}\nexports.styleModule = {\n    create: updateStyle,\n    update: updateStyle,\n    destroy: applyDestroyStyle,\n    remove: applyRemoveStyle\n};\nexports.default = exports.styleModule;\n//# sourceMappingURL=style.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sprotty/~/snabbdom/modules/style.js\n// module id = 283\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Action } from 'sprotty/lib';\n\n/**\n * Action used to execute container creation tools.\n *\n * @sbegaudeau\n */\nexport class ExecuteContainerCreationToolAction implements Action {\n\n  /**\n   * The kind of the action.\n   */\n  public static readonly KIND = 'executeContainerCreationTool';\n\n  /**\n   * The type of the action.\n   */\n  public static readonly TYPE = 'ContainerCreationDescriptionImpl';\n\n  /**\n   * The kind of the action.\n   */\n  public readonly kind = ExecuteContainerCreationToolAction.KIND;\n\n  /**\n   * The name of the container creation tool to execute.\n   */\n  public readonly toolName: string;\n\n  /**\n   * The constructor.\n   * @param toolName The name of the tool to execute\n   */\n  constructor(toolName: string) {\n    this.toolName = toolName;\n  }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/execute-container-creation-tool-action.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action } from 'sprotty/lib';\r\n\r\n/**\r\n * Action used to execute node creation tools.\r\n *\r\n * @gcoutable\r\n */\r\nexport class ExecuteNodeCreationToolAction implements Action {\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public static readonly KIND = 'executeNodeCreationTool';\r\n\r\n  /**\r\n   * The type of the action.\r\n   */\r\n  public static readonly TYPE = 'NodeCreationDescriptionImpl';\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public readonly kind = ExecuteNodeCreationToolAction.KIND;\r\n\r\n  /**\r\n   * The name of the node creation tool to execute.\r\n   */\r\n  public readonly toolName: string;\r\n\r\n  /**\r\n   * The constructor.\r\n   * @param toolName The name of the tool to execute\r\n   */\r\n  constructor(toolName: string) {\r\n    this.toolName = toolName;\r\n  }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/execute-node-creation-tool-action.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Action } from 'sprotty/lib';\n\n/**\n * Action used to generic tools.\n *\n * @sbegaudeau\n */\nexport class ExecuteToolAction implements Action {\n\n  /**\n   * The kind of the action.\n   */\n  public static readonly KIND = 'executeTool';\n\n  /**\n   * The type of the action.\n   */\n  public static readonly TYPE = 'ToolDescriptionImpl';\n\n  /**\n   * The kind of the action.\n   */\n  public readonly kind = ExecuteToolAction.KIND;\n\n  /**\n   * The name of the tool to execute.\n   */\n  public readonly toolName: string;\n\n  /**\n   * The constructor.\n   * @param toolName The name of the tool to execute\n   */\n  constructor(toolName: string) {\n    this.toolName = toolName;\n  }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/execute-tool-action.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Action } from 'sprotty/lib';\n\n/**\n * Action used to retrieve the layers of the diagram.\n *\n * @gcoutable\n */\nexport class RequestLayersAction implements Action {\n\n  /**\n   * The kind of the action.\n   */\n  public static readonly KIND = 'requestLayers';\n\n  /**\n   * The kind of the action.\n   */\n  public readonly kind = RequestLayersAction.KIND;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/request-layers-action.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Action } from 'sprotty/lib';\n\n/**\n * Action used to retrieve the tools of the diagram.\n *\n * @gcoutable\n */\nexport class RequestToolsAction implements Action {\n\n  /**\n   * The kind of the action.\n   */\n  public static readonly KIND = 'requestTools';\n\n  /**\n   * The kind of the action.\n   */\n  public readonly kind = RequestToolsAction.KIND;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/request-tools-action.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action } from 'sprotty/lib';\r\n\r\nimport { Layer } from '../types/layer';\r\n\r\n/**\r\n * Action used to set the layers of the diagram.\r\n *\r\n * @gcoutable\r\n */\r\nexport class SetLayersAction implements Action {\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public static readonly KIND = 'setLayers';\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public readonly kind = SetLayersAction.KIND;\r\n\r\n  /**\r\n   * The layers of the diagram.\r\n   */\r\n  public readonly layers: [ Layer ];\r\n\r\n  /**\r\n   * The constructor.\r\n   * @param layers The layers of the diagram\r\n   */\r\n  constructor(layers: [ Layer ]) {\r\n    this.layers = layers;\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/set-layers-action.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action } from 'sprotty/lib';\r\n\r\nimport { Tool } from '../types/tool';\r\n\r\n/**\r\n * Action used to set the tools of the diagram.\r\n *\r\n * @gcoutable\r\n */\r\nexport class SetToolsAction implements Action {\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public static readonly KIND = 'setTools';\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public readonly kind = SetToolsAction.KIND;\r\n\r\n  /**\r\n   * The tools of the diagram.\r\n   */\r\n  public readonly tools: [ Tool ];\r\n\r\n  /**\r\n   * The constructor.\r\n   * @param tools The tools of the diagram\r\n   */\r\n  constructor(tools: [ Tool ]) {\r\n    this.tools = tools;\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/set-tools-action.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action } from 'sprotty/lib';\r\n\r\n/**\r\n * Action used to toggle a layer.\r\n *\r\n * @author gcoutable\r\n */\r\nexport class ToggleLayerAction implements Action {\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public static readonly KIND: string = 'toggleLayer';\r\n\r\n  /**\r\n   * The kind of the action.\r\n   */\r\n  public readonly kind: string = ToggleLayerAction.KIND;\r\n\r\n  /**\r\n   * The name of the layer.\r\n   */\r\n  public readonly layerName: string;\r\n\r\n  /**\r\n   * The new state of the layer.\r\n   */\r\n  public readonly newState: boolean;\r\n\r\n  /**\r\n   * The constructor.\r\n   * @param layerName The name of the layer\r\n   * @param newState The new state of the layer\r\n   */\r\n  constructor(layerName: string, newState: boolean) {\r\n    this.layerName = layerName;\r\n    this.newState = newState;\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/actions/toogle-layers-action.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Action, ActionHandlerRegistry, IActionHandler, ICommand, RequestModelAction, TYPES, WebSocketDiagramServer } from 'sprotty/lib';\nimport { RequestLayersAction } from '../actions/request-layers-action';\nimport { RequestToolsAction } from '../actions/request-tools-action';\nimport { SetLayersAction } from '../actions/set-layers-action';\nimport { SetToolsAction } from '../actions/set-tools-action';\nimport { createContainer } from '../di.config';\nimport { SiriusWebSocketDiagramServer } from '../sirius-websocket-diagram-server';\nimport { Tool } from '../types/tool';\nimport { canHandleTool, cleanDOMElement, createDOMElementForLayers, createDOMElementsForTools } from './tools-utils';\n\nrequire('reconnecting-websocket');\n\nexport interface ISiriusAction<T extends Action> extends IActionHandler {\n  handle(action: T): ICommand | Action | void;\n}\n\n/* tslint:disable */\nexport class SetLayersActionHandler implements ISiriusAction<SetLayersAction> {\n  private readonly diagramServer: WebSocketDiagramServer;\n\n  constructor(diagramServer: WebSocketDiagramServer) {\n    this.diagramServer = diagramServer;\n  }\n\n  /**\n   * Handles the given action received by the server.\n   * @param action The action\n   */\n  public handle(action: SetLayersAction): void {\n    this.handleSetLayersAction(action);\n  }\n\n  /**\n   * Handles the set layers action.\n   * @param action The action\n   */\n  private handleSetLayersAction(action: SetLayersAction) {\n    cleanDOMElement(document.getElementById('layers-palette'));\n    createDOMElementForLayers(this.diagramServer, action.layers);\n  }\n}\n/* tslint:enable */\n\n/* tslint:disable */\nexport class SetToolsActionHandler implements ISiriusAction<SetToolsAction> {\n\n  private readonly diagramServer: WebSocketDiagramServer;\n\n  constructor(diagramServer: WebSocketDiagramServer) {\n    this.diagramServer = diagramServer;\n  }\n\n  /**\n   * Handles the given action received by the server.\n   * @param action The action\n   */\n  handle(action: SetToolsAction): void {\n    this.handleSetToolsAction(action);\n  }\n\n    /**\n   * Handles the set tools action.\n   * @param action The action\n   */\n  private handleSetToolsAction(action: SetToolsAction) {\n    const tools: Array<Tool> = action.tools.filter((tool: Tool) => {\n      return canHandleTool(tool);\n    });\n    cleanDOMElement(document.getElementById('tools-palette'));\n    createDOMElementsForTools(this.diagramServer, tools);\n  }\n}\n/* tslint:enable */\n\n/**\n * Creates the Sirius diagram and connect it to the server.\n *\n * @sbegaudeau\n */\nexport function initializeSiriusDiagram() {\n  const websocket = new WebSocket('ws://' + window.location.host + '/diagrams/api');\n  const container = createContainer('sprotty');\n\n  const diagramServer = container.get<SiriusWebSocketDiagramServer>(TYPES.ModelSource);\n  diagramServer.listen(websocket);\n\n  const actionHandlerRegistry = container.get<ActionHandlerRegistry>(TYPES.ActionHandlerRegistry);\n  actionHandlerRegistry.register(SetLayersAction.KIND, new SetLayersActionHandler(diagramServer));\n  actionHandlerRegistry.register(SetToolsAction.KIND, new SetToolsActionHandler(diagramServer));\n\n  // Connect to the diagram server\n  websocket.addEventListener('open', event => {\n    const url = new URL(window.location.href);\n    const parameters = new URLSearchParams(url.search);\n    const project: string = parameters.get('project') || '';\n    const aird: string = parameters.get('aird') || '';\n    const representationName: string = parameters.get('representationName') || '';\n\n    diagramServer.clientId = `__PROJECT__${project}__AIRD__${aird}__REPRESENTATION__${representationName}__CLIENT_ID__${Math.random()}`;\n    diagramServer.handle(new RequestToolsAction());\n    diagramServer.handle(new RequestLayersAction());\n    diagramServer.handle(new RequestModelAction({\n      project,\n      aird,\n      representationName\n    }));\n  });\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/standalone.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action, WebSocketDiagramServer } from 'sprotty/lib';\r\nimport { ExecuteContainerCreationToolAction } from '../actions/execute-container-creation-tool-action';\r\nimport { ExecuteNodeCreationToolAction } from '../actions/execute-node-creation-tool-action';\r\nimport { ExecuteToolAction } from '../actions/execute-tool-action';\r\nimport { ToggleLayerAction } from '../actions/toogle-layers-action';\r\nimport { Layer } from '../types/layer';\r\nimport { Tool } from '../types/tool';\r\n\r\n\r\n/**\r\n * Indicates if the given tool is supported by the diagram.\r\n * @param tool The tool\r\n * @returns true if the tool is supported, false otherwise\r\n */\r\nexport function canHandleTool(tool: Tool): boolean {\r\n  let canHandle = false;\r\n  switch (tool.toolType) {\r\n    case ExecuteNodeCreationToolAction.TYPE:\r\n      canHandle = true;\r\n      break;\r\n    case ExecuteContainerCreationToolAction.TYPE:\r\n      canHandle = true;\r\n      break;\r\n    case ExecuteToolAction.TYPE:\r\n      canHandle = true;\r\n      break;\r\n    default:\r\n      canHandle = false;\r\n      break;\r\n  }\r\n  return canHandle;\r\n}\r\n\r\n/**\r\n * Creates the action for the given tool.\r\n * @param tool The tool\r\n * @returns The action used to run the given tool or null if the tool is not supported\r\n */\r\nfunction createToolAction(tool: Tool): Action | null {\r\n  let action: Action | null = null;\r\n  switch (tool.toolType) {\r\n    case ExecuteNodeCreationToolAction.TYPE:\r\n      action = new ExecuteNodeCreationToolAction(tool.id);\r\n      break;\r\n    case ExecuteContainerCreationToolAction.TYPE:\r\n      action = new ExecuteContainerCreationToolAction(tool.id);\r\n      break;\r\n    case ExecuteToolAction.TYPE:\r\n      action = new ExecuteToolAction(tool.id);\r\n    default:\r\n      break;\r\n  }\r\n  return action;\r\n}\r\n\r\n/**\r\n * Creates the action for the given layer.\r\n * @param layer The layer\r\n * @returns The action used to toggle the given layer\r\n */\r\nfunction createLayerAction(layer: Layer, newState: boolean): Action {\r\n  return new ToggleLayerAction(layer.id, newState);\r\n}\r\n\r\n/**\r\n * Creates the DOM elements used to execute the given tools.\r\n * @param diagramServer The diagram server\r\n * @param tools The tools to display\r\n */\r\nexport function createDOMElementsForTools(diagramServer: WebSocketDiagramServer, tools: Array<Tool>): void {\r\n  const toolPaletteElement = document.getElementById('tools-palette');\r\n  if (toolPaletteElement !== null) {\r\n      tools.forEach(tool => {\r\n        const button = document.createElement('button');\r\n        button.setAttribute('type', 'button');\r\n        button.setAttribute('class', 'tool');\r\n        const toolLabel = tool.name || tool.id;\r\n\r\n        const image = document.createElement('img');\r\n\r\n        // FIXME Change the computation of the tool image source\r\n        let imageSource = 'assets/ToolDescription.gif';\r\n        if (toolLabel.includes('Woman')) {\r\n          imageSource = 'assets/woman.svg';\r\n        } else if (toolLabel.includes('Man')) {\r\n          imageSource = 'assets/man.svg';\r\n        } else if (toolLabel.includes('New customer')) {\r\n          imageSource = 'assets/LaneSet.png';\r\n        } else if (toolLabel.includes('Start')) {\r\n          imageSource = 'assets/start.svg';\r\n        } else if (toolLabel.includes('Select')) {\r\n          imageSource = 'assets/Task.svg';\r\n        } else if (toolLabel.includes('Order')) {\r\n          imageSource = 'assets/Task.svg';\r\n        } else if (toolLabel.includes('Wait')) {\r\n          imageSource = 'assets/event-based-gateway.svg';\r\n        } else if (toolLabel.includes('Eat')) {\r\n          imageSource = 'assets/end.svg';\r\n        }\r\n\r\n        image.setAttribute('src', imageSource);\r\n        button.appendChild(image);\r\n\r\n        const label = document.createElement('label');\r\n        label.textContent = toolLabel;\r\n        button.appendChild(label);\r\n\r\n        button.addEventListener('click', (event) => {\r\n          const toolAction = createToolAction(tool);\r\n          if (toolAction !== null) {\r\n            diagramServer.handle(toolAction);\r\n          }\r\n        });\r\n        toolPaletteElement.appendChild(button);\r\n    });\r\n  }\r\n}\r\n\r\n/**\r\n * Creates the DOM elements used to activate or deactivate layers.\r\n * @param diagramServer The diagram server\r\n * @param layers The layers to display\r\n */\r\nexport function createDOMElementForLayers(diagramServer: WebSocketDiagramServer, layers: Array<Layer>): void {\r\n  const layerPaletteElement = document.getElementById('layers-palette');\r\n  if (layerPaletteElement != null) {\r\n    layers.forEach((layer: Layer) => {\r\n      const layerId = `layer-${layer.id}`;\r\n      const layerContainerElement = document.createElement('div');\r\n      layerContainerElement.setAttribute('class', 'layer');\r\n\r\n      const layerLabelElement = document.createElement('label');\r\n      layerLabelElement.setAttribute('for', layerId);\r\n      layerLabelElement.textContent = `${layer.name || layer.id} `;\r\n      layerContainerElement.appendChild(layerLabelElement);\r\n\r\n      const layerCheckboxElement = document.createElement('input');\r\n      layerCheckboxElement.setAttribute('type', 'checkbox');\r\n      if (layer.isActive) {\r\n        layerCheckboxElement.setAttribute('checked', 'checked');\r\n      }\r\n      layerCheckboxElement.setAttribute('id', layerId);\r\n      layerCheckboxElement.addEventListener('click', event => {\r\n        const eventTarget = event.target as HTMLInputElement;\r\n        const layerAction = createLayerAction(layer, eventTarget.checked);\r\n        if (layerAction !== null) {\r\n          diagramServer.handle(layerAction);\r\n        }\r\n      });\r\n      layerContainerElement.appendChild(layerCheckboxElement);\r\n      layerPaletteElement.appendChild(layerContainerElement);\r\n    });\r\n  }\r\n}\r\n\r\n/**\r\n * Cleans the content of the HTMLElement.\r\n * @param element The HTMLElement\r\n */\r\nexport function cleanDOMElement(element: HTMLElement | null): void {\r\n  if (element !== null) {\r\n    for (const index = 0; index < element.children.length;) {\r\n      const item = element.children.item(index);\r\n      element.removeChild(item);\r\n    }\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/tools-utils.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport { Container, ContainerModule } from 'inversify';\n\nimport {\n  boundsModule,\n  defaultModule,\n  exportModule,\n  hoverModule,\n  moveModule,\n  selectModule,\n  undoRedoModule,\n  viewportModule,\n  overrideViewerOptions,\n  ConsoleLogger,\n  LogLevel,\n  ViewRegistry,\n  TYPES,\n  HtmlRootView,\n  PreRenderedView,\n  SCompartmentView,\n  SGraphView,\n  SLabelView\n} from 'sprotty/lib';\n\nimport { SiriusEdgeView } from './views/sirius-edge-view';\nimport { SiriusFreeFormFlatContainerNodeView } from './views/sirius-free-form-flat-container-node-view';\nimport { SiriusListFlatContainerNodeView } from './views/sirius-list-flat-container-node-view';\nimport { SiriusSquareBorderNodeView } from './views/sirius-square-border-node-view';\nimport { SiriusSvgBorderNodeView } from './views/sirius-svg-border-node-view';\nimport { SiriusLabelView } from './views/sirius-label-view';\nimport { SiriusSquareNodeView } from './views/sirius-square-node-view';\nimport { SiriusSVGNodeView } from './views/sirius-svg-node-view';\n\nimport { SiriusGraphFactory } from './sirius-graph-factory';\n\nimport { siriusPopupModelFactory } from './popup';\nimport { SiriusWebSocketDiagramServer } from './sirius-websocket-diagram-server';\n\nconst siriusContainerModule = new ContainerModule((bind, unbind, isBound, rebind) => {\n  rebind(TYPES.ILogger)\n    .to(ConsoleLogger)\n    .inSingletonScope();\n  rebind(TYPES.LogLevel).toConstantValue(LogLevel.log);\n  rebind(TYPES.IModelFactory)\n    .to(SiriusGraphFactory)\n    .inSingletonScope();\n  bind(TYPES.PopupModelFactory).toConstantValue(siriusPopupModelFactory);\n});\n\n/**\n * Create the dependency injection container.\n * @param containerId The identifier of the container\n */\nexport const createContainer = (containerId: string) => {\n  const container = new Container();\n  container.load(\n    defaultModule,\n    selectModule,\n    moveModule,\n    boundsModule,\n    undoRedoModule,\n    viewportModule,\n    hoverModule,\n    exportModule,\n    siriusContainerModule\n  );\n\n  container\n    .bind(TYPES.ModelSource)\n    .to(SiriusWebSocketDiagramServer)\n    .inSingletonScope();\n\n  overrideViewerOptions(container, {\n    needsClientLayout: true,\n    needsServerLayout: true,\n    baseDiv: containerId,\n    hiddenDiv: containerId + '-hidden'\n  });\n\n  const viewRegistry = container.get<ViewRegistry>(TYPES.ViewRegistry);\n  viewRegistry.register('graph', SGraphView);\n\n  viewRegistry.register('node:square', SiriusSquareNodeView);\n  viewRegistry.register('node:svg', SiriusSVGNodeView);\n  viewRegistry.register('port:square', SiriusSquareBorderNodeView);\n  viewRegistry.register('port:image', SiriusSvgBorderNodeView);\n  viewRegistry.register('node:freeformflatcontainer', SiriusFreeFormFlatContainerNodeView);\n  viewRegistry.register('node:listflatcontainer', SiriusListFlatContainerNodeView);\n  viewRegistry.register('comp:listflatcontainer_label', SCompartmentView);\n  viewRegistry.register('comp:listflatcontainer_body', SCompartmentView);\n\n  viewRegistry.register('edge:straight', SiriusEdgeView);\n\n  viewRegistry.register('label:inside-left', SiriusLabelView);\n  viewRegistry.register('label:inside-center', SiriusLabelView);\n  viewRegistry.register('label:inside-right', SiriusLabelView);\n  viewRegistry.register('label:outside-left', SiriusLabelView);\n  viewRegistry.register('label:outside-center', SiriusLabelView);\n  viewRegistry.register('label:outside-right', SiriusLabelView);\n\n  viewRegistry.register('label:text', SLabelView);\n  viewRegistry.register('comp:main', SCompartmentView);\n  viewRegistry.register('html', HtmlRootView);\n  viewRegistry.register('pre-rendered', PreRenderedView);\n\n  return container;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/di.config.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  SModelElementSchema,\n  SModelRootSchema,\n  RequestPopupModelAction,\n  PreRenderedElementSchema\n} from 'sprotty/lib';\n\n/**\n * Creates a popup for the given action.\n * @param request The request popup model action\n * @param element The model element schema\n */\nexport const siriusPopupModelFactory = (request: RequestPopupModelAction, element?: SModelElementSchema): SModelRootSchema | undefined => {\n  if (element !== undefined && element.type === 'node:svg') {\n    return {\n      type: 'html',\n      id: 'popup',\n      children: [\n        <PreRenderedElementSchema> {\n          type: 'pre-rendered',\n          id: 'popup-title',\n          code: `<div class=\"popup-title\">Class ${element.id === 'node0' ? 'Foo' : 'Bar'}</div>`\n        },\n        <PreRenderedElementSchema> {\n          type: 'pre-rendered',\n          id: 'popup-body',\n          code: '<div class=\"popup-body\">Hello World</div>'\n        }\n      ]\n    };\n  }\n  return undefined;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/popup.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  getBasicType,\n  HtmlRoot,\n  HtmlRootSchema,\n  SChildElement,\n  SGraphFactory,\n  SModelElementSchema,\n  SModelRootSchema,\n  SModelRoot,\n  SParentElement,\n  PreRenderedElement,\n  PreRenderedElementSchema\n} from 'sprotty/lib';\n\n/**\n * The Sirius graph factory used to create all the graph elements.\n *\n * @sbegaudeau\n */\nexport class SiriusGraphFactory extends SGraphFactory {\n  /**\n   * Creates the element with the given schema.\n   * @param schema The model element schema\n   * @param parent The parent element\n   */\n  public createElement(schema: SModelElementSchema, parent?: SParentElement): SChildElement {\n    /*if (this.isNodeSchema(schema)) {\n      return this.initializeChild(new SiriusNode(), schema, parent)\n    } else */\n    if (this.isPreRenderedSchema(schema)) {\n      return this.initializeChild(new PreRenderedElement(), schema, parent);\n    } else {\n      return super.createElement(schema, parent);\n    }\n  }\n\n  /**\n   * Creates the root for the given schema.\n   * @param schema The schema\n   */\n  public createRoot(schema: SModelRootSchema): SModelRoot {\n    if (this.isHtmlRootSchema(schema)) {\n      return this.initializeRoot(new HtmlRoot(), schema);\n    } else {\n      return super.createRoot(schema);\n    }\n  }\n\n  /**\n   * Indicates if the given schema is an HTML root schema.\n   * @param schema The model root schema\n   */\n  public isHtmlRootSchema(schema: SModelRootSchema): schema is HtmlRootSchema {\n    return getBasicType(schema) === 'html';\n  }\n\n  /**\n   * Indicates if the given schema is a pre-rendered schema.\n   * @param schema The model element schema\n   */\n  public isPreRenderedSchema(schema: SModelElementSchema): schema is PreRenderedElementSchema {\n    return getBasicType(schema) === 'pre-rendered';\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/sirius-graph-factory.ts","/*******************************************************************************\r\n * Copyright (c) 2018 Obeo.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Obeo - initial API and implementation\r\n *******************************************************************************/\r\nimport { Action, ActionHandlerRegistry, WebSocketDiagramServer } from 'sprotty/lib';\r\n\r\n\r\n/**\r\n * The Sirius WebSocket diagram server used to communicate with the remote server.\r\n *\r\n * @gcoutable\r\n */\r\nexport class SiriusWebSocketDiagramServer extends WebSocketDiagramServer {\r\n\r\n  /**\r\n   * Initializes the given action handler registry.\r\n   * @param registry The action handler registry\r\n   */\r\n  public initialize(registry: ActionHandlerRegistry): void {\r\n    super.initialize(registry);\r\n  }\r\n\r\n  /**\r\n   * Handles the given action received by the server.\r\n   * @param action The action\r\n   */\r\n  public handle(action: Action) {\r\n    switch (action.kind) {\r\n      default:\r\n        super.handle(action);\r\n      break;\r\n    }\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/sirius-websocket-diagram-server.ts","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  PolylineEdgeView,\n  RenderingContext,\n  SEdge,\n  Point,\n  toDegrees,\n  angle\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display Sirius edges.\n *\n * @sbegaudeau\n */\nexport class SiriusEdgeView extends PolylineEdgeView {\n  /**\n   * Renders the line of the edge with a specific style configured.\n   * @param edge The edge\n   * @param segments The segments\n   * @param context The context\n   */\n  protected renderLine(edge: SEdge, segments: Point[], context: RenderingContext): VNode {\n    const style: string = (edge as any ).style;\n\n    const firstPoint = segments[0];\n    let path = `M ${firstPoint.x},${firstPoint.y}`;\n    for (let i = 1; i < segments.length; i++) {\n      const p = segments[i];\n      path += ` L ${p.x},${p.y}`;\n    }\n    return <path class-sprotty-edge={true} d={path} style={JSON.parse(style)}/>;\n  }\n\n  /**\n   * Renders additionals element for the given Edge. This method is overriden in order to let\n   * us add decorators to the beggining or the end of the edge (to create an arrow for example).\n   * @param edge The edge\n   * @param segments The segments\n   * @param context The context\n   */\n  protected renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[] {\n    const style: string = (edge as any).style;\n    const styleObject = JSON.parse(style);\n    styleObject.fill = styleObject.stroke;\n\n    const p1 = segments[segments.length - 2];\n    const p2 = segments[segments.length - 1];\n    return [\n      <path class-edge={true}\n            class-arrow={true} d=\"M 0,0 L 6,-3 L 6,3 Z\"\n            transform={`rotate(${toDegrees(angle(p2, p1))} ${p2.x} ${p2.y}) translate(${p2.x} ${p2.y})`}\n            style={styleObject} />\n    ];\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-edge-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SNode,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display free form containers with a flat style.\n *\n * @sbegaudeau\n */\nexport class SiriusFreeFormFlatContainerNodeView extends RectangularNodeView {\n  /**\n   * Renders the given node in the context.\n   * @param node The node\n   * @param context The context\n   */\n  public render(node: SNode, context: RenderingContext): VNode {\n    const style: string = (node as any ).style;\n\n    return (\n      <g>\n        <rect class-selected={node.selected}\n              class-mouseover={node.hoverFeedback}\n              x={0} y={0}\n              rx=\"5\" ry=\"5\"\n              width={Math.max(0, node.bounds.width)}\n              height={Math.max(0, node.bounds.height)}\n              style={JSON.parse(style)} />\n        {context.renderChildren(node)}\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-free-form-flat-container-node-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SLabel,\n  SLabelView,\n  getSubType,\n  setAttr\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display labels.\n *\n * @sbegaudeau\n */\nexport class SiriusLabelView extends SLabelView {\n  /**\n   * Renders the given label in the context.\n   * @param label The label\n   * @param context The context\n   */\n  public render(label: SLabel, context: RenderingContext): VNode {\n    const style: string = (label as any).style;\n    const styleObject = JSON.parse(style);\n\n    const vnode = <text class-sprotty-label={true} style={styleObject}>{label.text}</text>;\n    const subType = getSubType(label);\n    if (subType) {\n      setAttr(vnode, 'class', subType);\n    }\n    return vnode;\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-label-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SNode,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display list containers with a flat style.\n *\n * @sbegaudeau\n */\nexport class SiriusListFlatContainerNodeView extends RectangularNodeView {\n  /**\n   * Renders the given node in the context.\n   * @param node The node\n   * @param context The context\n   */\n  public render(node: SNode, context: RenderingContext): VNode {\n    const style: string = (node as any ).style;\n\n    return (\n      <g>\n        <rect class-selected={node.selected}\n              class-mouseover={node.hoverFeedback}\n              x={0} y={0}\n              rx=\"5\" ry=\"5\"\n              width={Math.max(0, node.bounds.width)}\n              height={Math.max(0, node.bounds.height)}\n              style={JSON.parse(style)} />\n        {context.renderChildren(node)}\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-list-flat-container-node-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SPort,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display a border node nodes with a square style.\n *\n * @hmarchadour\n */\nexport class SiriusSquareBorderNodeView extends RectangularNodeView {\n  /**\n   * Renders the given port in the context.\n   * @param port The port\n   * @param context The context\n   */\n  public render(port: SPort, context: RenderingContext): VNode {\n    const style: string = (port as any ).style;\n    return (\n      <g>\n        <rect\n              class-selected={port.selected}\n              class-mouseover={port.hoverFeedback}\n              x={0} y ={0}\n              width={Math.max(5, port.bounds.width)}\n              height={Math.max(5, port.bounds.height)}\n              style={JSON.parse(style)} />\n        {context.renderChildren(port)}\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-square-border-node-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SNode,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display nodes with a square style.\n *\n * @sbegaudeau\n */\nexport class SiriusSquareNodeView extends RectangularNodeView {\n  /**\n   * Renders the given node in the context.\n   * @param node The node\n   * @param context The context\n   */\n  public render(node: SNode, context: RenderingContext): VNode {\n    const style: string = (node as any ).style;\n\n    return (\n      <g>\n        <rect class-selected={node.selected}\n              class-mouseover={node.hoverFeedback}\n              x={0} y={0}\n              rx=\"5\" ry=\"5\"\n              width={Math.max(0, node.bounds.width)}\n              height={Math.max(0, node.bounds.height)}\n              style={JSON.parse(style)} />\n        {context.renderChildren(node)}\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-square-node-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SPort,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display an SVG border node.\n *\n * @hmarchadour\n */\nexport class SiriusSvgBorderNodeView extends RectangularNodeView {\n  /**\n   * Renders the given port in the context.\n   * @param port The port\n   * @param context The context\n   */\n  public render(port: SPort, context: RenderingContext): VNode {\n    const url = (port as any).url;\n    return (\n      <g>\n        <image x=\"0\" y=\"0\" height=\"10\" width=\"10\" href={url}/>\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-svg-border-node-view.tsx","/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors:\n *    Obeo - initial API and implementation\n *******************************************************************************/\nimport {\n  RenderingContext,\n  SNode,\n  RectangularNodeView\n} from 'sprotty/lib';\n\nimport { VNode } from 'snabbdom/vnode';\nimport * as snabbdom from 'snabbdom-jsx';\n\nconst JSX = {createElement: snabbdom.svg};\n\n/**\n * The view used to display nodes with an SVG image.\n */\nexport class SiriusSVGNodeView extends RectangularNodeView {\n  /**\n   * Renders the given node in the context.\n   * @param node The node\n   * @param context The context\n   */\n  public render(node: SNode, context: RenderingContext): VNode {\n    const svgData = (node as any).svgData;\n    return (\n      <g>\n        <image x=\"0\" y=\"0\" href={`data:image/svg+xml;utf,${svgData}`} width={30} height={30}></image>\n        {context.renderChildren(node)}\n      </g>\n    );\n  }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/views/sirius-svg-node-view.tsx","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n  \"area\": true,\n  \"base\": true,\n  \"br\": true,\n  \"col\": true,\n  \"embed\": true,\n  \"hr\": true,\n  \"img\": true,\n  \"input\": true,\n  \"keygen\": true,\n  \"link\": true,\n  \"menuitem\": true,\n  \"meta\": true,\n  \"param\": true,\n  \"source\": true,\n  \"track\": true,\n  \"wbr\": true\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/void-elements/index.js\n// module id = 306\n// module chunks = 0","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 307\n// module chunks = 0","/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-options.js\n// module id = 308\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 309\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/diagram.css b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/diagram.css
deleted file mode 100644
index 607cb67..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/diagram.css
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-
-.component {
-    fill: #ECF0F1;
-    stroke: #3498DB;
-    stroke-width: 1;
-    font-weight: bold;
-    border-radius: 15px;
-
-    /* properties for vbox */
-    line-height: 10px;
-    padding: 10px;
-    text-align: center;
-}
-.component.mouseover {
-    stroke: #2980B9;
-    stroke-width: 2;
-}
-.component.selected {
-    stroke: #2980B9;
-    stroke-width: 4;
-}
-.component > .heading {
-    stroke: #2980B9;
-    fill: #2980B9;
-    font-size: 11pt;
-    stroke-width: 0;
-    font-weight: bold;
-    text-align: center;
-}
-
-.service {
-    fill: #FCFFF5;
-    stroke: #45BF55;
-    stroke-width: 1;
-    font-weight: bold;
-
-    /* properties for vbox */
-    line-height: 10px;
-    padding: 10px;
-    text-align: center;
-}
-.service.mouseover {
-    stroke: #167F39;
-    stroke-width: 2;
-}
-.service.selected {
-    stroke: #167F39;
-    stroke-width: 4;
-}
-.service > .heading {
-    stroke: #167F39;
-    fill: #167F39;
-    font-size: 9pt;
-    stroke-width: 0;
-    font-weight: normal;
-    text-align: center;
-}
-
-.inputport {
-    fill: #D96666;
-    stroke: #E74C3C;
-    stroke-width: 1;
-    font-weight: bold;
-
-    /* properties for vbox */
-    line-height: 10px;
-    padding: 10px;
-    text-align: center;
-}
-.inputport.mouseover {
-    stroke: #AB1A25;
-    stroke-width: 2;
-}
-.inputport.selected {
-    stroke: #AB1A25;
-    stroke-width: 4;
-}
-
-.outputport {
-    fill: #81AC8B;
-    stroke: #67CC8E;
-    stroke-width: 1;
-    font-weight: bold;
-
-    /* properties for vbox */
-    line-height: 10px;
-    padding: 10px;
-    text-align: center;
-}
-.outputport.mouseover {
-    stroke: #289976;
-    stroke-width: 2;
-}
-.outputport.selected {
-    stroke: #289976;
-    stroke-width: 4;
-}
-
-.sprotty-comp {
-    line-height: 3px;
-    font-weight: normal;
-    text-align: left;
-}
-
-.listflatcontainer_label {
-    font-weight: bold;
-}
-
-.sprotty-graph {
-    font-size: 14px;
-}
-
-.sprotty-label {
-    stroke-width: 0;
-    fill: #000;
-    font-weight: inherit;
-    text-align: inherit;
-    font-size: 14px;
-}
-
-.sprotty-edge {
-    fill: none;
-    stroke: #000;
-    stroke-width: 2;
-}
-.sprotty-edge.arrow {
-    fill: #000;
-    stroke: #000;
-}
-.missing {
-    stroke-width: 1;
-    stroke: #f00;
-    fill: #f00;
-    font-size: 14pt;
-    text-anchor: middle;
-}
-
-
-.popup-title {
-    font-weight: bold;
-    margin-bottom: 10px;
-}
-
-.popup-body > p {
-    margin-bottom: 2px;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/page.css b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/page.css
deleted file mode 100644
index 9a7ea05..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/page.css
+++ /dev/null
@@ -1,487 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-html {
-    --light-blue: hsl(200, 100%, 75%);
-    --blue: hsl(200, 100%, 55%);
-    --dark-blue: hsl(200, 100%, 45%);
-  
-    --light-green: hsl(146, 83%, 55%);
-    --green: hsl(146, 83%, 45%);
-    --dark-green: hsl(146, 83%, 35%);
-  
-    --light-yellow: hsl(44, 100%, 68.6%);
-    --yellow: hsl(44, 100%, 58.6%);
-    --dark-yellow: hsl(44, 100%, 48.6%);
-  
-    --light-orange: hsl(15.5, 100%, 74.3%);
-    --orange: hsl(15.5, 100%, 64.3%);
-    --dark-orange: hsl(15.5, 100%, 54.3%);
-  
-    --light-red: hsl(0, 100%, 74.3%);
-    --red: hsl(0, 100%, 64.3%);
-    --dark-red: hsl(0, 100%, 54.3%);
-  
-    --light-pink: hsl(312, 100%, 74.3%);
-    --pink: hsl(312, 100%, 64.3%);
-    --dark-pink: hsl(312, 100%, 54.3%);
-  
-    --light-purple: hsl(254, 82.9%, 74.7%);
-    --purple: hsl(254, 82.2%, 64.7%);
-    --dark-purple: hsl(254, 81.8%, 54.7%);
-  
-    --black: hsl(0, 0%, 0%);
-    --darkness: hsl(212, 32.6%, 18%);
-    --steel: hsl(213.1, 27.1%, 21%);
-    --slate: hsl(214.3, 18.9%, 29%);
-    --silver: hsl(215.3, 16%, 58.4%);
-    --dark-smoke: hsl(212.3, 26%, 80.4%);
-    --smoke: hsl(211.6, 27.5%, 86.5%);
-    --light-smoke: hsl(212.3, 26.5%, 90.4%);
-    --dark-snow: hsl(221.5, 33.3%, 92.4%);
-    --snow: hsl(217.5, 33.3%, 95.3%);
-    --light-snow: hsl(220, 33.3%, 98.2%);
-    --white: hsl(0, 0%, 100%);
-  
-    --layoutDimension-xs: 4px;
-    --layoutDimension-s: 8px;
-    --layoutDimension-m: 16px;
-    --layoutDimension-l: 32px;
-    --layoutDimension-xl: 64px;
-    --layoutDimension-xxl: 128px;
-    --layoutDimension-xxxl: 600px;
-  
-    --fontSize-xs: 12px;
-    --fontSize-s: 14px;
-    --fontSize-m: 16px;
-    --fontSize-l: 20px;
-    --fontSize-xl: 28px;
-    --fontSize-xxl: 34px;
-    --fontSize-xxxl: 64px;
-  
-    --fontWeight-light: 300;
-    --fontWeight-regular: 400;
-    --fontWeight-semiBold: 600;
-    --fontWeight-bold: 700;
-    --fontWeight-extraBold: 800;
-  
-    --lineHeight-xs: 18px;
-    --lineHeight-s: 20px;
-    --lineHeight-m: 22px;
-    --lineHeight-l: 30px;
-    --lineHeight-xl: 38px;
-    --lineHeight-xxl: 50px;
-    --lineHeight-xxxl: 70px;
-  
-    --boxShadow-emboss: inset 0 -2px 0 0 rgba(31, 45, 61, 0.15);
-    --boxShadow-deboss: inset 0 2px 0 0 rgba(31, 45, 61, 0.15);
-    --boxShadow-float: 0 1px 4px 0 rgba(31, 45, 61, 0.15);
-    --boxShadow-border: 0 0 0 1px var(--light-smoke);
-  
-    --borderRadius-small: 2px;
-    --borderRadius-medium: 4px;
-    --borderRadius-large: 8px;
-    --borderRadius-extraLarge: 16px;
-    --borderRadius-circle: 50%;
-}
-
-
-html,
-body,
-div,
-span,
-object,
-iframe,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-p,
-blockquote,
-pre,
-abbr,
-address,
-cite,
-code,
-del,
-dfn,
-em,
-img,
-ins,
-kbd,
-q,
-samp,
-small,
-strong,
-sub,
-sup,
-var,
-b,
-i,
-dl,
-dt,
-dd,
-ol,
-ul,
-li,
-fieldset,
-form,
-label,
-legend,
-table,
-caption,
-tbody,
-tfoot,
-thead,
-tr,
-th,
-td,
-article,
-aside,
-canvas,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-menu,
-nav,
-section,
-summary,
-time,
-mark,
-audio,
-video {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  outline: 0;
-  font-size: 100%;
-  vertical-align: baseline;
-  background: transparent;
-}
-
-*,
-*:before,
-*:after {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-:focus {
-  outline: 0;
-}
-
-body {
-  line-height: 1;
-  color: black;
-  background: white;
-}
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-menu,
-nav,
-section {
-  display: block;
-}
-
-nav ul {
-  list-style: none;
-}
-
-blockquote,
-q {
-  quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-  content: '';
-  content: none;
-}
-
-a {
-  margin: 0;
-  padding: 0;
-  font-size: 100%;
-  vertical-align: baseline;
-  background: transparent;
-}
-
-ins {
-  background-color: white;
-  color: black;
-  text-decoration: none;
-}
-
-mark {
-  background-color: white;
-  color: black;
-  font-style: inherit;
-  font-weight: inherit;
-}
-
-del {
-  text-decoration: line-through;
-}
-
-abbr[title],
-dfn[title] {
-  border-bottom: 1px dotted;
-  cursor: help;
-}
-
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-hr {
-  display: block;
-  height: 1px;
-  border: 0;
-  border-top: 1px solid black;
-  margin: 1em 0;
-  padding: 0;
-}
-
-input,
-select {
-  vertical-align: middle;
-}
-
-a,
-a:visited,
-a:hover {
-  /*color: inherit;*/
-  text-decoration: none;
-}
-
-ol,
-ul {
-  list-style: none;
-}
-
-[role='button'],
-input[type='submit'],
-input[type='reset'],
-input[type='button'],
-button {
-  background: none;
-  border: 0;
-  color: inherit;
-  font: inherit;
-  line-height: normal;
-  overflow: visible;
-  padding: 0;
-  appearance: button;
-  -webkit-appearance: button; /* for input */
-  -webkit-user-select: none; /* for button */
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-
-input::-moz-focus-inner,
-button::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  font-weight: normal;
-}
-
-[role="button"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-button {
-    box-sizing: content-box;
-}
-
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-button {
-    background: none;
-    border: 0;
-    color: inherit;
-    font: inherit;
-    line-height: normal;
-    overflow: visible;
-    padding: 0;
-    -webkit-appearance: button; /* for input */
-    -webkit-user-select: none; /* for button */
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-input::-moz-focus-inner,
-button::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-:focus {
-    outline: 0px;
-}
-
-.container {
-    display: grid;
-    box-sizing: border-box;
-    width: 100vw;
-    height: 100vh;
-    grid-template-columns: auto minmax(auto, min-content);
-    grid-template-rows: minmax(auto, min-content) auto;
-    padding: 0;
-    grid-column-gap: 0px;
-    grid-row-gap: 0px;
-}
-
-.diagram-title {
-    grid-column-start: 1;
-    grid-column-end: 3;
-    grid-row-start: 1;
-    grid-row-end: 2;
-
-    display: grid;
-    grid-template-columns: auto minmax(auto, min-content);
-    grid-template-rows: 1fr;
-    border-right: 1px solid var(--silver);
-    box-shadow: var(--boxShadow-float);
-    padding: var(--layoutDimension-s) var(--layoutDimension-m);
-}
-.diagram-main {
-    grid-column-start: 1;
-    grid-column-end: 2;
-    grid-row-start: 2;
-    grid-row-end: 3;
-
-    border-right: 1px solid var(--slate);
-}
-.title {
-    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    color: var(--darkness);
-    
-    font-size: var(--fontSize-xxl);
-    line-height: var(--lineHeight-xxl);
-    font-weight: var(--fontWeight-bold);
-}
-.sprotty {
-    height: 100%;
-}
-svg {
-    width: 100%;
-    height: 100%;
-}
-#toggle-palette {
-    min-width: 50px;
-    font-weight: var(--fontWeight-bold);
-    font-size: var(--fontSize-xxl);
-}
-
-.palette-main {
-    grid-column-start: 2;
-    grid-column-end: 3;
-    grid-row-start: 2;
-    grid-row-end: 3;
-
-    min-width: 300px;
-    display: grid;
-    grid-template-columns: 1fr;
-    grid-template-rows:
-        minmax(auto, min-content)
-        auto
-        minmax(auto, min-content)
-        minmax(150px, min-content)
-}
-.palette-main>h2 {
-    font-family: 'Open Sans', Arial, sans-serif;
-    font-size: var(--fontSize-xl);
-    line-height: var(--lineHeight-bodyMedium);
-    font-weight: var(--fontWeight-bold);
-    color: var(--white);
-    background-color: var(--silver);
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    padding: var(--layoutDimension-m) 0px var(--layoutDimension-m) var(--layoutDimension-l);
-    margin: 0;
-}
-
-#tools-palette {
-    display: grid;
-    grid-template-columns: 1fr 1fr;
-    grid-template-rows: repeat(auto-fill, 100px);
-    border-left: 1px solid var(--silver);
-    padding: var(--layoutDimension-l) var(--layoutDimension-l) var(--layoutDimension-l) var(--layoutDimension-l);
-}
-.tool {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    justify-content: center;
-    
-    font-family: 'Open Sans', Arial, sans-serif;
-    font-size: var(--fontSize-l);
-    font-weight: var(--fontWeight-semiBold);
-    color: var(--slate);
-}
-.tool>img {
-    width: 50px;
-}
-.tool:hover {
-    color: var(--silver);
-}
-.tool:active {
-    color: var(--black);
-}
-
-#layers-palette {
-    border-left: 1px solid var(--silver);
-    padding: var(--layoutDimension-l) var(--layoutDimension-l) var(--layoutDimension-l) var(--layoutDimension-l);
-}
-.layer {
-    display: grid;
-    grid-template-columns: auto minmax(auto, min-content);
-    grid-template-rows: 1fr;
-    align-items: center;
-
-    font-family: 'Open Sans', Arial, sans-serif;
-    font-size: var(--fontSize-l);
-    font-weight: var(--fontWeight-semiBold);
-    color: var(--slate);
-}
-input[type="checkbox"] {
-    width: 2.2em;
-    height: 2.2em;
-}
-
-.closed { display: none; }
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/sprotty.css b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/sprotty.css
deleted file mode 100644
index bd54e4f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/css/sprotty.css
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-
- .sprotty {
-  padding: 0px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-
-.sprotty-hidden {
-  display: block;
-  position: absolute;
-  width: 0px;
-  height: 0px;
-}
-
-.sprotty-popup {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  position: absolute;
-  background: white;
-  border-radius: 5px;
-  border: 1px solid;
-  max-width: 400px;
-  min-width: 100px;
-}
-
-.sprotty-popup > div {
-  margin: 10px;
-}
-
-.sprotty-popup-closed {
-  display: none;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/index.html b/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/index.html
deleted file mode 100644
index cde55e9..0000000
--- a/plugins/org.eclipse.sirius.server.diagram.sprotty/webapp/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1">
-  <title>Eclipse Sirius</title>
-  <link rel="stylesheet" href="css/sprotty.css">
-  <link rel="stylesheet" href="css/page.css">
-  <link rel="stylesheet" href="css/diagram.css">
-</head>
-<body>
-  <div class="container">
-    <div class="diagram-title">
-      <h1 class="title">Eclipse Sirius</h1>
-    </div>
-
-    <div class="diagram-main">
-      <div id="sprotty" class="sprotty"/></div>
-    </div>
-    
-    <div class="palette-main">
-      <h2>Tools</h2>
-      <div id="tools-palette"></div>
-      <h2>Layers</h2>
-      <div id="layers-palette"></div>
-    </div>
-  </div>
-  </div>
-  <script src="bundle.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram/.checkstyle b/plugins/org.eclipse.sirius.server.diagram/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.diagram/.classpath b/plugins/org.eclipse.sirius.server.diagram/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.diagram/.project b/plugins/org.eclipse.sirius.server.diagram/.project
deleted file mode 100644
index 0fb0c89..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.diagram</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.diagram/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.diagram/META-INF/MANIFEST.MF
deleted file mode 100644
index 7f95952..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.diagram;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.server.diagram
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
- org.eclipse.core.resources;bundle-version="3.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- javax.servlet;bundle-version="3.1.0",
- javax.websocket;bundle-version="1.0.0",
- org.eclipse.jetty.websocket.javax.websocket;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.websocket.javax.websocket.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- com.google.gson;bundle-version="2.8.2",
- org.eclipse.sirius.ext.base;bundle-version="7.0.0",
- org.eclipse.sirius;bundle-version="7.0.0",
- org.eclipse.sirius.diagram;bundle-version="7.0.0",
- org.eclipse.sirius.server;bundle-version="7.0.0",
- org.eclipse.sirius.server.images;bundle-version="7.0.0",
- org.eclipse.sirius.services.diagram;bundle-version="7.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.server.diagram.internal.SiriusServerDiagramPlugin$Implementation
-Export-Package: org.eclipse.sirius.server.diagram.internal;x-internal:=true
diff --git a/plugins/org.eclipse.sirius.server.diagram/about.html b/plugins/org.eclipse.sirius.server.diagram/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram/build.properties b/plugins/org.eclipse.sirius.server.diagram/build.properties
deleted file mode 100644
index c452f07..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.diagram/plugin.properties b/plugins/org.eclipse.sirius.server.diagram/plugin.properties
deleted file mode 100644
index abf48ff..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server - Diagram API
-providerName = Eclipse Modeling Project
-
-SiriusServerDiagramEndpointConfigurationProvider_label = The SiriusServerEndpointConfigurationProvider of the diagram API
-SiriusServerDiagramEndpointConfigurationProvider_description = Used to configure the diagram API of the Sirius server
-SiriusServerDiagramImagePathProvider_label = The image path provider for the diagram API
-SiriusServerDiagramImagePathProvider_description = Used to compute the path of the images returned by the diagram API
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.diagram/plugin.xml b/plugins/org.eclipse.sirius.server.diagram/plugin.xml
deleted file mode 100644
index 7ecbecb..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.diagram.SiriusServerDiagramEndpointConfigurationProvider"
-         name="%SiriusServerDiagramEndpointConfigurationProvider_label"
-         point="org.eclipse.sirius.server.siriusServerEndpointConfigurationProvider">
-      <descriptor
-            class="org.eclipse.sirius.server.diagram.internal.SiriusServerDiagramEndpointConfigurationProvider"
-            description="%SiriusServerDiagramEndpointConfigurationProvider_description"
-            id="org.eclipse.sirius.server.diagram.SiriusServerDiagramEndpointConfigurationProvider"
-            label="%SiriusServerDiagramEndpointConfigurationProvider_label">
-      </descriptor>
-   </extension>
-   <extension
-         id="org.eclipse.sirius.server.diagram.siriusDiagramImagePathProvider"
-         name="%SiriusServerDiagramImagePathProvider_label"
-         point="org.eclipse.sirius.services.diagram.siriusDiagramImagePathProvider">
-      <descriptor
-            class="org.eclipse.sirius.server.diagram.internal.SiriusServerDiagramImagePathProvider"
-            description="%SiriusServerDiagramImagePathProvider_description"
-            id="org.eclipse.sirius.server.diagram.SiriusServerDiagramImagePathProvider"
-            label="%SiriusServerDiagramImagePathProvider_label">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.diagram/pom.xml b/plugins/org.eclipse.sirius.server.diagram/pom.xml
deleted file mode 100644
index 9332005..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.diagram</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpoint.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpoint.java
deleted file mode 100644
index 4f44ffd..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpoint.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.Gson;
-
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
-import javax.websocket.CloseReason;
-import javax.websocket.Endpoint;
-import javax.websocket.EndpointConfig;
-import javax.websocket.Session;
-
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-
-/**
- * The endpoint of the Sirius server diagram API.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramEndpoint extends Endpoint {
-
-    /**
-     * The name of the parameter used to retrieve the project name.
-     */
-    private static final String PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the parameter used to retrieve the representation name.
-     */
-    private static final String REPRESENTATION_NAME = "representationName"; //$NON-NLS-1$
-
-    /**
-     * The diagram service manager.
-     */
-    private SiriusServerDiagramServiceManager diagramServiceManager;
-
-    /**
-     * The constructor.
-     *
-     * @param diagramServiceManager
-     *            The diagram service manager
-     */
-    public SiriusServerDiagramEndpoint(SiriusServerDiagramServiceManager diagramServiceManager) {
-        this.diagramServiceManager = diagramServiceManager;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.websocket.Endpoint#onOpen(javax.websocket.Session,
-     *      javax.websocket.EndpointConfig)
-     */
-    @Override
-    public void onOpen(Session session, EndpointConfig config) {
-        Map<String, List<String>> parameters = session.getRequestParameterMap();
-        List<String> projectNameValues = parameters.get(PROJECT_NAME);
-        List<String> representatioNameValues = parameters.get(REPRESENTATION_NAME);
-
-        if (projectNameValues.size() == 1 && representatioNameValues.size() == 1) {
-            String projectName = projectNameValues.get(0);
-            String representationName = representatioNameValues.get(0);
-
-            Consumer<SiriusDiagramMessage> callback = message -> {
-                String json = new Gson().toJson(message);
-                session.getAsyncRemote().sendText(json);
-            };
-
-            SiriusDiagramService diagramService = this.diagramServiceManager.acquire(session.getId(), projectName, representationName, callback);
-            session.addMessageHandler(new SiriusServerDiagramMessageHandler(diagramService));
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.websocket.Endpoint#onClose(javax.websocket.Session,
-     *      javax.websocket.CloseReason)
-     */
-    @Override
-    public void onClose(Session session, CloseReason closeReason) {
-        this.diagramServiceManager.release(session.getId());
-        super.onClose(session, closeReason);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurationProvider.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurationProvider.java
deleted file mode 100644
index 9802d04..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurationProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import javax.websocket.server.ServerEndpointConfig;
-import javax.websocket.server.ServerEndpointConfig.Builder;
-
-import org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider;
-
-/**
- * The endpoint configuration provider used to register the diagram API.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramEndpointConfigurationProvider implements ISiriusServerEndpointConfigurationProvider {
-
-    /**
-     * The path of the diagram WebSocket API.
-     */
-    private static final String PATH = "/diagrams"; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider#getEndpointConfiguration()
-     */
-    @Override
-    public ServerEndpointConfig getEndpointConfiguration() {
-        // @formatter:off
-        return Builder.create(SiriusServerDiagramEndpoint.class, PATH)
-                .configurator(new SiriusServerDiagramEndpointConfigurator())
-                .build();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurator.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurator.java
deleted file mode 100644
index 57b2dcc..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramEndpointConfigurator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-
-import javax.websocket.Extension;
-import javax.websocket.HandshakeResponse;
-import javax.websocket.server.HandshakeRequest;
-import javax.websocket.server.ServerEndpointConfig;
-import javax.websocket.server.ServerEndpointConfig.Configurator;
-
-import org.eclipse.jetty.websocket.jsr356.server.ContainerDefaultConfigurator;
-
-/**
- * The configurator of the Sirius server diagram endpoint.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramEndpointConfigurator extends Configurator {
-
-    /**
-     * The instance which will be used for most calls.
-     */
-    private ContainerDefaultConfigurator delegate = new ContainerDefaultConfigurator();
-
-    /**
-     * The diagram service manager.
-     */
-    private SiriusServerDiagramServiceManager diagramServiceManager = new SiriusServerDiagramServiceManager();
-
-    @Override
-    public <T> T getEndpointInstance(Class<T> endpointClass) throws InstantiationException {
-        try {
-            Constructor<T> constructor = endpointClass.getConstructor(SiriusServerDiagramServiceManager.class);
-            T instance = constructor.newInstance(this.diagramServiceManager);
-            return instance;
-        } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
-            throw new InstantiationException(String.format("%s: %s", e.getClass().getName(), e.getMessage())); //$NON-NLS-1$
-        }
-    }
-
-    @Override
-    public boolean checkOrigin(String originHeaderValue) {
-        return this.delegate.checkOrigin(originHeaderValue);
-    }
-
-    @Override
-    public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
-        this.delegate.modifyHandshake(sec, request, response);
-    }
-
-    @Override
-    public String getNegotiatedSubprotocol(List<String> supported, List<String> requested) {
-        return this.delegate.getNegotiatedSubprotocol(supported, requested);
-    }
-
-    @Override
-    public List<Extension> getNegotiatedExtensions(List<Extension> installed, List<Extension> requested) {
-        return this.delegate.getNegotiatedExtensions(installed, requested);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramImagePathProvider.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramImagePathProvider.java
deleted file mode 100644
index 6ba0b23..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramImagePathProvider.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Optional;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.diagram.WorkspaceImage;
-import org.eclipse.sirius.server.images.api.ISiriusServerImagesConstants;
-import org.eclipse.sirius.server.internal.SiriusServerPlugin;
-import org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider;
-
-/**
- * The image path provider.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings("restriction") // We need to access the URI of the server
-public class SiriusServerDiagramImagePathProvider implements ISiriusDiagramImagePathProvider {
-
-    /**
-     * The separator of the segments of the URI.
-     */
-    private static final String SLASH = "/"; //$NON-NLS-1$
-
-    /**
-     * The platform resource URIs prefix.
-     */
-    private static final String PLATFORM_RESOURCE = "platform:/resource/"; //$NON-NLS-1$
-
-    /**
-     * The separator between the key and value in the query part of the URL.
-     */
-    private static final String EQUAL = "="; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider#getStaticImagePath(org.eclipse.sirius.diagram.WorkspaceImage)
-     */
-    @Override
-    public Optional<String> getStaticImagePath(WorkspaceImage workspaceImage) {
-        URI serverURI = SiriusServerPlugin.getPlugin().getServerURI();
-
-        String workspaceImagePath = workspaceImage.getWorkspacePath();
-        if (workspaceImagePath.startsWith(SLASH)) {
-            workspaceImagePath = workspaceImagePath.substring(SLASH.length());
-        }
-
-        String path = ISiriusServerImagesConstants.IMAGES_PATH + SLASH + workspaceImagePath;
-        Optional<String> optionalPath = Optional.empty();
-        try {
-            URI imageURI = new URI(serverURI.getScheme(), serverURI.getUserInfo(), serverURI.getHost(), serverURI.getPort(), path, null, null);
-            optionalPath = Optional.of(imageURI.toString());
-        } catch (URISyntaxException e) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerDiagramPlugin.PLUGIN_ID, e.getMessage(), e);
-            SiriusServerDiagramPlugin.getPlugin().log(status);
-        }
-        return optionalPath;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider#getLabelProviderImagePath(org.eclipse.emf.ecore.EObject)
-     */
-    @Override
-    public Optional<String> getLabelProviderImagePath(EObject eObject) {
-        URI serverURI = SiriusServerPlugin.getPlugin().getServerURI();
-
-        org.eclipse.emf.common.util.URI uri = EcoreUtil.getURI(eObject);
-        String resourceURI = uri.trimFragment().toString();
-        if (resourceURI.startsWith(PLATFORM_RESOURCE)) {
-            resourceURI = resourceURI.substring(PLATFORM_RESOURCE.length());
-        }
-        String uriFragment = uri.fragment();
-
-        String path = ISiriusServerImagesConstants.IMAGES_PATH + SLASH + resourceURI;
-        String fragment = ISiriusServerImagesConstants.FRAGMENT + EQUAL + uriFragment;
-        Optional<String> optionalPath = Optional.empty();
-        try {
-            URI imageURI = new URI(serverURI.getScheme(), serverURI.getUserInfo(), serverURI.getHost(), serverURI.getPort(), path, fragment, null);
-            optionalPath = Optional.of(imageURI.toString());
-        } catch (URISyntaxException e) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerDiagramPlugin.PLUGIN_ID, e.getMessage(), e);
-            SiriusServerDiagramPlugin.getPlugin().log(status);
-        }
-        return optionalPath;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramMessageHandler.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramMessageHandler.java
deleted file mode 100644
index 38cada4..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramMessageHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import java.util.Optional;
-
-import javax.websocket.MessageHandler.Whole;
-
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-
-/**
- * The message handler used to support incoming messages.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramMessageHandler implements Whole<String> {
-
-    /**
-     * The diagram service.
-     */
-    private SiriusDiagramService diagramService;
-
-    /**
-     * The JSON parser.
-     */
-    private Gson gson;
-
-    /**
-     * The constructor.
-     *
-     * @param diagramService
-     *            The diagram service
-     */
-    public SiriusServerDiagramMessageHandler(SiriusDiagramService diagramService) {
-        this.diagramService = diagramService;
-
-        this.gson = new GsonBuilder().registerTypeAdapterFactory(new SiriusServerDiagramTypeAdapterFactory()).create();
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.websocket.MessageHandler.Whole#onMessage(java.lang.Object)
-     */
-    @Override
-    public void onMessage(String message) {
-        Optional<SiriusDiagramMessage> optionalDiagramMessage = Optional.ofNullable(this.gson.fromJson(message, SiriusDiagramMessage.class));
-        optionalDiagramMessage.ifPresent(this.diagramService::accept);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramPlugin.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramPlugin.java
deleted file mode 100644
index bcb34e6..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramPlugin.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius server diagram component.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.diagram"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerDiagramPlugin INSTANCE = new SiriusServerDiagramPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerDiagramPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerDiagramPlugin.plugin = this;
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramServiceManager.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramServiceManager.java
deleted file mode 100644
index ab808d5..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramServiceManager.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Consumer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.sirius.business.api.dialect.DialectManager;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-import org.eclipse.sirius.viewpoint.DRepresentationDescriptor;
-import org.eclipse.sirius.viewpoint.SiriusPlugin;
-
-/**
- * The Sirius server diagram service manager is used to instantiate and dispose
- * the diagram services when necessary.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramServiceManager {
-
-    /**
-     * The cache of the diagram service for a specific representation
-     * identifier.
-     */
-    private Map<String, SiriusDiagramService> representation2services = new HashMap<>();
-
-    /**
-     * The cache of the representation identifier for a specific diagram
-     * service.
-     */
-    private Map<SiriusDiagramService, String> service2representations = new HashMap<>();
-
-    /**
-     * The cache of session identifiers for a specific diagram service.
-     */
-    private Map<SiriusDiagramService, List<String>> service2identifiers = new HashMap<>();
-
-    /**
-     * The cache of the diagram service for a specific session identifier.
-     */
-    private Map<String, SiriusDiagramService> identifier2services = new HashMap<>();
-
-    /**
-     * Acquire an instance of a diagram service.
-     *
-     * @param identifier
-     *            The identifier of the WebSocket session
-     * @param projectName
-     *            The name of the project
-     * @param representationName
-     *            The name of the representation
-     * @param callback
-     *            The callback used for the diagram service to send data back to
-     *            the client
-     * @return An instance of the diagram service or null, if the parameter do
-     *         not match a valid diagram
-     */
-    public SiriusDiagramService acquire(String identifier, String projectName, String representationName, Consumer<SiriusDiagramMessage> callback) {
-        synchronized (this.representation2services) {
-            String representationId = projectName + representationName;
-            SiriusDiagramService diagramService = this.representation2services.get(representationId);
-            if (diagramService == null) {
-                Optional<Session> optionalSession = this.getSession(projectName);
-                Optional<DDiagram> optionalDDiagram = optionalSession.flatMap(session -> this.getDDiagramFromSession(session, representationName));
-                if (optionalSession.isPresent() && optionalDDiagram.isPresent()) {
-                    Session session = optionalSession.get();
-                    DDiagram dDiagram = optionalDDiagram.get();
-
-                    diagramService = new SiriusDiagramService(session, dDiagram, callback);
-                    diagramService.initialize();
-
-                    this.representation2services.put(representationId, diagramService);
-                    this.service2representations.put(diagramService, representationId);
-                    this.identifier2services.put(identifier, diagramService);
-                    List<String> identifiers = this.service2identifiers.getOrDefault(diagramService, new ArrayList<>());
-                    identifiers.add(identifier);
-                    this.service2identifiers.put(diagramService, identifiers);
-                }
-            }
-            return diagramService;
-        }
-    }
-
-    /**
-     * Returns the {@link Session} found for the given project name.
-     *
-     * @param projectName
-     *            The name of the project containing the aird
-     * @return The {@link Session} found or an empty optional
-     */
-    private Optional<Session> getSession(String projectName) {
-        // @formatter:off
-        Optional<IProject> optionalProject = Optional.of(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName));
-        Optional<ModelingProject> optionalModelingProject = optionalProject.filter(ModelingProject::hasModelingProjectNature)
-                .map(iProject -> ModelingProject.asModelingProject(iProject).get());
-        return optionalModelingProject.map(modelingProject -> {
-            Session session = modelingProject.getSession();
-            if (session == null) {
-                URI sessionResourceURI = modelingProject.getMainRepresentationsFileURI(new NullProgressMonitor()).get();
-                session = SessionManager.INSTANCE.openSession(sessionResourceURI , new NullProgressMonitor(), SiriusPlugin.getDefault().getUiCallback());
-            }
-            return session;
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the {@link DDiagram} found for the given {@link Session} and the
-     * representation name.
-     *
-     * @param session
-     *            The {@link Session}
-     * @param representationName
-     *            The name of the {@link DDiagram}
-     * @return The {@link DDiagram} found or an empty optional
-     */
-    private Optional<DDiagram> getDDiagramFromSession(Session session, String representationName) {
-        Collection<DRepresentationDescriptor> representations = DialectManager.INSTANCE.getAllRepresentationDescriptors(session);
-        // @formatter:off
-        Optional<DDiagram> optionalDDiagram = representations.stream()
-                .filter(repDesc->repDesc.getRepresentation() instanceof DDiagram)
-                .filter(repDesc -> {
-                    return Optional.ofNullable(representationName).orElse("").equals(repDesc.getName()); //$NON-NLS-1$
-                })
-                .map(repDesc->(DDiagram) repDesc.getRepresentation())
-                .findFirst();
-        // @formatter:on
-        return optionalDDiagram;
-    }
-
-    /**
-     * Release the diagram services used by the given session identifier.
-     *
-     * @param identifier
-     *            The identifier of the session
-     */
-    public void release(String identifier) {
-        synchronized (this.representation2services) {
-            Optional<SiriusDiagramService> optionalDiagramService = Optional.ofNullable(this.identifier2services.remove(identifier));
-            optionalDiagramService.ifPresent(diagramService -> {
-                this.service2identifiers.remove(diagramService);
-                String representationId = this.service2representations.remove(diagramService);
-                this.representation2services.remove(representationId);
-
-                diagramService.dispose();
-            });
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapter.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapter.java
deleted file mode 100644
index 3d0a5c7..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapter.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.TypeAdapter;
-import com.google.gson.internal.Streams;
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonWriter;
-
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-
-/**
- * The type adapter used to deserialize the sirius diagram actions.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings("restriction")
-public class SiriusServerDiagramTypeAdapter extends TypeAdapter<AbstractSiriusDiagramAction> {
-
-    /**
-     * The name of the field used to determine the class to be used for the
-     * deserialization.
-     */
-    private static final String KIND = "kind"; //$NON-NLS-1$
-
-    /**
-     * Map of the type adapter to be used for the deserialization for each kind.
-     */
-    private Map<String, TypeAdapter<AbstractSiriusDiagramAction>> kindToTypeAdapter = new LinkedHashMap<>();
-
-    /**
-     * Map of the kind for a specific class to instantiate.
-     */
-    private Map<Class<? extends AbstractSiriusDiagramAction>, String> typeToKind = new LinkedHashMap<>();
-
-    /**
-     * Map of the type adapter for a specific class.
-     */
-    private Map<Class<? extends AbstractSiriusDiagramAction>, TypeAdapter<AbstractSiriusDiagramAction>> typeToTypeAdapter = new LinkedHashMap<>();
-
-    /**
-     * The constructor.
-     * 
-     * @param kindToTypeAdapter
-     *            The kind to type adapter map
-     * @param typeToKind
-     *            The type to kind map
-     * @param typeToTypeAdapter
-     *            The type to type adapter map
-     */
-    public SiriusServerDiagramTypeAdapter(Map<String, TypeAdapter<AbstractSiriusDiagramAction>> kindToTypeAdapter, Map<Class<? extends AbstractSiriusDiagramAction>, String> typeToKind,
-            Map<Class<? extends AbstractSiriusDiagramAction>, TypeAdapter<AbstractSiriusDiagramAction>> typeToTypeAdapter) {
-        this.kindToTypeAdapter = kindToTypeAdapter;
-        this.typeToKind = typeToKind;
-        this.typeToTypeAdapter = typeToTypeAdapter;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
-     */
-    @Override
-    public AbstractSiriusDiagramAction read(JsonReader in) throws IOException {
-        JsonElement jsonElement = Streams.parse(in);
-        JsonElement kindJsonElement = jsonElement.getAsJsonObject().remove(KIND);
-
-        String kind = kindJsonElement.getAsString();
-        TypeAdapter<?> typeAdapter = this.kindToTypeAdapter.get(kind);
-        Object object = typeAdapter.fromJsonTree(jsonElement);
-        if (object instanceof AbstractSiriusDiagramAction) {
-            return (AbstractSiriusDiagramAction) object;
-        }
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see com.google.gson.TypeAdapter#write(com.google.gson.stream.JsonWriter,
-     *      java.lang.Object)
-     */
-    @Override
-    public void write(JsonWriter out, AbstractSiriusDiagramAction value) throws IOException {
-        Class<? extends AbstractSiriusDiagramAction> type = value.getClass();
-        String kind = this.typeToKind.get(type);
-        TypeAdapter<AbstractSiriusDiagramAction> delegate = this.typeToTypeAdapter.get(type);
-
-        JsonObject jsonObject = delegate.toJsonTree(value).getAsJsonObject();
-        JsonObject clone = new JsonObject();
-        clone.add(KIND, new JsonPrimitive(kind));
-
-        jsonObject.entrySet().forEach(entry -> clone.add(entry.getKey(), entry.getValue()));
-
-        Streams.write(clone, out);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapterFactory.java b/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapterFactory.java
deleted file mode 100644
index c36602a..0000000
--- a/plugins/org.eclipse.sirius.server.diagram/src/org/eclipse/sirius/server/diagram/internal/SiriusServerDiagramTypeAdapterFactory.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.diagram.internal;
-
-import com.google.gson.Gson;
-import com.google.gson.TypeAdapter;
-import com.google.gson.TypeAdapterFactory;
-import com.google.gson.reflect.TypeToken;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramExecuteNodeCreationToolAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestModelAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestToolsAction;
-
-/**
- * The diagram type adapter factory.
- *
- * @author sbegaudeau
- */
-public class SiriusServerDiagramTypeAdapterFactory implements TypeAdapterFactory {
-
-    /**
-     * The map of type for a specific kind.
-     */
-    private Map<String, Class<? extends AbstractSiriusDiagramAction>> kindToType = new LinkedHashMap<>();
-
-    /**
-     * The map of the kind for a specific type.
-     */
-    private Map<Class<? extends AbstractSiriusDiagramAction>, String> typeToKind = new LinkedHashMap<>();
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerDiagramTypeAdapterFactory() {
-        this.kindToType.put(SiriusDiagramExecuteNodeCreationToolAction.KIND, SiriusDiagramExecuteNodeCreationToolAction.class);
-        this.typeToKind.put(SiriusDiagramExecuteNodeCreationToolAction.class, SiriusDiagramExecuteNodeCreationToolAction.KIND);
-
-        this.kindToType.put(SiriusDiagramRequestModelAction.KIND, SiriusDiagramRequestModelAction.class);
-        this.typeToKind.put(SiriusDiagramRequestModelAction.class, SiriusDiagramRequestModelAction.KIND);
-
-        this.kindToType.put(SiriusDiagramRequestToolsAction.KIND, SiriusDiagramRequestToolsAction.class);
-        this.typeToKind.put(SiriusDiagramRequestToolsAction.class, SiriusDiagramRequestToolsAction.KIND);
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see com.google.gson.TypeAdapterFactory#create(com.google.gson.Gson,
-     *      com.google.gson.reflect.TypeToken)
-     */
-    @Override
-    public <R> TypeAdapter<R> create(Gson gson, TypeToken<R> type) {
-        Map<String, TypeAdapter<AbstractSiriusDiagramAction>> kindToTypeAdapter = new LinkedHashMap<>();
-        Map<Class<? extends AbstractSiriusDiagramAction>, TypeAdapter<AbstractSiriusDiagramAction>> typeToTypeAdapter = new LinkedHashMap<>();
-
-        this.kindToType.entrySet().forEach(entry -> {
-            @SuppressWarnings("unchecked")
-            TypeAdapter<AbstractSiriusDiagramAction> delegateTypeAdapter = (TypeAdapter<AbstractSiriusDiagramAction>) gson.getDelegateAdapter(this, TypeToken.get(entry.getValue()));
-            kindToTypeAdapter.put(entry.getKey(), delegateTypeAdapter);
-            typeToTypeAdapter.put(entry.getValue(), delegateTypeAdapter);
-        });
-
-        TypeAdapter<AbstractSiriusDiagramAction> typeAdapter = new SiriusServerDiagramTypeAdapter(kindToTypeAdapter, this.typeToKind, typeToTypeAdapter).nullSafe();
-
-        Class<? super R> rawType = type.getRawType();
-        if (AbstractSiriusDiagramAction.class.isAssignableFrom(rawType)) {
-            @SuppressWarnings("unchecked")
-            TypeAdapter<R> result = (TypeAdapter<R>) typeAdapter;
-            return result;
-        }
-        return null;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.classpath b/plugins/org.eclipse.sirius.server.frontend.workflow/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.project b/plugins/org.eclipse.sirius.server.frontend.workflow/.project
deleted file mode 100644
index fb03ff5..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.frontend.workflow</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.frontend.workflow/META-INF/MANIFEST.MF
deleted file mode 100644
index 00251f4..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.frontend.workflow;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.server.frontend.workflow
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.server.frontend.workflow.internal;version="7.0.0"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.sirius.server;bundle-version="7.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- javax.servlet;bundle-version="3.1.0"
-Bundle-ActivationPolicy: lazy
-Eclipse-BundleShape: dir
-Bundle-Activator: org.eclipse.sirius.server.frontend.workflow.internal.SiriusServerWorkflowFrontendPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/about.html b/plugins/org.eclipse.sirius.server.frontend.workflow/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/build.properties b/plugins/org.eclipse.sirius.server.frontend.workflow/build.properties
deleted file mode 100644
index 2b3b7c9..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml,\
-               workflow-frontend/
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.properties b/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.properties
deleted file mode 100644
index c7e187e..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server Workflow Front End
-providerName = Eclipse Modeling Project
-
-SiriusServerWorkflowFrontendConfigurator_label = The SiriusServerConfigurator of the workflow front-end
-SiriusServerWorkflowFrontendConfigurator_description = Used to configure the static resources of the Sirius server
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.xml b/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.xml
deleted file mode 100644
index 324be44..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.frontend.workflow.SiriusServerFrontendConfigurator"
-         name="%SiriusServerWorkflowFrontendConfigurator_label"
-         point="org.eclipse.sirius.server.siriusServerConfigurator">
-      <descriptor
-            class="org.eclipse.sirius.server.frontend.workflow.internal.SiriusServerWorkflowFrontendConfigurator"
-            description="%SiriusServerWorkflowFrontendConfigurator_description"
-            id="org.eclipse.sirius.server.frontend.workflow.SiriusServerFrontendConfigurator"
-            label="%SiriusServerWorkflowFrontendConfigurator_label">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/pom.xml b/plugins/org.eclipse.sirius.server.frontend.workflow/pom.xml
deleted file mode 100644
index 83abf78..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.frontend.workflow</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendConfigurator.java b/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendConfigurator.java
deleted file mode 100644
index e32df75..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendConfigurator.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.workflow.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.EnumSet;
-
-import javax.servlet.DispatcherType;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.URIUtil;
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.DefaultServlet;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-import org.osgi.framework.Bundle;
-
-/**
- * The entry point of the workflow front-end used to configure the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerWorkflowFrontendConfigurator implements ISiriusServerConfigurator {
-
-    /**
-     * The context path of the Sirius front-end.
-     */
-    private static final String CONTEXT_PATH = "/workflow"; //$NON-NLS-1$
-
-    /**
-     * The default servlet holder name.
-     */
-    private static final String SERVLET_HOLDER_NAME = "SiriusWorkflowFrontendServletHolder"; //$NON-NLS-1$
-
-    /**
-     * The path of the front end resources.
-     */
-    private static final String FRONTEND_RESOURCES_PATH = "./workflow-frontend"; //$NON-NLS-1$
-
-    /**
-     * The path of the default servlet used to expose the static resources.
-     */
-    private static final String SERVLET_PATH = "/"; //$NON-NLS-1$
-
-    @Override
-    public void configure(Server server) {
-        ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-        servletContextHandler.setContextPath(CONTEXT_PATH);
-
-        servletContextHandler.addFilter(SiriusServerWorkflowFrontendFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST, DispatcherType.INCLUDE)); //$NON-NLS-1$
-
-        try {
-            Bundle bundle = SiriusServerWorkflowFrontendPlugin.getPlugin().getBundle();
-            URL frontendResourcesURL = bundle.getResource(FRONTEND_RESOURCES_PATH);
-            URL resolvedURL = FileLocator.resolve(frontendResourcesURL);
-            URI frontendResourcesURI = URIUtil.toURI(resolvedURL);
-            String frontendResourcesPath = new File(frontendResourcesURI).getAbsolutePath();
-
-            ServletHolder servletHolder = new ServletHolder(SERVLET_HOLDER_NAME, new DefaultServlet());
-            servletHolder.setInitParameter("resourceBase", frontendResourcesPath); //$NON-NLS-1$
-            servletHolder.setInitParameter("dirAllowed", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-            servletContextHandler.addServlet(servletHolder, SERVLET_PATH);
-
-            Handler handler = server.getHandler();
-            if (handler instanceof HandlerCollection) {
-                HandlerCollection handlerCollection = (HandlerCollection) handler;
-                handlerCollection.addHandler(servletContextHandler);
-            }
-        } catch (URISyntaxException | IOException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerWorkflowFrontendPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerWorkflowFrontendPlugin.getPlugin().log(status);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendFilter.java b/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendFilter.java
deleted file mode 100644
index ff4de44..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendFilter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.workflow.internal;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Servlet filter used to redirect the request to provide a single page application.
- *
- * @author sbegaudeau
- */
-public class SiriusServerWorkflowFrontendFilter implements Filter {
-    /**
-     * The path of the static resources.
-     */
-    private static final String STATIC_PATH = "/workflow/static"; //$NON-NLS-1$
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        // Do nothing
-    }
-
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
-            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-            String requestURI = httpServletRequest.getRequestURI();
-            if (this.isStaticResource(requestURI)) {
-                this.handleStaticResource(httpServletRequest, httpServletResponse, chain);
-            } else if (this.isFrontEnd(requestURI)) {
-                this.redirectToFrontEnd(httpServletRequest, httpServletResponse);
-            }
-        }
-    }
-
-    /**
-     * Indicates if the given request URI matches a static resource.
-     *
-     * @param requestURI
-     *            The URI of the request
-     * @return <code>true</code> if the given request matches a static resources, <code>false</code> otherwise
-     */
-    private boolean isStaticResource(String requestURI) {
-        return requestURI.startsWith(STATIC_PATH);
-    }
-
-    /**
-     * Indicates if the given request URI should be redirected to the front end for a proper single page application.
-     *
-     * @param requestURI
-     *            The URI of the request
-     * @return <code>true</code> if the given request should be redirected to the front end
-     */
-    private boolean isFrontEnd(String requestURI) {
-        boolean isFrontEnd = true;
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(STATIC_PATH);
-        return isFrontEnd;
-    }
-
-    /**
-     * Delegates the request to the default servlet to handle static resources.
-     *
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void handleStaticResource(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain chain) throws IOException, ServletException {
-        chain.doFilter(httpServletRequest, httpServletResponse);
-    }
-
-    /**
-     * Redirects the request to the front end in order to have a proper single page application.
-     *
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void redirectToFrontEnd(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
-        httpServletRequest.getRequestDispatcher("/").forward(httpServletRequest, httpServletResponse); //$NON-NLS-1$
-    }
-
-    @Override
-    public void destroy() {
-        // Do nothing
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendPlugin.java b/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendPlugin.java
deleted file mode 100644
index 3617b3d..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/src/org/eclipse/sirius/server/frontend/workflow/internal/SiriusServerWorkflowFrontendPlugin.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.workflow.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * The plugin of the bundle.
- *
- * @author sbegaudeau
- */
-public class SiriusServerWorkflowFrontendPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.frontend.workflow"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerWorkflowFrontendPlugin INSTANCE = new SiriusServerWorkflowFrontendPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerWorkflowFrontendPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            SiriusServerWorkflowFrontendPlugin.plugin = this;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/asset-manifest.json b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/asset-manifest.json
deleted file mode 100644
index f0fd21a..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/asset-manifest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "main.css": "static/css/main.b6a750d2.css",
-  "main.css.map": "static/css/main.b6a750d2.css.map",
-  "main.js": "static/js/main.91885b73.js",
-  "main.js.map": "static/js/main.91885b73.js.map"
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/favicon.ico b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/favicon.ico
deleted file mode 100644
index d0c367b..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/index.html b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/index.html
deleted file mode 100644
index 4468013..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/workflow/manifest.json"><link rel="shortcut icon" href="/workflow/favicon.ico"><title>Eclipse Sirius</title><link href="/workflow/static/css/main.b6a750d2.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script type="text/javascript" src="/workflow/static/js/main.91885b73.js"></script></body></html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/manifest.json b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/manifest.json
deleted file mode 100644
index 69710f8..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/manifest.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "short_name": "Sirius",
-  "name": "Eclipse Sirius",
-  "icons": [
-    {
-      "src": "favicon.ico",
-      "sizes": "64x64 32x32 24x24 16x16",
-      "type": "image/x-icon"
-    }
-  ],
-  "start_url": "./index.html",
-  "display": "standalone",
-  "theme_color": "#000000",
-  "background_color": "#ffffff"
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/service-worker.js b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/service-worker.js
deleted file mode 100644
index fccd4fb..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/service-worker.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";var precacheConfig=[["/workflow/index.html","92ab35d0bccdebd41c91762ae65085c7"],["/workflow/static/css/main.b6a750d2.css","358568e143f3a6a04d9d1d553b4628e4"],["/workflow/static/js/main.91885b73.js","74e2c65691c1f307e45c0e0781988d63"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching),r="index.html";(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,r),t=urlsToCacheKeys.has(n));var a="/workflow/index.html";!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],e.request.url)&&(n=new URL(a,self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css
deleted file mode 100644
index 575666e..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.aside{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:250px}.aside a{display:block;padding:var(--layoutDimension-xs)}.aside a:hover{background-color:var(--dark-snow)}.aside-mainlinks{border-bottom:1px solid var(--dark-smoke);padding-bottom:var(--layoutDimension-s);margin-bottom:var(--layoutDimension-m)}.aside-mainlinks a,.aside-mainlinks a:active,.aside-mainlinks a:hover{color:var(--slate)}.aside-additionallinks a,.aside-additionallinks a:active,.aside-additionallinks a:hover{color:var(--silver);font-weight:var(--fontWeight-normal)}.card{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float);border-radius:var(--borderRadius-small)}.card-divider{border-top:1px solid var(--light-smoke)}.errorcard-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.infocard-container{display:grid;grid-template-rows:-webkit-min-content min-content;grid-template-rows:min-content min-content;grid-row-gap:var(--layoutDimension-m)}.infocard-title{text-align:center;font-size:var(--fontSize-xxxl);font-weight:var(--fontWeight-bold);line-height:var(--lineHeight-xxxl)}.infocard-message{text-align:center;font-size:var(--fontSize-l);line-height:var(--lineHeight-l)}.loading{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.loading div{width:6px;height:6px;margin:0 3px;border-radius:100%;background-color:var(--blue);-webkit-animation-name:loading;animation-name:loading;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:both;animation-fill-mode:both}.loading div:nth-child(0n+1){-webkit-animation-delay:0s;animation-delay:0s}.loading div:nth-child(0n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.loading div:nth-child(0n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes loading{0%,85%,to{opacity:0}35%,50%{opacity:1}}@keyframes loading{0%,85%,to{opacity:0}35%,50%{opacity:1}}.text.loading{height:2ex;color:var(--white);background-color:var(--white);-webkit-animation-name:textloading;animation-name:textloading;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes textloading{0%{color:var(--white);background-color:var(--white)}to{color:var(--smoke);background-color:var(--smoke)}}@keyframes textloading{0%{color:var(--white);background-color:var(--white)}to{color:var(--smoke);background-color:var(--smoke)}}.xxl{font-size:var(--fontSize-xxl);line-height:var(--lineHeight-xxl)}.xl{font-size:var(--fontSize-xl);line-height:var(--lineHeight-xl)}.l{font-size:var(--fontSize-l);line-height:var(--lineHeight-l)}.m{font-size:var(--fontSize-m);line-height:var(--lineHeight-m)}.s{font-size:var(--fontSize-s);line-height:var(--lineHeight-s)}.xs{font-size:var(--fontSize-xs);line-height:var(--lineHeight-xs)}.extrabold{font-weight:var(--fontWeight-extraBold)}.bold{font-weight:var(--fontWeight-bold)}.semibold{font-weight:var(--fontWeight-semiBold)}.regular{font-weight:var(--fontWeight-regular)}.light{font-weight:var(--fontWeight-light)}.hideoverflow{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.dashboardview{display:grid;grid-template-columns:1fr;grid-template-rows:-webkit-min-content min-content;grid-template-rows:min-content min-content;grid-row-gap:var(--layoutDimension-l)}.dashboardview .info{display:grid;grid-template-rows:1fr;grid-template-columns:1fr 1fr 1fr;grid-column-gap:var(--layoutDimension-l)}.projectsinfo{background-color:var(--blue);color:var(--white)}.viewpointsinfo{background-color:var(--orange);color:var(--white)}.metamodelsinfo{background-color:var(--purple);color:var(--white)}.dashboardview .projects-body{display:grid;grid-auto-rows:1fr;grid-template-rows:1fr 1fr;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-row-gap:var(--layoutDimension-l);grid-column-gap:var(--layoutDimension-l)}.blankcard-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.list--separated .tile{border-bottom:1px solid var(--light-smoke)}.list--separated .tile:last-child{border-bottom:0}.list--highlighted .tile:hover{background-color:var(--light-snow)}.tile{--tileLayoutPadding:16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:0 var(--tileLayoutPadding)}.tile--singleline{--tileSingleLineHeight:48px;height:var(--tileSingleLineHeight)}.tile--twoline{--tileTwoLineHeight:60px;height:var(--tileTwoLineHeight)}.tile--threeline{--tileThreeLineHeight:76px;height:var(--tileThreeLineHeight)}.tile-maintext{margin-right:auto}.tile-additionaltext{color:var(--silver)}.tile-additionalicon{--tileAdditionalIconPadding:16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding-left:var(--tileAdditionalIconPadding);cursor:pointer}.title-additionalicon:hover svg{fill:var(--blue)}.projectslistcard .tile-maintext{font-weight:var(--fontWeight-semiBold)}.button{height:36px;min-width:90px;cursor:pointer;border-radius:2px;text-transform:capitalize}.button:hover{-webkit-box-shadow:var(--boxShadow-emboss);box-shadow:var(--boxShadow-emboss)}.button:active{-webkit-box-shadow:var(--boxShadow-deboss);box-shadow:var(--boxShadow-deboss)}.button[disabled],.button[disabled]:active,.button[disabled]:hover{background-color:var(--smoke);-webkit-box-shadow:none;box-shadow:none}.button-container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr}.button-label{grid-column:1/2;grid-row:1/2;z-index:0}.button-loadingindicator{grid-column:1/2;grid-row:1/2;z-index:2}.button--loading{cursor:progress;background-color:var(--white);color:var(--slate)}.button--loading,.button--loading:active,.button--loading:hover{-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--loading[disabled],.button--loading[disabled]:active,.button--loading[disabled]:hover{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--loading .button-label{visibility:hidden}.button--default{background-color:var(--white);color:var(--slate);-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--default:active,.button--default:hover{background-color:var(--blue);color:var(--white)}.button--default .button-loadingindicator{display:none}.button--primary{background-color:var(--blue);color:var(--white)}.button--primary .button-loadingindicator{display:none}.button--success{background-color:var(--green);color:var(--white)}.button--success .button-loadingindicator{display:none}.button--warning{background-color:var(--yellow);color:var(--white)}.button--warning .button-loadingindicator{display:none}.button--danger{background-color:var(--red);color:var(--white)}.button--danger .button-loadingindicator{display:none}.textfield{display:block;width:100%;font-size:var(--fontSize-s);line-height:var(--lineHeight-m);padding:var(--layoutDimension-xs) var(--layoutDimension-s);border-radius:var(--borderRadius-small);border:1px solid var(--smoke);background-clip:padding-box;overflow:visible}.textfield,.textfield:focus{color:var(--slate);background-color:var(--white)}.textfield:focus{border-color:var(--blue);outline:0;-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float)}.textfield.fielderror{border-color:var(--red)}.error{color:var(--red)}.error:first-child{padding:0}.newprojectview{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.newprojectview .newprojectcard{max-width:var(--layoutDimension-xxxl)}.iconrun{fill:var(--green);stroke:var(--green)}.iconrun:hover{fill:var(--light-green);stroke:var(--light-green)}.iconrun:active{fill:var(--dark-green);stroke:var(--dark-green)}.tab{padding:var(--layoutDimension-m) var(--layoutDimension-s);border-bottom:5px solid var(--light-smoke);overflow:hidden;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-align:center}.tab:hover{border-bottom:5px solid var(--light-blue)}.tab--selected{border-bottom:5px solid var(--blue)}.tabbar{display:grid;grid-template-columns:-webkit-min-content 1fr -webkit-min-content;grid-template-columns:min-content 1fr min-content;border-top:1px solid var(--light-smoke);border-bottom:1px solid var(--light-smoke);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tabbar-tabs{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(10px,1fr));grid-column-gap:var(--layoutDimension-m);padding:0 var(--layoutDimension-m)}.tabbar-nav{padding:var(--layoutDimension-m) var(--layoutDimension-s);color:var(--blue);font-weight:var(--fontWeight-bold)}.tabbar-nav:first-child{border-right:1px solid var(--light-smoke)}.tabbar-nav:last-child{border-left:1px solid var(--light-smoke)}.tabbar-nav:hover{cursor:pointer;color:var(--white);background-color:var(--blue)}.tabbar-nav--disabled{color:var(--light-smoke)}.tabbar-nav--disabled:hover{cursor:default;color:var(--light-smoke);background-color:var(--white)}.tabbar-nav--contain-selection{color:var(--white);background-color:var(--light-blue)}.workflowcard .card-divider{margin:0 var(--layoutDimension-m)}.section .listitem{display:grid;grid-template-columns:auto -webkit-min-content;grid-template-columns:auto min-content;-ms-flex-align:center;align-items:center}.editdescription{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.editdescription input{margin-right:auto}.viewdescription{display:grid;grid-template-columns:1fr -webkit-min-content;grid-template-columns:1fr min-content}.viewdescription-text{-ms-flex-item-align:center;align-self:center}.projectview{display:grid;grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto;grid-template-columns:1fr;grid-row-gap:var(--layoutDimension-l)}.projectview-main{display:grid;grid-template-rows:1fr;grid-template-columns:1fr 1fr;grid-column-gap:var(--layoutDimension-l)}.projectview-details .card{margin-top:var(--layoutDimension-l)}.projectview-details .card:first-child{margin-top:0}.navbar{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float)}.navbar-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.navbar-title{margin:auto 0}.app{display:grid;grid-template-columns:1fr;grid-template-rows:[navbar] -webkit-min-content [container] minmax(-webkit-max-content,auto);grid-template-rows:[navbar] min-content [container] minmax(max-content,auto);min-height:100vh;background-color:var(--snow)}.app-navbar{grid-row-start:navbar}.app-container{display:grid;grid-template-columns:[aside] -webkit-min-content [main] auto;grid-template-columns:[aside] min-content [main] auto;grid-row-start:container}.fullscreen .app-container{display:grid;grid-template-columns:1fr}.fullscreen .app-navbar{display:none}.ie11{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:#273444;background-color:#eff2f7}.ie11 .semibold{font-weight:600}.ie11 .regular{font-weight:400}.ie11 .light{font-weight:300}.ie11 .xl{font-size:28px;line-height:38px}.ie11 .l{font-size:20px;line-height:30px}.ie11 .m{font-size:16px;line-height:22px}.ie .s{font-size:14px;line-height:20px}.ie11 .xs{font-size:12px;line-height:18px}.ie11 .card{background-color:#fff;-webkit-box-shadow:0 1px 4px 0 rgba(31,45,61,.15);box-shadow:0 1px 4px 0 rgba(31,45,61,.15)}.ie11 .projectheadercard{margin-bottom:32px}.ie11 .projectheadercard .viewdescription{display:-ms-grid;-ms-grid-columns:1fr min-content}.ie11 .projectheadercard .viewdescription .text{-ms-grid-row:1;-ms-grid-column:1;-ms-grid-row-align:center}.ie11 .projectheadercard .viewdescription div:last-child{-ms-grid-row:1;-ms-grid-column:2}.ie11 .projectview-main{display:-ms-grid;-ms-grid-columns:1fr 32px 1fr;-ms-grid-rows:1fr}.ie11 .projectview-main .projectview-details{-ms-grid-row:1;-ms-grid-column:1}.ie11 .projectview-main .projectview-workflow{-ms-grid-row:1;-ms-grid-column:3}.ie11 .projectview-main .projectview-details .projectrepresentationslistcard{margin-top:32px}.ie11 .tile{padding:0 16px}.ie11 .tile--singleline{height:48px}.ie11 .tile--twoline{height:60px}.ie11 .tabbar{display:-ms-grid;-ms-grid-columns:min-content 1fr min-content;-ms-grid-rows:1fr;border-top:1px solid hsl(212.3,26.5%,90.4%);border-bottom:1px solid hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tabbar-nav{padding:16px 8px;font-weight:700;color:#1ab2ff}.ie11 .tabbar .tabbar-nav--disabled{color:hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tabbar-nav:first-child{border-right:1px solid hsl(212.3,26.5%,90.4%);-ms-grid-row:1;-ms-grid-column:1}.ie11 .tabbar .tabbar-tabs{display:-ms-grid;-ms-grid-columns:1fr 16px 1fr 16px 1fr;padding:0 16px;-ms-grid-row:1;-ms-grid-column:2}.ie11 .tabbar .tab{padding:16px 8px;border-bottom:5px solid hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tab--selected{border-bottom:5px solid #1ab2ff}.ie11 .tabbar .tab:first-child{-ms-grid-row:1;-ms-grid-column:1}.ie11 .tabbar .tab:nth-child(2){-ms-grid-row:1;-ms-grid-column:3}.ie11 .tabbar .tab:last-child{-ms-grid-row:1;-ms-grid-column:5}.ie11 .tabbar .tabbar-nav:last-child{border-left:1px solid hsl(212.3,26.5%,90.4%);-ms-grid-row:1;-ms-grid-column:3}.ie11 .iconrun{fill:#14d266;stroke:#14d266}abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}:focus{outline:0}body{line-height:1;color:#000;background:#fff}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#fff;color:#000}mark{font-style:inherit;font-weight:inherit}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #000;margin:1em 0;padding:0}input,select{vertical-align:middle}a,a:hover,a:visited{text-decoration:none}ol,ul{list-style:none}[role=button],button,input[type=button],input[type=reset],input[type=submit]{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-appearance:button;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}:root{--light-blue:#80d4ff;--blue:#1ab2ff;--dark-blue:#0099e6;--light-green:#2deb80;--green:#14d266;--dark-green:#0fa34f;--light-yellow:#ffd561;--yellow:#ffc72e;--dark-yellow:#fab700;--light-orange:hsl(15.5,100%,74.3%);--orange:hsl(15.5,100%,64.3%);--dark-orange:hsl(15.5,100%,54.3%);--light-red:#ff7a7a;--red:#ff4747;--dark-red:#ff1414;--light-pink:#ff7ae4;--pink:#ff47da;--dark-pink:#ff14d0;--light-purple:#a38af4;--purple:#7f5def;--dark-purple:#5a2eea;--black:#000;--darkness:#1f2d3d;--steel:hsl(213.1,27.1%,21%);--slate:hsl(214.3,18.9%,29%);--silver:hsl(215.3,16%,58.4%);--dark-smoke:hsl(212.3,26%,80.4%);--smoke:hsl(211.6,27.5%,86.5%);--light-smoke:hsl(212.3,26.5%,90.4%);--dark-snow:hsl(221.5,33.3%,92.4%);--snow:hsl(217.5,33.3%,95.3%);--light-snow:#f8f9fc;--white:#fff;--layoutDimension-xs:4px;--layoutDimension-s:8px;--layoutDimension-m:16px;--layoutDimension-l:32px;--layoutDimension-xl:64px;--layoutDimension-xxl:128px;--layoutDimension-xxxl:600px;--fontSize-xs:12px;--fontSize-s:14px;--fontSize-m:16px;--fontSize-l:20px;--fontSize-xl:28px;--fontSize-xxl:34px;--fontSize-xxxl:64px;--fontWeight-light:300;--fontWeight-regular:400;--fontWeight-semiBold:600;--fontWeight-bold:700;--fontWeight-extraBold:800;--lineHeight-xs:18px;--lineHeight-s:20px;--lineHeight-m:22px;--lineHeight-l:30px;--lineHeight-xl:38px;--lineHeight-xxl:50px;--lineHeight-xxxl:70px;--boxShadow-emboss:inset 0 -2px 0 0 rgba(31,45,61,.15);--boxShadow-deboss:inset 0 2px 0 0 rgba(31,45,61,.15);--boxShadow-float:0 1px 4px 0 rgba(31,45,61,.15);--boxShadow-border:0 0 0 1px var(--light-smoke);--borderRadius-small:2px;--borderRadius-medium:4px;--borderRadius-large:8px;--borderRadius-extraLarge:16px;--borderRadius-circle:50%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--steel)}a,a:active,a:hover{color:var(--dark-blue);font-weight:var(--fontWeight-semiBold)}
-/*# sourceMappingURL=main.b6a750d2.css.map*/
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css.map b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css.map
deleted file mode 100644
index a84b25d..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/css/main.b6a750d2.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/aside/Aside.css","components/cards/Card.css","components/error/ErrorCard.css","components/info/InfoCard.css","components/loading/Loading.css","components/text/Text.css","components/dashboard/DashboardView.css","components/blank/BlankCard.css","components/list/List.css","components/projects/ProjectsListCard.css","components/buttons/Button.css","components/form/Form.css","components/projects/newproject/NewProjectView.css","components/icons/IconRun.css","components/tabbar/Tab.css","components/tabbar/TabBar.css","components/workflow/WorkflowCard.css","components/projects/header/EditDescription.css","components/projects/header/ViewDescription.css","components/projects/project/ProjectView.css","components/navbar/Navbar.css","components/app/App.css","components/app/ie11.css","reset.css","app.css"],"names":[],"mappings":"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AkB,CAEpB,SACE,eACA,gBAAkB,CAEpB,SACE,eACA,gBAAkB,CAEpB,OACE,eACA,gBAAkB,CAEpB,UACE,eACA,gBAAkB,CAGpB,YACE,sBACA,kDACQ,yCAA+C,CAGzD,yBACE,kBAAoB,CAEtB,0CACE,iBACA,gCAAkC,CAEpC,gDACE,eACA,kBACA,yBAA2B,CAE7B,yDACE,eACA,iBAAmB,CAGrB,wBACE,iBACA,8BACA,iBAAmB,CAErB,6CACE,eACA,iBAAmB,CAErB,8CACE,eACA,iBAAmB,CAGrB,6EACE,eAAiB,CAEnB,YACE,cAAgB,CAElB,wBACE,WAAa,CAEf,qBACE,WAAa,CAGf,cACE,iBACA,6CACA,kBACA,4CACA,8CAAkD,CAEpD,0BACE,iBACA,gBACA,aAA2B,CAE7B,oCACE,4BAAgC,CAElC,sCACE,8CACA,eACA,iBAAmB,CAErB,2BACE,iBACA,uCACA,eAEA,eACA,iBAAmB,CAErB,mBACE,iBACA,8CAAkD,CAEpD,6BACE,+BAA6C,CAE/C,+BACE,eACA,iBAAmB,CAErB,gCACE,eACA,iBAAmB,CAErB,8BACE,eACA,iBAAmB,CAErB,qCACE,6CACA,eACA,iBAAmB,CAErB,eACE,aACA,cAA2B,CCpI7B,+VAqEE,SACA,UACA,SACA,UACA,eACA,wBACA,sBAAwB,CAG1B,iBAGE,8BACA,qBAAuB,CAGzB,OACE,SAAW,CAGb,KACE,cACA,WACA,eAAkB,CAGpB,8EAWE,aAAe,CAGjB,OACE,eAAiB,CAGnB,aAEE,WAAa,CAGf,oDAIE,WACA,YAAc,CAGhB,EACE,SACA,UACA,eACA,wBACA,sBAAwB,CAG1B,IAGE,oBAAsB,CAGxB,SALE,sBACA,UAAa,CASd,KAFC,mBACA,mBAAqB,CAGvB,IACE,4BAA8B,CAGhC,uBAEE,yBACA,WAAa,CAGf,MACE,yBACA,gBAAkB,CAGpB,GACE,cACA,WACA,SACA,0BACA,aACA,SAAW,CAGb,aAEE,qBAAuB,CAGzB,oBAIE,oBAAsB,CAGxB,MAEE,eAAiB,CAGnB,6EAKE,gBACA,SACA,cACA,aACA,mBACA,iBACA,UACA,0BACA,yBACA,sBACA,qBACA,gBAAkB,CAGpB,iDAEE,SACA,SAAW,CClNb,MACE,qBACA,eACA,oBAEA,sBACA,gBACA,qBAEA,uBACA,iBACA,sBAEA,oCACA,8BACA,mCAEA,oBACA,cACA,mBAEA,qBACA,eACA,oBAEA,uBACA,iBACA,sBAEA,aACA,mBACA,6BACA,6BACA,8BACA,kCACA,+BACA,qCACA,mCACA,8BACA,qBACA,aAEA,yBACA,wBACA,yBACA,yBACA,0BACA,4BACA,6BAEA,mBACA,kBACA,kBACA,kBACA,mBACA,oBACA,qBAEA,uBACA,yBACA,0BACA,sBACA,2BAEA,qBACA,oBACA,oBACA,oBACA,qBACA,sBACA,uBAEA,uDACA,sDACA,iDACA,gDAEA,yBACA,0BACA,yBACA,+BACA,yBAA2B,CAG7B,KACE,iFAEA,mCACA,kCAEA,kBAAoB,CAEtB,mBAGE,uBACA,sCAAwC","file":"static/css/main.b6a750d2.css","sourcesContent":["/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.aside {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n\n  min-width: 250px;\n}\n.aside a {\n  display: block;\n  padding: var(--layoutDimension-xs) var(--layoutDimension-xs);\n}\n.aside a:hover {\n  background-color: var(--dark-snow);\n}\n\n.aside-mainlinks {\n  border-bottom: 1px solid var(--dark-smoke);\n  padding-bottom: var(--layoutDimension-s);\n  margin-bottom: var(--layoutDimension-m);\n}\n\n.aside-mainlinks a,\n.aside-mainlinks a:hover,\n.aside-mainlinks a:active {\n  color: var(--slate);\n}\n.aside-additionallinks a,\n.aside-additionallinks a:hover,\n.aside-additionallinks a:active {\n  color: var(--silver);\n  font-weight: var(--fontWeight-normal);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/aside/Aside.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.card {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n  border-radius: var(--borderRadius-small);\n}\n\n.card-divider {\n  border-top: 1px solid var(--light-smoke);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cards/Card.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.errorcard-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.infocard-container {\n  display: grid;\n  grid-template-rows: -webkit-min-content min-content;\n  grid-template-rows: min-content min-content;\n  grid-row-gap: var(--layoutDimension-m);\n}\n\n.infocard-title {\n  text-align: center;\n  font-size: var(--fontSize-xxxl);\n  font-weight: var(--fontWeight-bold);\n  line-height: var(--lineHeight-xxxl);\n}\n\n.infocard-message {\n  text-align: center;\n  font-size: var(--fontSize-l);\n  line-height: var(--lineHeight-l);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/info/InfoCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.loading {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: center;\n      justify-content: center;\n}\n\n.loading div {\n  width: 6px;\n  height: 6px;\n  margin: 0px 3px;\n\n  border-radius: 100%;\n  background-color: var(--blue);\n\n  -webkit-animation-name: loading;\n\n          animation-name: loading;\n  -webkit-animation-duration: 0.8s;\n          animation-duration: 0.8s;\n  -webkit-animation-iteration-count: infinite;\n          animation-iteration-count: infinite;\n  -webkit-animation-timing-function: linear;\n          animation-timing-function: linear;\n  -webkit-animation-fill-mode: both;\n          animation-fill-mode: both;\n}\n\n.loading div:nth-child(0n + 1) {\n  -webkit-animation-delay: 0s;\n          animation-delay: 0s;\n}\n.loading div:nth-child(0n + 2) {\n  -webkit-animation-delay: 0.15s;\n          animation-delay: 0.15s;\n}\n.loading div:nth-child(0n + 3) {\n  -webkit-animation-delay: 0.3s;\n          animation-delay: 0.3s;\n}\n@-webkit-keyframes loading {\n  0%,\n  85%,\n  100% {\n    opacity: 0;\n  }\n  35%,\n  50% {\n    opacity: 1;\n  }\n}\n@keyframes loading {\n  0%,\n  85%,\n  100% {\n    opacity: 0;\n  }\n  35%,\n  50% {\n    opacity: 1;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loading/Loading.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.text.loading {\n  height: 2ex;\n  color: var(--white);\n  background-color: var(--white);\n\n  -webkit-animation-name: textloading;\n\n          animation-name: textloading;\n  -webkit-animation-duration: 0.8s;\n          animation-duration: 0.8s;\n  -webkit-animation-iteration-count: infinite;\n          animation-iteration-count: infinite;\n  -webkit-animation-timing-function: ease-in-out;\n          animation-timing-function: ease-in-out;\n  -webkit-animation-direction: alternate;\n          animation-direction: alternate;\n  -webkit-animation-fill-mode: forwards;\n          animation-fill-mode: forwards;\n}\n@-webkit-keyframes textloading {\n  from {\n    color: var(--white);\n    background-color: var(--white);\n  }\n  to {\n    color: var(--smoke);\n    background-color: var(--smoke);\n  }\n}\n@keyframes textloading {\n  from {\n    color: var(--white);\n    background-color: var(--white);\n  }\n  to {\n    color: var(--smoke);\n    background-color: var(--smoke);\n  }\n}\n\n.xxl {\n  font-size: var(--fontSize-xxl);\n  line-height: var(--lineHeight-xxl);\n}\n.xl {\n  font-size: var(--fontSize-xl);\n  line-height: var(--lineHeight-xl);\n}\n.l {\n  font-size: var(--fontSize-l);\n  line-height: var(--lineHeight-l);\n}\n.m {\n  font-size: var(--fontSize-m);\n  line-height: var(--lineHeight-m);\n}\n.s {\n  font-size: var(--fontSize-s);\n  line-height: var(--lineHeight-s);\n}\n.xs {\n  font-size: var(--fontSize-xs);\n  line-height: var(--lineHeight-xs);\n}\n\n.extrabold {\n  font-weight: var(--fontWeight-extraBold);\n}\n.bold {\n  font-weight: var(--fontWeight-bold);\n}\n.semibold {\n  font-weight: var(--fontWeight-semiBold);\n}\n.regular {\n  font-weight: var(--fontWeight-regular);\n}\n.light {\n  font-weight: var(--fontWeight-light);\n}\n\n.hideoverflow {\n  white-space: nowrap;\n  overflow: hidden;\n  -o-text-overflow: ellipsis;\n     text-overflow: ellipsis;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/Text.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.dashboardview {\n  display: grid;\n  grid-template-columns: 1fr;\n  grid-template-rows: -webkit-min-content min-content;\n  grid-template-rows: min-content min-content;\n  grid-row-gap: var(--layoutDimension-l);\n}\n\n.dashboardview .info {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr 1fr 1fr;\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n.projectsinfo {\n  background-color: var(--blue);\n  color: var(--white);\n}\n\n.viewpointsinfo {\n  background-color: var(--orange);\n  color: var(--white);\n}\n\n.metamodelsinfo {\n  background-color: var(--purple);\n  color: var(--white);\n}\n\n.dashboardview .projects-body {\n  display: grid;\n  grid-auto-rows: 1fr;\n  grid-template-rows: 1fr 1fr;\n  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n  grid-row-gap: var(--layoutDimension-l);\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.blankcard-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/blank/BlankCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.list--separated .tile {\n  border-bottom: 1px solid var(--light-smoke);\n}\n.list--separated .tile:nth-last-child(1) {\n  border-bottom: 0px;\n}\n\n.list--highlighted .tile:hover {\n  background-color: var(--light-snow);\n}\n\n.tile {\n  --tileLayoutPadding: 16px;\n\n  display: -ms-flexbox;\n\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n\n  padding: 0 var(--tileLayoutPadding);\n}\n.tile--singleline {\n  --tileSingleLineHeight: 48px;\n\n  height: var(--tileSingleLineHeight);\n}\n.tile--twoline {\n  --tileTwoLineHeight: 60px;\n\n  height: var(--tileTwoLineHeight);\n}\n.tile--threeline {\n  --tileThreeLineHeight: 76px;\n\n  height: var(--tileThreeLineHeight);\n}\n\n.tile-maintext {\n  margin-right: auto;\n}\n.tile-additionaltext {\n  color: var(--silver);\n}\n\n.tile-additionalicon {\n  --tileAdditionalIconPadding: 16px;\n\n  display: -ms-flexbox;\n\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n\n  padding-left: var(--tileAdditionalIconPadding);\n  cursor: pointer;\n}\n.title-additionalicon:hover svg {\n  fill: var(--blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/List.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.projectslistcard .tile-maintext {\n  font-weight: var(--fontWeight-semiBold);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectsListCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n.button {\n  height: 36px;\n  min-width: 90px;\n\n  cursor: pointer;\n  border-radius: 2px;\n  text-transform: capitalize;\n}\n.button:hover {\n  -webkit-box-shadow: var(--boxShadow-emboss);\n          box-shadow: var(--boxShadow-emboss);\n}\n.button:active {\n  -webkit-box-shadow: var(--boxShadow-deboss);\n          box-shadow: var(--boxShadow-deboss);\n}\n.button[disabled],\n.button[disabled]:active,\n.button[disabled]:hover {\n  background-color: var(--smoke);\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n\n.button-container {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr;\n}\n\n.button-label {\n  grid-column: 1 / 2;\n  grid-row: 1 / 2;\n  z-index: 0;\n}\n\n.button-loadingindicator {\n  grid-column: 1 / 2;\n  grid-row: 1 / 2;\n  z-index: 2;\n}\n\n.button--loading {\n  cursor: progress;\n  background-color: var(--white);\n  color: var(--slate);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading:hover {\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading:active {\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading[disabled],\n.button--loading[disabled]:active,\n.button--loading[disabled]:hover {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n\n.button--loading .button-label {\n  visibility: hidden;\n}\n\n.button--default {\n  background-color: var(--white);\n  color: var(--slate);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--default:hover {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--default:active {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--default .button-loadingindicator {\n  display: none;\n}\n\n.button--primary {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--primary .button-loadingindicator {\n  display: none;\n}\n\n.button--success {\n  background-color: var(--green);\n  color: var(--white);\n}\n.button--success .button-loadingindicator {\n  display: none;\n}\n\n.button--warning {\n  background-color: var(--yellow);\n  color: var(--white);\n}\n.button--warning .button-loadingindicator {\n  display: none;\n}\n\n.button--danger {\n  background-color: var(--red);\n  color: var(--white);\n}\n.button--danger .button-loadingindicator {\n  display: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/Button.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.textfield {\n  display: block;\n  width: 100%;\n  font-size: var(--fontSize-s);\n  line-height: var(--lineHeight-m);\n  padding: var(--layoutDimension-xs) var(--layoutDimension-s);\n  border-radius: var(--borderRadius-small);\n  border: 1px solid var(--smoke);\n  color: var(--slate);\n  background-color: var(--white);\n  background-clip: padding-box;\n  overflow: visible;\n}\n.textfield:focus {\n  color: var(--slate);\n  background-color: var(--white);\n  border-color: var(--blue);\n  outline: 0;\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n}\n.textfield.fielderror {\n  border-color: var(--red);\n}\n\n.error {\n  color: var(--red);\n}\n.error:nth-child(1) {\n  padding: 0 0 0 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/form/Form.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.newprojectview {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n.newprojectview .newprojectcard {\n  max-width: var(--layoutDimension-xxxl);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.iconrun {\n  fill: var(--green);\n  stroke: var(--green);\n}\n.iconrun:hover {\n  fill: var(--light-green);\n  stroke: var(--light-green);\n}\n.iconrun:active {\n  fill: var(--dark-green);\n  stroke: var(--dark-green);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/icons/IconRun.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.tab {\n  padding: var(--layoutDimension-m) var(--layoutDimension-s);\n  border-bottom: 5px solid var(--light-smoke);\n\n  overflow: hidden;\n  white-space: nowrap;\n  -o-text-overflow: ellipsis;\n     text-overflow: ellipsis;\n  text-align: center;\n}\n.tab:hover {\n  border-bottom: 5px solid var(--light-blue);\n}\n.tab--selected {\n  border-bottom: 5px solid var(--blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/Tab.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.tabbar {\n  display: grid;\n  grid-template-columns: -webkit-min-content 1fr -webkit-min-content;\n  grid-template-columns: min-content 1fr min-content;\n\n  border-top: 1px solid var(--light-smoke);\n  border-bottom: 1px solid var(--light-smoke);\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.tabbar-tabs {\n  display: grid;\n  grid-auto-rows: 1fr;\n  grid-template-columns: repeat(auto-fit, minmax(10px, 1fr));\n  grid-column-gap: var(--layoutDimension-m);\n  padding: 0 var(--layoutDimension-m);\n}\n\n.tabbar-nav {\n  padding: var(--layoutDimension-m) var(--layoutDimension-s);\n  color: var(--blue);\n  font-weight: var(--fontWeight-bold);\n}\n.tabbar-nav:first-child {\n  border-right: 1px solid var(--light-smoke);\n}\n.tabbar-nav:last-child {\n  border-left: 1px solid var(--light-smoke);\n}\n.tabbar-nav:hover {\n  cursor: pointer;\n  color: var(--white);\n  background-color: var(--blue);\n}\n.tabbar-nav--disabled {\n  color: var(--light-smoke);\n}\n.tabbar-nav--disabled:hover {\n  cursor: default;\n  color: var(--light-smoke);\n  background-color: var(--white);\n}\n.tabbar-nav--contain-selection {\n  color: var(--white);\n  background-color: var(--light-blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBar.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.workflowcard .card-divider {\n  margin: 0 var(--layoutDimension-m);\n}\n\n.section .listitem {\n  display: grid;\n  grid-template-columns: auto -webkit-min-content;\n  grid-template-columns: auto min-content;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/workflow/WorkflowCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.editdescription {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n}\n.editdescription input {\n  margin-right: auto;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/EditDescription.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.viewdescription {\n  display: grid;\n  grid-template-columns: 1fr -webkit-min-content;\n  grid-template-columns: 1fr min-content;\n}\n.viewdescription-text {\n  -ms-flex-item-align: center;\n      align-self: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ViewDescription.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.projectview {\n  display: grid;\n  grid-template-rows: -webkit-min-content auto;\n  grid-template-rows: min-content auto;\n  grid-template-columns: 1fr;\n  grid-row-gap: var(--layoutDimension-l);\n}\n\n.projectview-main {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr 1fr;\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n.projectview-details .card {\n  margin-top: var(--layoutDimension-l);\n}\n.projectview-details .card:nth-child(1) {\n  margin-top: 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.navbar {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n}\n\n.navbar-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n}\n\n.navbar-title {\n  margin: auto 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/navbar/Navbar.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.app {\n  display: grid;\n  grid-template-columns: 1fr;\n  grid-template-rows:\n    [navbar] -webkit-min-content\n    [container] minmax(-webkit-max-content, auto);\n  grid-template-rows:\n    [navbar] min-content\n    [container] minmax(max-content, auto);\n\n  min-height: 100vh;\n\n  background-color: var(--snow);\n}\n.app-navbar {\n  grid-row-start: navbar;\n}\n.app-container {\n  display: grid;\n  grid-template-columns:\n    [aside] -webkit-min-content\n    [main] auto;\n  grid-template-columns:\n    [aside] min-content\n    [main] auto;\n\n  grid-row-start: container;\n}\n\n.fullscreen .app-container {\n  display: grid;\n  grid-template-columns: 1fr;\n}\n.fullscreen .app-navbar {\n  display: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/App.css",".ie11 {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,\n    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n  color: #273444;\n  background-color: #eff2f7;\n}\n\n.ie11 .semibold {\n  font-weight: 600;\n}\n.ie11 .regular {\n  font-weight: 400;\n}\n.ie11 .light {\n  font-weight: 300;\n}\n.ie11 .xl {\n  font-size: 28px;\n  line-height: 38px;\n}\n.ie11 .l {\n  font-size: 20px;\n  line-height: 30px;\n}\n.ie11 .m {\n  font-size: 16px;\n  line-height: 22px;\n}\n.ie .s {\n  font-size: 14px;\n  line-height: 20px;\n}\n.ie11 .xs {\n  font-size: 12px;\n  line-height: 18px;\n}\n\n.ie11 .card {\n  background-color: #ffffff;\n  -webkit-box-shadow: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n          box-shadow: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n}\n\n.ie11 .projectheadercard {\n  margin-bottom: 32px;\n}\n.ie11 .projectheadercard .viewdescription {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr min-content;\n}\n.ie11 .projectheadercard .viewdescription .text {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n  -ms-grid-row-align: center;\n}\n.ie11 .projectheadercard .viewdescription div:last-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 2;\n}\n\n.ie11 .projectview-main {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr 32px 1fr;\n  -ms-grid-rows: 1fr;\n}\n.ie11 .projectview-main .projectview-details {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .projectview-main .projectview-workflow {\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n\n.ie11 .projectview-main .projectview-details .projectrepresentationslistcard {\n  margin-top: 32px;\n}\n.ie11 .tile {\n  padding: 0 16px;\n}\n.ie11 .tile--singleline {\n  height: 48px;\n}\n.ie11 .tile--twoline {\n  height: 60px;\n}\n\n.ie11 .tabbar {\n  display: -ms-grid;\n  -ms-grid-columns: min-content 1fr min-content;\n  -ms-grid-rows: 1fr;\n  border-top: 1px solid hsl(212.3, 26.5%, 90.4%);\n  border-bottom: 1px solid hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tabbar-nav {\n  padding: 16px 8px;\n  font-weight: 700;\n  color: hsl(200, 100%, 55%);\n}\n.ie11 .tabbar .tabbar-nav--disabled {\n  color: hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tabbar-nav:first-child {\n  border-right: 1px solid hsl(212.3, 26.5%, 90.4%);\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .tabbar .tabbar-tabs {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr 16px 1fr 16px 1fr;\n  padding: 0 16px;\n\n  -ms-grid-row: 1;\n  -ms-grid-column: 2;\n}\n.ie11 .tabbar .tab {\n  padding: 16px 8px;\n  border-bottom: 5px solid hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tab--selected {\n  border-bottom: 5px solid hsl(200, 100%, 55%);\n}\n.ie11 .tabbar .tab:first-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .tabbar .tab:nth-child(2) {\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n.ie11 .tabbar .tab:last-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 5;\n}\n.ie11 .tabbar .tabbar-nav:last-child {\n  border-left: 1px solid hsl(212.3, 26.5%, 90.4%);\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n.ie11 .iconrun {\n  fill: hsl(146, 83%, 45%);\n  stroke: hsl(146, 83%, 45%);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/ie11.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nhtml,\nbody,\ndiv,\nspan,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\nabbr,\naddress,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\nsamp,\nsmall,\nstrong,\nsub,\nsup,\nvar,\nb,\ni,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  outline: 0;\n  font-size: 100%;\n  vertical-align: baseline;\n  background: transparent;\n}\n\n*,\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n:focus {\n  outline: 0;\n}\n\nbody {\n  line-height: 1;\n  color: black;\n  background: white;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n  display: block;\n}\n\nnav ul {\n  list-style: none;\n}\n\nblockquote,\nq {\n  quotes: none;\n}\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n  content: '';\n  content: none;\n}\n\na {\n  margin: 0;\n  padding: 0;\n  font-size: 100%;\n  vertical-align: baseline;\n  background: transparent;\n}\n\nins {\n  background-color: white;\n  color: black;\n  text-decoration: none;\n}\n\nmark {\n  background-color: white;\n  color: black;\n  font-style: inherit;\n  font-weight: inherit;\n}\n\ndel {\n  text-decoration: line-through;\n}\n\nabbr[title],\ndfn[title] {\n  border-bottom: 1px dotted;\n  cursor: help;\n}\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\nhr {\n  display: block;\n  height: 1px;\n  border: 0;\n  border-top: 1px solid black;\n  margin: 1em 0;\n  padding: 0;\n}\n\ninput,\nselect {\n  vertical-align: middle;\n}\n\na,\na:visited,\na:hover {\n  /*color: inherit;*/\n  text-decoration: none;\n}\n\nol,\nul {\n  list-style: none;\n}\n\n[role='button'],\ninput[type='submit'],\ninput[type='reset'],\ninput[type='button'],\nbutton {\n  background: none;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  padding: 0;\n  -webkit-appearance: button; /* for input */\n  -webkit-user-select: none; /* for button */\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\ninput::-moz-focus-inner,\nbutton::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/reset.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n:root {\n  --light-blue: hsl(200, 100%, 75%);\n  --blue: hsl(200, 100%, 55%);\n  --dark-blue: hsl(200, 100%, 45%);\n\n  --light-green: hsl(146, 83%, 55%);\n  --green: hsl(146, 83%, 45%);\n  --dark-green: hsl(146, 83%, 35%);\n\n  --light-yellow: hsl(44, 100%, 68.6%);\n  --yellow: hsl(44, 100%, 58.6%);\n  --dark-yellow: hsl(44, 100%, 48.6%);\n\n  --light-orange: hsl(15.5, 100%, 74.3%);\n  --orange: hsl(15.5, 100%, 64.3%);\n  --dark-orange: hsl(15.5, 100%, 54.3%);\n\n  --light-red: hsl(0, 100%, 74.3%);\n  --red: hsl(0, 100%, 64.3%);\n  --dark-red: hsl(0, 100%, 54.3%);\n\n  --light-pink: hsl(312, 100%, 74.3%);\n  --pink: hsl(312, 100%, 64.3%);\n  --dark-pink: hsl(312, 100%, 54.3%);\n\n  --light-purple: hsl(254, 82.9%, 74.7%);\n  --purple: hsl(254, 82.2%, 64.7%);\n  --dark-purple: hsl(254, 81.8%, 54.7%);\n\n  --black: hsl(0, 0%, 0%);\n  --darkness: hsl(212, 32.6%, 18%);\n  --steel: hsl(213.1, 27.1%, 21%);\n  --slate: hsl(214.3, 18.9%, 29%);\n  --silver: hsl(215.3, 16%, 58.4%);\n  --dark-smoke: hsl(212.3, 26%, 80.4%);\n  --smoke: hsl(211.6, 27.5%, 86.5%);\n  --light-smoke: hsl(212.3, 26.5%, 90.4%);\n  --dark-snow: hsl(221.5, 33.3%, 92.4%);\n  --snow: hsl(217.5, 33.3%, 95.3%);\n  --light-snow: hsl(220, 33.3%, 98.2%);\n  --white: hsl(0, 0%, 100%);\n\n  --layoutDimension-xs: 4px;\n  --layoutDimension-s: 8px;\n  --layoutDimension-m: 16px;\n  --layoutDimension-l: 32px;\n  --layoutDimension-xl: 64px;\n  --layoutDimension-xxl: 128px;\n  --layoutDimension-xxxl: 600px;\n\n  --fontSize-xs: 12px;\n  --fontSize-s: 14px;\n  --fontSize-m: 16px;\n  --fontSize-l: 20px;\n  --fontSize-xl: 28px;\n  --fontSize-xxl: 34px;\n  --fontSize-xxxl: 64px;\n\n  --fontWeight-light: 300;\n  --fontWeight-regular: 400;\n  --fontWeight-semiBold: 600;\n  --fontWeight-bold: 700;\n  --fontWeight-extraBold: 800;\n\n  --lineHeight-xs: 18px;\n  --lineHeight-s: 20px;\n  --lineHeight-m: 22px;\n  --lineHeight-l: 30px;\n  --lineHeight-xl: 38px;\n  --lineHeight-xxl: 50px;\n  --lineHeight-xxxl: 70px;\n\n  --boxShadow-emboss: inset 0 -2px 0 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-deboss: inset 0 2px 0 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-float: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-border: 0 0 0 1px var(--light-smoke);\n\n  --borderRadius-small: 2px;\n  --borderRadius-medium: 4px;\n  --borderRadius-large: 8px;\n  --borderRadius-extraLarge: 16px;\n  --borderRadius-circle: 50%;\n}\n\nbody {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,\n    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n  color: var(--steel);\n}\na,\na:hover,\na:active {\n  color: var(--dark-blue);\n  font-weight: var(--fontWeight-semiBold);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app.css"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js
deleted file mode 100644
index 20ca629..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/workflow/",t(t.s=45)}([function(e,t,n){"use strict";e.exports=n(53)},function(e,t,n){e.exports=n(65)()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return(e+" "+n.filter(function(e){return e}).join(" ")).trim()}},function(e,t,n){"use strict";n.d(t,"e",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"d",function(){return u}),n.d(t,"f",function(){return c});var r="4px",o="8px",a="16px",i="32px",u="64px",c="128px"},function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n(0),o=n.n(r),a=n(1),i=n.n(a),u=n(3),c={top:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),right:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),bottom:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),left:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f])},l=function(e){var t=e.children,n=e.top,r=e.right,a=e.bottom,i=e.left,u={paddingTop:n,paddingRight:r,paddingBottom:a,paddingLeft:i};return o.a.createElement("div",{style:u},t)};l.propTypes=c},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return d});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(7),s=n(104),f=(n.n(s),{children:u.a.string,loading:u.a.bool,weight:u.a.oneOf([l.g,l.i,l.j,l.a,l.b]).isRequired,size:u.a.oneOf([l.e,l.k,l.h,l.f,l.d,l.c]).isRequired,hideOverflow:u.a.bool}),p={weight:l.i,size:l.k},d=function(e){var t=e.children,n=e.className,o=e.weight,i=e.size,u=e.hideOverflow,l=e.loading,s=(r(e,["children","className","weight","size","hideOverflow","loading"]),Object(c.a)("text",i,o));return u&&(s=Object(c.a)(s,"hideoverflow")),l&&(s=Object(c.a)(s,"loading")),s=Object(c.a)(s,n),a.a.createElement("div",{className:s},t)};d.propTypes=f,d.defaultProps=p},function(e,t,n){"use strict";n.d(t,"g",function(){return r}),n.d(t,"i",function(){return o}),n.d(t,"j",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return l}),n.d(t,"f",function(){return s}),n.d(t,"h",function(){return f}),n.d(t,"k",function(){return p}),n.d(t,"e",function(){return d});var r="light",o="regular",a="semibold",i="bold",u="extrabold",c="xxl",l="xl",s="l",f="m",p="s",d="xs"},function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,u){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,u],s=0;c=new Error(t.replace(/%s/g,function(){return l[s++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};e.exports=r},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return c}),n.d(t,"b",function(){return l});var o=n(0),a=n.n(o),i=n(2),u=n(98),c=(n.n(u),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("card",t);return a.a.createElement("div",Object.assign({className:o},n),n.children)}),l=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("card-divider",t);return a.a.createElement("div",Object.assign({className:o},n))}},function(e,t,n){"use strict";var r=n(64);n.d(t,"a",function(){return r.a});var o=(n(69),n(35));n.d(t,"b",function(){return o.a});var a=(n(71),n(74),n(77),n(79));n.d(t,"c",function(){return a.a});var i=n(36);n.d(t,"d",function(){return i.a});var u=(n(25),n(85),n(87));n.d(t,"e",function(){return u.a});var c=(n(89),n(90));n.d(t,"f",function(){return c.a})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h}),n.d(t,"c",function(){return m}),n.d(t,"b",function(){return y});var u=n(0),c=n.n(u),l=n(1),s=n.n(l),f=n(2),p=n(102),d=(n.n(p),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),h=function(e){var t=e.className,n=i(e,["className"]),r=Object(f.a)("loading",t);return c.a.createElement("div",Object.assign({className:r},n),c.a.createElement("div",null),c.a.createElement("div",null),c.a.createElement("div",null))},m=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),d(t,[{key:"getChildContext",value:function(){return{LoadingProvider_LOADING:this.props.loading}}},{key:"render",value:function(){return this.props.children}}]),t}(u.Component);m.childContextTypes={LoadingProvider_LOADING:s.a.bool.isRequired};var y=function(e,t){var n=e.render,r=e.children;return(void 0===r?n:r)(t.LoadingProvider_LOADING)};y.contextTypes={LoadingProvider_LOADING:s.a.bool}},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"a",function(){return a});var r=1e3,o=1001,a=1002},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"d",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"a",function(){return i});var r="SINGLE_LINE",o="TWO_LINES",a="THREE_LINES",i="list--highlighted"},function(e,t,n){"use strict";t.__esModule=!0;var r=(t.addLeadingSlash=function(e){return"/"===e.charAt(0)?e:"/"+e},t.stripLeadingSlash=function(e){return"/"===e.charAt(0)?e.substr(1):e},t.hasBasename=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)});t.stripBasename=function(e,t){return r(e,t)?e.substr(t.length):e},t.stripTrailingSlash=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},t.createPath=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"f",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"d",function(){return c}),n.d(t,"b",function(){return l});var r=function(e){return"/"===e.charAt(0)?e:"/"+e},o=function(e){return"/"===e.charAt(0)?e.substr(1):e},a=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)},i=function(e,t){return a(e,t)?e.substr(t.length):e},u=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},c=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},l=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(4),f=n(3),p=n(99),d=(n.n(p),{code:u.a.number.isRequired,title:u.a.string.isRequired,message:u.a.string.isRequired}),h=function(e){var t=e.className,n=e.code,o=e.title,i=e.message,u=r(e,["className","code","title","message"]),p=Object(c.a)("errorcard",t);return a.a.createElement(l.a,Object.assign({},u,{className:p}),a.a.createElement(s.a,{top:f.a,right:f.a,bottom:f.a,left:f.a},a.a.createElement("div",{className:"errorcard-container"},a.a.createElement(s.a,{top:f.b,right:f.b,bottom:f.b,left:f.b},a.a.createElement("h1",{className:"title-l"},o)),a.a.createElement("p",null,i+" (code: "+n+")"))))};h.propTypes=d},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e,t,n){return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{stateId:n},o=arguments[1],a=arguments[2],i=e[r.stateId],u=i[a.kind];if(u){var c=t(r,o,a);if(-1!==u.indexOf(c.stateId)){if(e[c.stateId])return c;console.error("The state "+c.stateId+" does not exist.")}else console.error("The state '"+c.stateId+"' should not be accessible from "+r.stateId+" with the transition "+a.kind+".")}else console.error("The state '"+r.stateId+"' does not support the transition '"+a.kind+"'.");return r}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";n.d(t,"a",function(){return u}),n.d(t,"b",function(){return c});var r=n(32),o=n(33),a=n(15),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(e,t,n,o){var u=void 0;"string"===typeof e?(u=Object(a.d)(e),u.state=t):(u=i({},e),void 0===u.pathname&&(u.pathname=""),u.search?"?"!==u.search.charAt(0)&&(u.search="?"+u.search):u.search="",u.hash?"#"!==u.hash.charAt(0)&&(u.hash="#"+u.hash):u.hash="",void 0!==t&&void 0===u.state&&(u.state=t));try{u.pathname=decodeURI(u.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+u.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(u.key=n),o?u.pathname?"/"!==u.pathname.charAt(0)&&(u.pathname=Object(r.default)(u.pathname,o.pathname)):u.pathname=o.pathname:u.pathname||(u.pathname="/"),u},c=function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&Object(o.default)(e.state,t.state)}},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b}),n.d(t,"d",function(){return w}),n.d(t,"b",function(){return O}),n.d(t,"e",function(){return _}),n.d(t,"c",function(){return k});var a=n(0),i=n.n(a),u=n(1),c=n.n(u),l=n(2),s=n(4),f=n(3),p=n(6),d=n(13),h=n(111),m=(n.n(h),n(7)),y={};(function(e){var t=e.className,n=o(e,["className"]),r=Object(l.a)("tile-mainicon",t);return i.a.createElement("div",Object.assign({className:r},n))}).propTypes=y;var v={},b=function(e){var t=e.className,n=o(e,["className"]),r=Object(l.a)("tile-additionalicon",t);return i.a.createElement("div",Object.assign({className:r},n))};b.propTypes=v;var g={children:c.a.string},w=function(e){var t=e.className,n=e.children,r=o(e,["className","children"]),a=Object(l.a)("tile-maintext",t);return i.a.createElement(p.a,Object.assign({className:a},r),n)};w.propTypes=g;var E={children:c.a.string},O=function(e){var t=e.className,n=e.children,r=o(e,["className","children"]),a=Object(l.a)("tile-additionaltext",t);return i.a.createElement(p.a,Object.assign({className:a},r,{size:m.e,weight:m.g}),n)};O.propTypes=E;var T={kind:c.a.oneOf([d.b,d.d,d.c]).isRequired},_=function(e){var t=e.className,n=e.kind,r=o(e,["className","kind"]),a="tile--singleline";n===d.d?a="tile--twoline":n===d.c&&(a="tile--threeline");var u=Object(l.a)("tile",a,t);return i.a.createElement("li",Object.assign({className:u},r))};_.propTypes=T;var C={kind:c.a.oneOfType([c.a.string,c.a.array]),children:c.a.oneOfType([c.a.arrayOf(_),c.a.objectOf(_)])},x={kind:""},k=function(e){var t=e.children,n=e.className,a=e.kind,u=o(e,["children","className","kind"]),c=N(a),p=l.a.apply(void 0,["list"].concat(r(c),[n]));return i.a.createElement("ul",Object.assign({className:p},u),i.a.createElement(s.a,{top:f.c,bottom:f.c},t))};k.propTypes=C,k.defaultProps=x;var N=function(e){var t=[];return Array.isArray(e)?t=e:"string"===typeof e&&t.push(e),t}},function(e,t,n){e.exports=n(138)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,u,c=r(e),l=1;l<arguments.length;l++){n=Object(arguments[l]);for(var s in n)a.call(n,s)&&(c[s]=n[s]);if(o){u=o(n);for(var f=0;f<u.length;f++)i.call(n,u[f])&&(c[u[f]]=n[u[f]])}}return c}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.locationsAreEqual=t.createLocation=void 0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(32),i=r(a),u=n(33),c=r(u),l=n(14);t.createLocation=function(e,t,n,r){var a=void 0;"string"===typeof e?(a=(0,l.parsePath)(e),a.state=t):(a=o({},e),void 0===a.pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(a.key=n),r?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=(0,i.default)(a.pathname,r.pathname)):a.pathname=r.pathname:a.pathname||(a.pathname="/"),a},t.locationsAreEqual=function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&(0,c.default)(e.state,t.state)}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=function(){var e=null,t=function(t){return(0,o.default)(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,a){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,a):((0,o.default)(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),a(!0)):a(!1!==i)}else a(!0)},r=[];return{setPrompt:t,confirmTransitionTo:n,appendListener:function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},notifyListeners:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.forEach(function(e){return e.apply(void 0,t)})}}};t.default=a},function(e,t,n){"use strict";var r=n(26);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(8),l=n.n(c),s=n(0),f=n.n(s),p=n(1),d=n.n(p),h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.state={match:a.computeMatch(a.props.history.location.pathname)},i=n,o(a,i)}return a(t,e),t.prototype.getChildContext=function(){return{router:h({},this.context.router,{history:this.props.history,route:{location:this.props.history.location,match:this.state.match}})}},t.prototype.computeMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}},t.prototype.componentWillMount=function(){var e=this,t=this.props,n=t.children,r=t.history;l()(null==n||1===f.a.Children.count(n),"A <Router> may have only one child element"),this.unlisten=r.listen(function(){e.setState({match:e.computeMatch(r.location.pathname)})})},t.prototype.componentWillReceiveProps=function(e){u()(this.props.history===e.history,"You cannot change <Router history>")},t.prototype.componentWillUnmount=function(){this.unlisten()},t.prototype.render=function(){var e=this.props.children;return e?f.a.Children.only(e):null},t}(f.a.Component);m.propTypes={history:d.a.object.isRequired,children:d.a.node},m.contextTypes={router:d.a.object},m.childContextTypes={router:d.a.object.isRequired},t.a=m},function(e,t,n){"use strict";var r=n(75),o=n.n(r),a={},i=0,u=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=a[n]||(a[n]={});if(r[e])return r[e];var u=[],c=o()(e,u,t),l={re:c,keys:u};return i<1e4&&(r[e]=l,i++),l},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"===typeof t&&(t={path:t});var n=t,r=n.path,o=void 0===r?"/":r,a=n.exact,i=void 0!==a&&a,c=n.strict,l=void 0!==c&&c,s=n.sensitive,f=void 0!==s&&s,p=u(o,{end:i,strict:l,sensitive:f}),d=p.re,h=p.keys,m=d.exec(e);if(!m)return null;var y=m[0],v=m.slice(1),b=e===y;return i&&!b?null:{path:o,url:"/"===o&&""===y?"/":y,isExact:b,params:h.reduce(function(e,t,n){return e[t.name]=v[n],e},{})}};t.a=c},function(e,t,n){"use strict";var r=n(5),o=n.n(r),a=function(){var e=null,t=function(t){return o()(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,a){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,a):(o()(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),a(!0)):a(!1!==i)}else a(!0)},r=[];return{setPrompt:t,confirmTransitionTo:n,appendListener:function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},notifyListeners:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.forEach(function(e){return e.apply(void 0,t)})}}};t.a=a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(11),s=n(4),f=n(3),p=n(6),d=n(7),h=n(41),m=n(115),y=(n.n(m),{kind:u.a.oneOf([h.a,h.b,h.c,h.d,h.e]),loading:u.a.bool}),v={kind:h.b},b=function(e){var t=e.className,n=e.kind,o=e.loading,i=r(e,["className","kind","loading"]),u=Object(c.a)("button",t);if(o)u=Object(c.a)(u,"button--loading");else{var h=g(n);u=Object(c.a)(u,h)}return a.a.createElement("button",Object.assign({className:u},i,{disabled:o}),a.a.createElement(s.a,{right:f.b,left:f.b},a.a.createElement("div",{className:"button-container"},a.a.createElement(l.a,{className:"button-loadingindicator"}),a.a.createElement(p.a,{className:"button-label",weight:d.j},i.children))))};b.propTypes=y,b.defaultProps=v;var g=function(e){var t=void 0;switch(e){case h.b:t="button--default";break;case h.c:t="button--primary";break;case h.d:t="button--success";break;case h.e:t="button--warning";break;case h.a:t="button--danger";break;default:t="button--default"}return t}},function(e,t,n){"use strict";function r(){}function o(e){try{return e.then}catch(e){return v=e,b}}function a(e,t){try{return e(t)}catch(e){return v=e,b}}function i(e,t,n){try{e(t,n)}catch(e){return v=e,b}}function u(e){if("object"!==typeof this)throw new TypeError("Promises must be constructed via new");if("function"!==typeof e)throw new TypeError("Promise constructor's argument is not a function");this._75=0,this._83=0,this._18=null,this._38=null,e!==r&&m(e,this)}function c(e,t,n){return new e.constructor(function(o,a){var i=new u(r);i.then(o,a),l(e,new h(t,n,i))})}function l(e,t){for(;3===e._83;)e=e._18;if(u._47&&u._47(e),0===e._83)return 0===e._75?(e._75=1,void(e._38=t)):1===e._75?(e._75=2,void(e._38=[e._38,t])):void e._38.push(t);s(e,t)}function s(e,t){y(function(){var n=1===e._83?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._83?f(t.promise,e._18):p(t.promise,e._18));var r=a(n,e._18);r===b?p(t.promise,v):f(t.promise,r)})}function f(e,t){if(t===e)return p(e,new TypeError("A promise cannot be resolved with itself."));if(t&&("object"===typeof t||"function"===typeof t)){var n=o(t);if(n===b)return p(e,v);if(n===e.then&&t instanceof u)return e._83=3,e._18=t,void d(e);if("function"===typeof n)return void m(n.bind(t),e)}e._83=1,e._18=t,d(e)}function p(e,t){e._83=2,e._18=t,u._71&&u._71(e,t),d(e)}function d(e){if(1===e._75&&(l(e,e._38),e._38=null),2===e._75){for(var t=0;t<e._38.length;t++)l(e,e._38[t]);e._38=null}}function h(e,t,n){this.onFulfilled="function"===typeof e?e:null,this.onRejected="function"===typeof t?t:null,this.promise=n}function m(e,t){var n=!1,r=i(e,function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,p(t,e))});n||r!==b||(n=!0,p(t,v))}var y=n(48),v=null,b={};e.exports=u,u._47=null,u._71=null,u._44=r,u.prototype.then=function(e,t){if(this.constructor!==u)return c(this,e,t);var n=new u(r);return l(this,new h(e,t,n)),n}},function(e,t,n){"use strict";var r={};e.exports=r},function(e,t,n){"use strict";function r(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e&&e.split("/")||[],a=t&&t.split("/")||[],i=e&&r(e),u=t&&r(t),c=i||u;if(e&&r(e)?a=n:n.length&&(a.pop(),a=a.concat(n)),!a.length)return"/";var l=void 0;if(a.length){var s=a[a.length-1];l="."===s||".."===s||""===s}else l=!1;for(var f=0,p=a.length;p>=0;p--){var d=a[p];"."===d?o(a,p):".."===d?(o(a,p),f++):f&&(o(a,p),f--)}if(!c)for(;f--;f)a.unshift("..");!c||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return l&&"/"!==h.substr(-1)&&(h+="/"),h}Object.defineProperty(t,"__esModule",{value:!0}),t.default=a},function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return r(e,t[n])});var n="undefined"===typeof e?"undefined":o(e);if(n!==("undefined"===typeof t?"undefined":o(t)))return!1;if("object"===n){var a=e.valueOf(),i=t.valueOf();if(a!==e||i!==t)return r(a,i);var u=Object.keys(e),c=Object.keys(t);return u.length===c.length&&u.every(function(n){return r(e[n],t[n])})}return!1}Object.defineProperty(t,"__esModule",{value:!0});var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=r},function(e,t,n){"use strict";t.__esModule=!0;t.canUseDOM=!("undefined"===typeof window||!window.document||!window.document.createElement),t.addEventListener=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},t.removeEventListener=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},t.getConfirmation=function(e,t){return t(window.confirm(e))},t.supportsHistory=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},t.supportsPopStateOnHashChange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},t.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},t.isExtraneousPopstateEvent=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=n(0),c=n.n(u),l=n(1),s=n.n(l),f=n(8),p=n.n(f),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)},m=function(e){function t(){var n,r,i;o(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=r=a(this,e.call.apply(e,[this].concat(c))),r.handleClick=function(e){if(r.props.onClick&&r.props.onClick(e),!e.defaultPrevented&&0===e.button&&!r.props.target&&!h(e)){e.preventDefault();var t=r.context.router.history,n=r.props,o=n.replace,a=n.to;o?t.replace(a):t.push(a)}},i=n,a(r,i)}return i(t,e),t.prototype.render=function(){var e=this.props,t=(e.replace,e.to),n=e.innerRef,o=r(e,["replace","to","innerRef"]);p()(this.context.router,"You should not use <Link> outside a <Router>");var a=this.context.router.history.createHref("string"===typeof t?{pathname:t}:t);return c.a.createElement("a",d({},o,{onClick:this.handleClick,href:a,ref:n}))},t}(c.a.Component);m.propTypes={onClick:s.a.func,target:s.a.string,replace:s.a.bool,to:s.a.oneOfType([s.a.string,s.a.object]).isRequired,innerRef:s.a.oneOfType([s.a.string,s.a.func])},m.defaultProps={replace:!1},m.contextTypes={router:s.a.shape({history:s.a.shape({push:s.a.func.isRequired,replace:s.a.func.isRequired,createHref:s.a.func.isRequired}).isRequired}).isRequired},t.a=m},function(e,t,n){"use strict";var r=n(37);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(8),l=n.n(c),s=n(0),f=n.n(s),p=n(1),d=n.n(p),h=n(27),m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y=function(e){return 0===f.a.Children.count(e)},v=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.state={match:a.computeMatch(a.props,a.context.router)},i=n,o(a,i)}return a(t,e),t.prototype.getChildContext=function(){return{router:m({},this.context.router,{route:{location:this.props.location||this.context.router.route.location,match:this.state.match}})}},t.prototype.computeMatch=function(e,t){var n=e.computedMatch,r=e.location,o=e.path,a=e.strict,i=e.exact,u=e.sensitive;if(n)return n;l()(t,"You should not use <Route> or withRouter() outside a <Router>");var c=t.route,s=(r||c.location).pathname;return o?Object(h.a)(s,{path:o,strict:a,exact:i,sensitive:u}):c.match},t.prototype.componentWillMount=function(){u()(!(this.props.component&&this.props.render),"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored"),u()(!(this.props.component&&this.props.children&&!y(this.props.children)),"You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored"),u()(!(this.props.render&&this.props.children&&!y(this.props.children)),"You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored")},t.prototype.componentWillReceiveProps=function(e,t){u()(!(e.location&&!this.props.location),'<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),u()(!(!e.location&&this.props.location),'<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'),this.setState({match:this.computeMatch(e,t.router)})},t.prototype.render=function(){var e=this.state.match,t=this.props,n=t.children,r=t.component,o=t.render,a=this.context.router,i=a.history,u=a.route,c=a.staticContext,l=this.props.location||u.location,s={match:e,location:l,history:i,staticContext:c};return r?e?f.a.createElement(r,s):null:o?e?o(s):null:n?"function"===typeof n?n(s):y(n)?null:f.a.Children.only(n):null},t}(f.a.Component);v.propTypes={computedMatch:d.a.object,path:d.a.string,exact:d.a.bool,strict:d.a.bool,sensitive:d.a.bool,component:d.a.func,render:d.a.func,children:d.a.oneOfType([d.a.func,d.a.node]),location:d.a.object},v.contextTypes={router:d.a.shape({history:d.a.object.isRequired,route:d.a.object.isRequired,staticContext:d.a.object})},v.childContextTypes={router:d.a.object.isRequired},t.a=v},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"a",function(){return o}),n.d(t,"e",function(){return a}),n.d(t,"c",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"h",function(){return c}),n.d(t,"f",function(){return l}),n.d(t,"d",function(){return s});var r=!("undefined"===typeof window||!window.document||!window.document.createElement),o=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},a=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},i=function(e,t){return t(window.confirm(e))},u=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},c=function(){return-1===window.navigator.userAgent.indexOf("Trident")},l=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},s=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},function(e,t,n){"use strict";n.d(t,"g",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"f",function(){return u}),n.d(t,"e",function(){return c}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return s});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="DASHBOARD_LOADED__STATE",u="INITIALIZE__ACTION",c="HANDLE_FETCHED_DASHBOARD__ACTION",l="HANDLE_ERROR__ACTION",s={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_DASHBOARD__ACTION:[i],HANDLE_ERROR__ACTION:[a]},DASHBOARD_LOADED__STATE:{},ERROR__STATE:{}}},function(e,t,n){"use strict";n.d(t,"f",function(){return r}),n.d(t,"g",function(){return o}),n.d(t,"a",function(){return a}),n.d(t,"h",function(){return i}),n.d(t,"i",function(){return u}),n.d(t,"e",function(){return c}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return s}),n.d(t,"b",function(){return f});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="NO_PROJECTS_LOADED__STATE",u="PROJECTS_LOADED__STATE",c="INITIALIZE__ACTION",l="HANDLE_FETCHED_PROJECTS__ACTION",s="HANDLE_ERROR__ACTION",f={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_PROJECTS__ACTION:[i,u],HANDLE_ERROR__ACTION:[a]},NO_PROJECTS_LOADED__STATE:{},PROJECTS_LOADED__STATE:{},ERROR__STATE:{}}},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"d",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"a",function(){return u});var r="default",o="primary",a="success",i="warning",u="danger"},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"f",function(){return s}),n.d(t,"e",function(){return f}),n.d(t,"g",function(){return p}),n.d(t,"b",function(){return d}),n.d(t,"h",function(){return h}),n.d(t,"a",function(){return m}),n.d(t,"d",function(){return y}),n.d(t,"c",function(){return v});var o=n(0),a=n.n(o),i=n(2),u=n(4),c=n(3),l=n(116),s=(n.n(l),function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),l=Object(i.a)("form",n);return a.a.createElement("form",Object.assign({className:l},o),a.a.createElement(u.a,{top:c.b,right:c.b,bottom:c.b,left:c.b},t))}),f=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),l=Object(i.a)("field",n);return a.a.createElement("div",Object.assign({className:l},o),a.a.createElement(u.a,{bottom:c.b},t))},p=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("label body-l",t);return a.a.createElement(u.a,{bottom:c.c},a.a.createElement("label",Object.assign({className:o},n)))},d=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("description caption-m",t);return a.a.createElement(u.a,{bottom:c.c},a.a.createElement("p",Object.assign({className:o},n)))},h=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("textfield",t);return a.a.createElement("input",Object.assign({className:o,type:"text"},n))},m=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),l=Object(i.a)("actiongroup",n);return a.a.createElement("div",Object.assign({className:l},o),a.a.createElement(u.a,{top:c.b},t))},y=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),l=Object(i.a)("errorgroup",n);return a.a.createElement("div",Object.assign({className:l},o),a.a.createElement(u.a,{top:c.c,bottom:c.c},t))},v=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),l=Object(i.a)("error",n);return a.a.createElement("div",Object.assign({className:l},o),a.a.createElement(u.a,{top:c.c},t))}},function(e,t,n){"use strict";n.d(t,"e",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"f",function(){return a}),n.d(t,"i",function(){return i}),n.d(t,"d",function(){return u}),n.d(t,"g",function(){return c}),n.d(t,"c",function(){return l}),n.d(t,"b",function(){return s}),n.d(t,"a",function(){return f});var r="INITIAL__STATE",o="PRISTINE__STATE",a="MODIFIED__STATE",i="REDIRECT__STATE",u="INITIALIZE__ACTION",c="MODIFY_NAME__ACTION",l="HANDLE_ERROR__ACTION",s="HANDLE_CREATED_PROJECT__ACTION",f={INITIAL__STATE:{INITIALIZE__ACTION:[o]},PRISTINE__STATE:{MODIFY_NAME__ACTION:[a]},MODIFIED__STATE:{MODIFY_NAME__ACTION:[a],HANDLE_ERROR__ACTION:[a],HANDLE_CREATED_PROJECT__ACTION:[i]},REDIRECT__STATE:{}}},function(e,t,n){"use strict";n.d(t,"h",function(){return r}),n.d(t,"i",function(){return o}),n.d(t,"a",function(){return a}),n.d(t,"j",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"f",function(){return c}),n.d(t,"e",function(){return l}),n.d(t,"c",function(){return s}),n.d(t,"d",function(){return f}),n.d(t,"b",function(){return p});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="PROJECT_LOADED__STATE",u="INITIALIZE__ACTION",c="HANDLE_FETCHED_PROJECT__ACTION",l="HANDLE_FETCHED_PAGE__ACTION",s="HANDLE_DESCRIPTION_UPDATED__ACTION",f="HANDLE_ERROR__ACTION",p={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[i],HANDLE_ERROR__ACTION:[a]},PROJECT_LOADED__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[i],HANDLE_FETCHED_PAGE__ACTION:[i],HANDLE_DESCRIPTION_UPDATED__ACTION:[i]},ERROR__STATE:{}}},function(e,t,n){n(46),e.exports=n(52)},function(e,t,n){"use strict";"undefined"===typeof Promise&&(n(47).enable(),window.Promise=n(50)),n(51),Object.assign=n(22)},function(e,t,n){"use strict";function r(){l=!1,u._47=null,u._71=null}function o(e){function t(t){(e.allRejections||i(f[t].error,e.whitelist||c))&&(f[t].displayId=s++,e.onUnhandled?(f[t].logged=!0,e.onUnhandled(f[t].displayId,f[t].error)):(f[t].logged=!0,a(f[t].displayId,f[t].error)))}function n(t){f[t].logged&&(e.onHandled?e.onHandled(f[t].displayId,f[t].error):f[t].onUnhandled||(console.warn("Promise Rejection Handled (id: "+f[t].displayId+"):"),console.warn('  This means you can ignore any previous messages of the form "Possible Unhandled Promise Rejection" with id '+f[t].displayId+".")))}e=e||{},l&&r(),l=!0;var o=0,s=0,f={};u._47=function(e){2===e._83&&f[e._56]&&(f[e._56].logged?n(e._56):clearTimeout(f[e._56].timeout),delete f[e._56])},u._71=function(e,n){0===e._75&&(e._56=o++,f[e._56]={displayId:null,error:n,timeout:setTimeout(t.bind(null,e._56),i(n,c)?100:2e3),logged:!1})}}function a(e,t){console.warn("Possible Unhandled Promise Rejection (id: "+e+"):"),((t&&(t.stack||t))+"").split("\n").forEach(function(e){console.warn("  "+e)})}function i(e,t){return t.some(function(t){return e instanceof t})}var u=n(30),c=[ReferenceError,TypeError,RangeError],l=!1;t.disable=r,t.enable=o},function(e,t,n){"use strict";(function(t){function n(e){i.length||(a(),u=!0),i[i.length]=e}function r(){for(;c<i.length;){var e=c;if(c+=1,i[e].call(),c>l){for(var t=0,n=i.length-c;t<n;t++)i[t]=i[t+c];i.length-=c,c=0}}i.length=0,c=0,u=!1}function o(e){return function(){function t(){clearTimeout(n),clearInterval(r),e()}var n=setTimeout(t,0),r=setInterval(t,50)}}e.exports=n;var a,i=[],u=!1,c=0,l=1024,s="undefined"!==typeof t?t:self,f=s.MutationObserver||s.WebKitMutationObserver;a="function"===typeof f?function(e){var t=1,n=new f(e),r=document.createTextNode("");return n.observe(r,{characterData:!0}),function(){t=-t,r.data=t}}(r):o(r),n.requestFlush=a,n.makeRequestCallFromTimer=o}).call(t,n(49))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";function r(e){var t=new o(o._44);return t._83=1,t._18=e,t}var o=n(30);e.exports=o;var a=r(!0),i=r(!1),u=r(null),c=r(void 0),l=r(0),s=r("");o.resolve=function(e){if(e instanceof o)return e;if(null===e)return u;if(void 0===e)return c;if(!0===e)return a;if(!1===e)return i;if(0===e)return l;if(""===e)return s;if("object"===typeof e||"function"===typeof e)try{var t=e.then;if("function"===typeof t)return new o(t.bind(e))}catch(e){return new o(function(t,n){n(e)})}return r(e)},o.all=function(e){var t=Array.prototype.slice.call(e);return new o(function(e,n){function r(i,u){if(u&&("object"===typeof u||"function"===typeof u)){if(u instanceof o&&u.then===o.prototype.then){for(;3===u._83;)u=u._18;return 1===u._83?r(i,u._18):(2===u._83&&n(u._18),void u.then(function(e){r(i,e)},n))}var c=u.then;if("function"===typeof c){return void new o(c.bind(u)).then(function(e){r(i,e)},n)}}t[i]=u,0===--a&&e(t)}if(0===t.length)return e([]);for(var a=t.length,i=0;i<t.length;i++)r(i,t[i])})},o.reject=function(e){return new o(function(t,n){n(e)})},o.race=function(e){return new o(function(t,n){e.forEach(function(e){o.resolve(e).then(t,n)})})},o.prototype.catch=function(e){return this.then(null,e)}},function(e,t){!function(e){"use strict";function t(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!==typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return v.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function a(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function i(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function u(e){var t=new FileReader,n=i(t);return t.readAsArrayBuffer(e),n}function c(e){var t=new FileReader,n=i(t);return t.readAsText(e),n}function l(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}function s(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function f(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"===typeof e)this._bodyText=e;else if(v.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(v.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(v.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(v.arrayBuffer&&v.blob&&g(e))this._bodyArrayBuffer=s(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!v.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!w(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=s(e)}else this._bodyText="";this.headers.get("content-type")||("string"===typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):v.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},v.blob&&(this.blob=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?a(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(u)}),this.text=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return c(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(l(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},v.formData&&(this.formData=function(){return this.text().then(h)}),this.json=function(){return this.text().then(JSON.parse)},this}function p(e){var t=e.toUpperCase();return E.indexOf(t)>-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var v={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(v.arrayBuffer)var b=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&b.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},v.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var E=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var O=[301,302,303,307,308];y.redirect=function(e,t){if(-1===O.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),a=new XMLHttpRequest;a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:m(a.getAllResponseHeaders()||"")};e.url="responseURL"in a?a.responseURL:e.headers.get("X-Request-URL");var t="response"in a?a.response:a.responseText;n(new y(t,e))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials&&(a.withCredentials=!0),"responseType"in a&&v.blob&&(a.responseType="blob"),o.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n.n(r),a=n(54),i=n.n(a),u=n(10),c=n(93),l=n(151),s=(n.n(l),n(152));n.n(s);i.a.render(o.a.createElement(u.a,{basename:"/workflow"},o.a.createElement(c.a,null)),document.getElementById("root"))},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);throw t=Error(n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),t.name="Invariant Violation",t.framesToPop=1,t}function o(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function a(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function i(){}function u(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function c(e,t,n){var r,o={},a=null,i=null;if(null!=t)for(r in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(a=""+t.key),t)S.call(t,r)&&!A.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var c=Array(u),l=0;l<u;l++)c[l]=arguments[l+2];o.children=c}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:O,type:e,key:a,ref:i,props:o,_owner:I.current}}function l(e){return"object"===typeof e&&null!==e&&e.$$typeof===O}function s(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function f(e,t,n,r){if(D.length){var o=D.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function p(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>D.length&&D.push(e)}function d(e,t,n,o){var a=typeof e;"undefined"!==a&&"boolean"!==a||(e=null);var i=!1;if(null===e)i=!0;else switch(a){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case O:case T:case _:case C:i=!0}}if(i)return n(o,e,""===t?"."+h(e,0):t),1;if(i=0,t=""===t?".":t+":",Array.isArray(e))for(var u=0;u<e.length;u++){a=e[u];var c=t+h(a,u);i+=d(a,c,n,o)}else if(null===e||"undefined"===typeof e?c=null:(c=k&&e[k]||e["@@iterator"],c="function"===typeof c?c:null),"function"===typeof c)for(e=c.call(e),u=0;!(a=e.next()).done;)a=a.value,c=t+h(a,u++),i+=d(a,c,n,o);else"object"===a&&(n=""+e,r("31","[object Object]"===n?"object with keys {"+Object.keys(e).join(", ")+"}":n,""));return i}function h(e,t){return"object"===typeof e&&null!==e&&null!=e.key?s(e.key):t.toString(36)}function m(e,t){e.func.call(e.context,t,e.count++)}function y(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?v(e,r,n,w.thatReturnsArgument):null!=e&&(l(e)&&(t=o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(R,"$&/")+"/")+n,e={$$typeof:O,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}),r.push(e))}function v(e,t,n,r,o){var a="";null!=n&&(a=(""+n).replace(R,"$&/")+"/"),t=f(t,a,r,o),null==e||d(e,"",y,t),p(t)}var b=n(22),g=n(31),w=n(18),E="function"===typeof Symbol&&Symbol.for,O=E?Symbol.for("react.element"):60103,T=E?Symbol.for("react.call"):60104,_=E?Symbol.for("react.return"):60105,C=E?Symbol.for("react.portal"):60106,x=E?Symbol.for("react.fragment"):60107,k="function"===typeof Symbol&&Symbol.iterator,N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};o.prototype.isReactComponent={},o.prototype.setState=function(e,t){"object"!==typeof e&&"function"!==typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e,t,"setState")},o.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},i.prototype=o.prototype;var j=a.prototype=new i;j.constructor=a,b(j,o.prototype),j.isPureReactComponent=!0;var P=u.prototype=new i;P.constructor=u,b(P,o.prototype),P.unstable_isAsyncReactComponent=!0,P.render=function(){return this.props.children};var I={current:null},S=Object.prototype.hasOwnProperty,A={key:!0,ref:!0,__self:!0,__source:!0},R=/\/+/g,D=[],L={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return v(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;t=f(null,null,t,n),null==e||d(e,"",m,t),p(t)},count:function(e){return null==e?0:d(e,"",w.thatReturnsNull,null)},toArray:function(e){var t=[];return v(e,t,null,w.thatReturnsArgument),t},only:function(e){return l(e)||r("143"),e}},Component:o,PureComponent:a,unstable_AsyncComponent:u,Fragment:x,createElement:c,cloneElement:function(e,t,n){var r=b({},e.props),o=e.key,a=e.ref,i=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,i=I.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)S.call(t,c)&&!A.hasOwnProperty(c)&&(r[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)r.children=n;else if(1<c){u=Array(c);for(var l=0;l<c;l++)u[l]=arguments[l+2];r.children=u}return{$$typeof:O,type:e.type,key:o,ref:a,props:r,_owner:i}},createFactory:function(e){var t=c.bind(null,e);return t.type=e,t},isValidElement:l,version:"16.2.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:I,assign:b}},M=Object.freeze({default:L}),U=M&&L||M;e.exports=U.default?U.default:U},function(e,t,n){"use strict";function r(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}r(),e.exports=n(55)},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);throw t=Error(n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),t.name="Invariant Violation",t.framesToPop=1,t}function o(e,t){return(e&t)===t}function a(e,t){if(jn.hasOwnProperty(e)||2<e.length&&("o"===e[0]||"O"===e[0])&&("n"===e[1]||"N"===e[1]))return!1;if(null===t)return!0;switch(typeof t){case"boolean":return jn.hasOwnProperty(e)?e=!0:(t=i(e))?e=t.hasBooleanValue||t.hasStringBooleanValue||t.hasOverloadedBooleanValue:(e=e.toLowerCase().slice(0,5),e="data-"===e||"aria-"===e),e;case"undefined":case"number":case"string":case"object":return!0;default:return!1}}function i(e){return In.hasOwnProperty(e)?In[e]:null}function u(e){return e[1].toUpperCase()}function c(e,t,n,r,o,a,i,u,c){qn._hasCaughtError=!1,qn._caughtError=null;var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(e){qn._caughtError=e,qn._hasCaughtError=!0}}function l(){if(qn._hasRethrowError){var e=qn._rethrowError;throw qn._rethrowError=null,qn._hasRethrowError=!1,e}}function s(){if(Wn)for(var e in Kn){var t=Kn[e],n=Wn.indexOf(e);if(-1<n||r("96",e),!Gn[n]){t.extractEvents||r("97",e),Gn[n]=t,n=t.eventTypes;for(var o in n){var a=void 0,i=n[o],u=t,c=o;Yn.hasOwnProperty(c)&&r("99",c),Yn[c]=i;var l=i.phasedRegistrationNames;if(l){for(a in l)l.hasOwnProperty(a)&&f(l[a],u,c);a=!0}else i.registrationName?(f(i.registrationName,u,c),a=!0):a=!1;a||r("98",o,e)}}}}function f(e,t,n){$n[e]&&r("100",e),$n[e]=t,Qn[e]=t.eventTypes[n].dependencies}function p(e){Wn&&r("101"),Wn=Array.prototype.slice.call(e),s()}function d(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var o=e[t];Kn.hasOwnProperty(t)&&Kn[t]===o||(Kn[t]&&r("102",t),Kn[t]=o,n=!0)}n&&s()}function h(e,t,n,r){t=e.type||"unknown-event",e.currentTarget=er(r),qn.invokeGuardedCallbackAndCatchFirstError(t,n,void 0,e),e.currentTarget=null}function m(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function y(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}function v(e,t){if(e){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)h(e,t,n[o],r[o]);else n&&h(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function b(e){return v(e,!0)}function g(e){return v(e,!1)}function w(e,t){var n=e.stateNode;if(!n)return null;var o=Xn(n);if(!o)return null;n=o[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(o=!o.disabled)||(e=e.type,o=!("button"===e||"input"===e||"select"===e||"textarea"===e)),e=!o;break e;default:e=!1}return e?null:(n&&"function"!==typeof n&&r("231",t,typeof n),n)}function E(e,t,n,r){for(var o,a=0;a<Gn.length;a++){var i=Gn[a];i&&(i=i.extractEvents(e,t,n,r))&&(o=m(o,i))}return o}function O(e){e&&(tr=m(tr,e))}function T(e){var t=tr;tr=null,t&&(e?y(t,b):y(t,g),tr&&r("95"),qn.rethrowCaughtError())}function _(e){if(e[ar])return e[ar];for(var t=[];!e[ar];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}var n=void 0,r=e[ar];if(5===r.tag||6===r.tag)return r;for(;e&&(r=e[ar]);e=t.pop())n=r;return n}function C(e){if(5===e.tag||6===e.tag)return e.stateNode;r("33")}function x(e){return e[ir]||null}function k(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function N(e,t,n){for(var r=[];e;)r.push(e),e=k(e);for(e=r.length;0<e--;)t(r[e],"captured",n);for(e=0;e<r.length;e++)t(r[e],"bubbled",n)}function j(e,t,n){(t=w(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=m(n._dispatchListeners,t),n._dispatchInstances=m(n._dispatchInstances,e))}function P(e){e&&e.dispatchConfig.phasedRegistrationNames&&N(e._targetInst,j,e)}function I(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst;t=t?k(t):null,N(t,j,e)}}function S(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=w(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=m(n._dispatchListeners,t),n._dispatchInstances=m(n._dispatchInstances,e))}function A(e){e&&e.dispatchConfig.registrationName&&S(e._targetInst,null,e)}function R(e){y(e,P)}function D(e,t,n,r){if(n&&r)e:{for(var o=n,a=r,i=0,u=o;u;u=k(u))i++;u=0;for(var c=a;c;c=k(c))u++;for(;0<i-u;)o=k(o),i--;for(;0<u-i;)a=k(a),u--;for(;i--;){if(o===a||o===a.alternate)break e;o=k(o),a=k(a)}o=null}else o=null;for(a=o,o=[];n&&n!==a&&(null===(i=n.alternate)||i!==a);)o.push(n),n=k(n);for(n=[];r&&r!==a&&(null===(i=r.alternate)||i!==a);)n.push(r),r=k(r);for(r=0;r<o.length;r++)S(o[r],"bubbled",e);for(e=n.length;0<e--;)S(n[e],"captured",t)}function L(){return!lr&&wn.canUseDOM&&(lr="textContent"in document.documentElement?"textContent":"innerText"),lr}function M(){if(sr._fallbackText)return sr._fallbackText;var e,t,n=sr._startText,r=n.length,o=U(),a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return sr._fallbackText=o.slice(e,1<t?1-t:void 0),sr._fallbackText}function U(){return"value"in sr._root?sr._root.value:sr._root[L()]}function H(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface;for(var o in e)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?On.thatReturnsTrue:On.thatReturnsFalse,this.isPropagationStopped=On.thatReturnsFalse,this}function F(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function B(e){e instanceof this||r("223"),e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function z(e){e.eventPool=[],e.getPooled=F,e.release=B}function V(e,t,n,r){return H.call(this,e,t,n,r)}function q(e,t,n,r){return H.call(this,e,t,n,r)}function W(e,t){switch(e){case"topKeyUp":return-1!==dr.indexOf(t.keyCode);case"topKeyDown":return 229!==t.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function K(e){return e=e.detail,"object"===typeof e&&"data"in e?e.data:null}function G(e,t){switch(e){case"topCompositionEnd":return K(t);case"topKeyPress":return 32!==t.which?null:(Tr=!0,Er);case"topTextInput":return e=t.data,e===Er&&Tr?null:e;default:return null}}function Y(e,t){if(_r)return"topCompositionEnd"===e||!hr&&W(e,t)?(e=M(),sr._root=null,sr._startText=null,sr._fallbackText=null,_r=!1,e):null;switch(e){case"topPaste":return null;case"topKeyPress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"topCompositionEnd":return wr?null:t.data;default:return null}}function $(e){if(e=Zn(e)){xr&&"function"===typeof xr.restoreControlledState||r("194");var t=Xn(e.stateNode);xr.restoreControlledState(e.stateNode,e.type,t)}}function Q(e){kr?Nr?Nr.push(e):Nr=[e]:kr=e}function J(){if(kr){var e=kr,t=Nr;if(Nr=kr=null,$(e),t)for(e=0;e<t.length;e++)$(t[e])}}function X(e,t){return e(t)}function Z(e,t){if(Ir)return X(e,t);Ir=!0;try{return X(e,t)}finally{Ir=!1,J()}}function ee(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Sr[e.type]:"textarea"===t}function te(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function ne(e,t){if(!wn.canUseDOM||t&&!("addEventListener"in document))return!1;t="on"+e;var n=t in document;return n||(n=document.createElement("div"),n.setAttribute(t,"return;"),n="function"===typeof n[t]),!n&&br&&"wheel"===e&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}function re(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function oe(e){var t=re(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"function"===typeof n.get&&"function"===typeof n.set)return Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:!0,get:function(){return n.get.call(this)},set:function(e){r=""+e,n.set.call(this,e)}}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}function ae(e){e._valueTracker||(e._valueTracker=oe(e))}function ie(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=re(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ue(e,t,n){return e=H.getPooled(Ar.change,e,t,n),e.type="change",Q(n),R(e),e}function ce(e){O(e),T(!1)}function le(e){if(ie(C(e)))return e}function se(e,t){if("topChange"===e)return t}function fe(){Rr&&(Rr.detachEvent("onpropertychange",pe),Dr=Rr=null)}function pe(e){"value"===e.propertyName&&le(Dr)&&(e=ue(Dr,e,te(e)),Z(ce,e))}function de(e,t,n){"topFocus"===e?(fe(),Rr=t,Dr=n,Rr.attachEvent("onpropertychange",pe)):"topBlur"===e&&fe()}function he(e){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return le(Dr)}function me(e,t){if("topClick"===e)return le(t)}function ye(e,t){if("topInput"===e||"topChange"===e)return le(t)}function ve(e,t,n,r){return H.call(this,e,t,n,r)}function be(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Ur[e])&&!!t[e]}function ge(){return be}function we(e,t,n,r){return H.call(this,e,t,n,r)}function Ee(e){return e=e.type,"string"===typeof e?e:"function"===typeof e?e.displayName||e.name:null}function Oe(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!==(2&t.effectTag))return 1;for(;t.return;)if(t=t.return,0!==(2&t.effectTag))return 1}return 3===t.tag?2:3}function Te(e){return!!(e=e._reactInternalFiber)&&2===Oe(e)}function _e(e){2!==Oe(e)&&r("188")}function Ce(e){var t=e.alternate;if(!t)return t=Oe(e),3===t&&r("188"),1===t?null:e;for(var n=e,o=t;;){var a=n.return,i=a?a.alternate:null;if(!a||!i)break;if(a.child===i.child){for(var u=a.child;u;){if(u===n)return _e(a),e;if(u===o)return _e(a),t;u=u.sibling}r("188")}if(n.return!==o.return)n=a,o=i;else{u=!1;for(var c=a.child;c;){if(c===n){u=!0,n=a,o=i;break}if(c===o){u=!0,o=a,n=i;break}c=c.sibling}if(!u){for(c=i.child;c;){if(c===n){u=!0,n=i,o=a;break}if(c===o){u=!0,o=i,n=a;break}c=c.sibling}u||r("189")}}n.alternate!==o&&r("190")}return 3!==n.tag&&r("188"),n.stateNode.current===n?e:t}function xe(e){if(!(e=Ce(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function ke(e){if(!(e=Ce(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Ne(e){var t=e.targetInst;do{if(!t){e.ancestors.push(t);break}var n;for(n=t;n.return;)n=n.return;if(!(n=3!==n.tag?null:n.stateNode.containerInfo))break;e.ancestors.push(t),t=_(n)}while(t);for(n=0;n<e.ancestors.length;n++)t=e.ancestors[n],qr(e.topLevelType,t,e.nativeEvent,te(e.nativeEvent))}function je(e){Vr=!!e}function Pe(e,t,n){return n?Tn.listen(n,t,Se.bind(null,e)):null}function Ie(e,t,n){return n?Tn.capture(n,t,Se.bind(null,e)):null}function Se(e,t){if(Vr){var n=te(t);if(n=_(n),null===n||"number"!==typeof n.tag||2===Oe(n)||(n=null),zr.length){var r=zr.pop();r.topLevelType=e,r.nativeEvent=t,r.targetInst=n,e=r}else e={topLevelType:e,nativeEvent:t,targetInst:n,ancestors:[]};try{Z(Ne,e)}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>zr.length&&zr.push(e)}}}function Ae(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function Re(e){if(Gr[e])return Gr[e];if(!Kr[e])return e;var t,n=Kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Yr)return Gr[e]=n[t];return""}function De(e){return Object.prototype.hasOwnProperty.call(e,Xr)||(e[Xr]=Jr++,Qr[e[Xr]]={}),Qr[e[Xr]]}function Le(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Me(e,t){var n=Le(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Le(n)}}function Ue(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)}function He(e,t){if(oo||null==to||to!==_n())return null;var n=to;return"selectionStart"in n&&Ue(n)?n={start:n.selectionStart,end:n.selectionEnd}:window.getSelection?(n=window.getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}):n=void 0,ro&&Cn(ro,n)?null:(ro=n,e=H.getPooled(eo.select,no,e,t),e.type="select",e.target=to,R(e),e)}function Fe(e,t,n,r){return H.call(this,e,t,n,r)}function Be(e,t,n,r){return H.call(this,e,t,n,r)}function ze(e,t,n,r){return H.call(this,e,t,n,r)}function Ve(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,32<=e||13===e?e:0}function qe(e,t,n,r){return H.call(this,e,t,n,r)}function We(e,t,n,r){return H.call(this,e,t,n,r)}function Ke(e,t,n,r){return H.call(this,e,t,n,r)}function Ge(e,t,n,r){return H.call(this,e,t,n,r)}function Ye(e,t,n,r){return H.call(this,e,t,n,r)}function $e(e){0>po||(e.current=fo[po],fo[po]=null,po--)}function Qe(e,t){po++,fo[po]=e.current,e.current=t}function Je(e){return Ze(e)?yo:ho.current}function Xe(e,t){var n=e.type.contextTypes;if(!n)return Nn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ze(e){return 2===e.tag&&null!=e.type.childContextTypes}function et(e){Ze(e)&&($e(mo,e),$e(ho,e))}function tt(e,t,n){null!=ho.cursor&&r("168"),Qe(ho,t,e),Qe(mo,n,e)}function nt(e,t){var n=e.stateNode,o=e.type.childContextTypes;if("function"!==typeof n.getChildContext)return t;n=n.getChildContext();for(var a in n)a in o||r("108",Ee(e)||"Unknown",a);return En({},t,n)}function rt(e){if(!Ze(e))return!1;var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Nn,yo=ho.current,Qe(ho,t,e),Qe(mo,mo.current,e),!0}function ot(e,t){var n=e.stateNode;if(n||r("169"),t){var o=nt(e,yo);n.__reactInternalMemoizedMergedChildContext=o,$e(mo,e),$e(ho,e),Qe(ho,o,e)}else $e(mo,e);Qe(mo,t,e)}function at(e,t,n){this.tag=e,this.key=t,this.stateNode=this.type=null,this.sibling=this.child=this.return=null,this.index=0,this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null,this.internalContextTag=n,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function it(e,t,n){var r=e.alternate;return null===r?(r=new at(e.tag,e.key,e.internalContextTag),r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.effectTag=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.expirationTime=n,r.pendingProps=t,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function ut(e,t,n){var o=void 0,a=e.type,i=e.key;return"function"===typeof a?(o=a.prototype&&a.prototype.isReactComponent?new at(2,i,t):new at(0,i,t),o.type=a,o.pendingProps=e.props):"string"===typeof a?(o=new at(5,i,t),o.type=a,o.pendingProps=e.props):"object"===typeof a&&null!==a&&"number"===typeof a.tag?(o=a,o.pendingProps=e.props):r("130",null==a?a:typeof a,""),o.expirationTime=n,o}function ct(e,t,n,r){return t=new at(10,r,t),t.pendingProps=e,t.expirationTime=n,t}function lt(e,t,n){return t=new at(6,null,t),t.pendingProps=e,t.expirationTime=n,t}function st(e,t,n){return t=new at(7,e.key,t),t.type=e.handler,t.pendingProps=e,t.expirationTime=n,t}function ft(e,t,n){return e=new at(9,null,t),e.expirationTime=n,e}function pt(e,t,n){return t=new at(4,e.key,t),t.pendingProps=e.children||[],t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function dt(e){return function(t){try{return e(t)}catch(e){}}}function ht(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);vo=dt(function(e){return t.onCommitFiberRoot(n,e)}),bo=dt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function mt(e){"function"===typeof vo&&vo(e)}function yt(e){"function"===typeof bo&&bo(e)}function vt(e){return{baseState:e,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function bt(e,t){null===e.last?e.first=e.last=t:(e.last.next=t,e.last=t),(0===e.expirationTime||e.expirationTime>t.expirationTime)&&(e.expirationTime=t.expirationTime)}function gt(e,t){var n=e.alternate,r=e.updateQueue;null===r&&(r=e.updateQueue=vt(null)),null!==n?null===(e=n.updateQueue)&&(e=n.updateQueue=vt(null)):e=null,e=e!==r?e:null,null===e?bt(r,t):null===r.last||null===e.last?(bt(r,t),bt(e,t)):(bt(r,t),e.last=t)}function wt(e,t,n,r){return e=e.partialState,"function"===typeof e?e.call(t,n,r):e}function Et(e,t,n,r,o,a){null!==e&&e.updateQueue===n&&(n=t.updateQueue={baseState:n.baseState,expirationTime:n.expirationTime,first:n.first,last:n.last,isInitialized:n.isInitialized,callbackList:null,hasForceUpdate:!1}),n.expirationTime=0,n.isInitialized?e=n.baseState:(e=n.baseState=t.memoizedState,n.isInitialized=!0);for(var i=!0,u=n.first,c=!1;null!==u;){var l=u.expirationTime;if(l>a){var s=n.expirationTime;(0===s||s>l)&&(n.expirationTime=l),c||(c=!0,n.baseState=e)}else c||(n.first=u.next,null===n.first&&(n.last=null)),u.isReplace?(e=wt(u,r,e,o),i=!0):(l=wt(u,r,e,o))&&(e=i?En({},e,l):En(e,l),i=!1),u.isForced&&(n.hasForceUpdate=!0),null!==u.callback&&(l=n.callbackList,null===l&&(l=n.callbackList=[]),l.push(u));u=u.next}return null!==n.callbackList?t.effectTag|=32:null!==n.first||n.hasForceUpdate||(t.updateQueue=null),c||(n.baseState=e),e}function Ot(e,t){var n=e.callbackList;if(null!==n)for(e.callbackList=null,e=0;e<n.length;e++){var o=n[e],a=o.callback;o.callback=null,"function"!==typeof a&&r("191",a),a.call(t)}}function Tt(e,t,n,o){function a(e,t){t.updater=i,e.stateNode=t,t._reactInternalFiber=e}var i={isMounted:Te,enqueueSetState:function(n,r,o){n=n._reactInternalFiber,o=void 0===o?null:o;var a=t(n);gt(n,{expirationTime:a,partialState:r,callback:o,isReplace:!1,isForced:!1,nextCallback:null,next:null}),e(n,a)},enqueueReplaceState:function(n,r,o){n=n._reactInternalFiber,o=void 0===o?null:o;var a=t(n);gt(n,{expirationTime:a,partialState:r,callback:o,isReplace:!0,isForced:!1,nextCallback:null,next:null}),e(n,a)},enqueueForceUpdate:function(n,r){n=n._reactInternalFiber,r=void 0===r?null:r;var o=t(n);gt(n,{expirationTime:o,partialState:null,callback:r,isReplace:!1,isForced:!0,nextCallback:null,next:null}),e(n,o)}};return{adoptClassInstance:a,constructClassInstance:function(e,t){var n=e.type,r=Je(e),o=2===e.tag&&null!=e.type.contextTypes,i=o?Xe(e,r):Nn;return t=new n(t,i),a(e,t),o&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=i),t},mountClassInstance:function(e,t){var n=e.alternate,o=e.stateNode,a=o.state||null,u=e.pendingProps;u||r("158");var c=Je(e);o.props=u,o.state=e.memoizedState=a,o.refs=Nn,o.context=Xe(e,c),null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent&&(e.internalContextTag|=1),"function"===typeof o.componentWillMount&&(a=o.state,o.componentWillMount(),a!==o.state&&i.enqueueReplaceState(o,o.state,null),null!==(a=e.updateQueue)&&(o.state=Et(n,e,a,o,u,t))),"function"===typeof o.componentDidMount&&(e.effectTag|=4)},updateClassInstance:function(e,t,a){var u=t.stateNode;u.props=t.memoizedProps,u.state=t.memoizedState;var c=t.memoizedProps,l=t.pendingProps;l||null==(l=c)&&r("159");var s=u.context,f=Je(t);if(f=Xe(t,f),"function"!==typeof u.componentWillReceiveProps||c===l&&s===f||(s=u.state,u.componentWillReceiveProps(l,f),u.state!==s&&i.enqueueReplaceState(u,u.state,null)),s=t.memoizedState,a=null!==t.updateQueue?Et(e,t,t.updateQueue,u,l,a):s,!(c!==l||s!==a||mo.current||null!==t.updateQueue&&t.updateQueue.hasForceUpdate))return"function"!==typeof u.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),!1;var p=l;if(null===c||null!==t.updateQueue&&t.updateQueue.hasForceUpdate)p=!0;else{var d=t.stateNode,h=t.type;p="function"===typeof d.shouldComponentUpdate?d.shouldComponentUpdate(p,a,f):!h.prototype||!h.prototype.isPureReactComponent||(!Cn(c,p)||!Cn(s,a))}return p?("function"===typeof u.componentWillUpdate&&u.componentWillUpdate(l,a,f),"function"===typeof u.componentDidUpdate&&(t.effectTag|=4)):("function"!==typeof u.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),n(t,l),o(t,a)),u.props=l,u.state=a,u.context=f,p}}}function _t(e){return null===e||"undefined"===typeof e?null:(e=Co&&e[Co]||e["@@iterator"],"function"===typeof e?e:null)}function Ct(e,t){var n=t.ref;if(null!==n&&"function"!==typeof n){if(t._owner){t=t._owner;var o=void 0;t&&(2!==t.tag&&r("110"),o=t.stateNode),o||r("147",n);var a=""+n;return null!==e&&null!==e.ref&&e.ref._stringRef===a?e.ref:(e=function(e){var t=o.refs===Nn?o.refs={}:o.refs;null===e?delete t[a]:t[a]=e},e._stringRef=a,e)}"string"!==typeof n&&r("148"),t._owner||r("149",n)}return n}function xt(e,t){"textarea"!==e.type&&r("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function kt(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function o(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return e=it(e,t,n),e.index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index,r<n?(t.effectTag=2,n):r):(t.effectTag=2,n):n}function u(t){return e&&null===t.alternate&&(t.effectTag=2),t}function c(e,t,n,r){return null===t||6!==t.tag?(t=lt(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function l(e,t,n,r){return null!==t&&t.type===n.type?(r=a(t,n.props,r),r.ref=Ct(t,n),r.return=e,r):(r=ut(n,e.internalContextTag,r),r.ref=Ct(t,n),r.return=e,r)}function s(e,t,n,r){return null===t||7!==t.tag?(t=st(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function f(e,t,n,r){return null===t||9!==t.tag?(t=ft(n,e.internalContextTag,r),t.type=n.value,t.return=e,t):(t=a(t,null,r),t.type=n.value,t.return=e,t)}function p(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=pt(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n.children||[],r),t.return=e,t)}function d(e,t,n,r,o){return null===t||10!==t.tag?(t=ct(n,e.internalContextTag,r,o),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function h(e,t,n){if("string"===typeof t||"number"===typeof t)return t=lt(""+t,e.internalContextTag,n),t.return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case wo:return t.type===_o?(t=ct(t.props.children,e.internalContextTag,n,t.key),t.return=e,t):(n=ut(t,e.internalContextTag,n),n.ref=Ct(null,t),n.return=e,n);case Eo:return t=st(t,e.internalContextTag,n),t.return=e,t;case Oo:return n=ft(t,e.internalContextTag,n),n.type=t.value,n.return=e,n;case To:return t=pt(t,e.internalContextTag,n),t.return=e,t}if(xo(t)||_t(t))return t=ct(t,e.internalContextTag,n,null),t.return=e,t;xt(e,t)}return null}function m(e,t,n,r){var o=null!==t?t.key:null;if("string"===typeof n||"number"===typeof n)return null!==o?null:c(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case wo:return n.key===o?n.type===_o?d(e,t,n.props.children,r,o):l(e,t,n,r):null;case Eo:return n.key===o?s(e,t,n,r):null;case Oo:return null===o?f(e,t,n,r):null;case To:return n.key===o?p(e,t,n,r):null}if(xo(n)||_t(n))return null!==o?null:d(e,t,n,r,null);xt(e,n)}return null}function y(e,t,n,r,o){if("string"===typeof r||"number"===typeof r)return e=e.get(n)||null,c(t,e,""+r,o);if("object"===typeof r&&null!==r){switch(r.$$typeof){case wo:return e=e.get(null===r.key?n:r.key)||null,r.type===_o?d(t,e,r.props.children,o,r.key):l(t,e,r,o);case Eo:return e=e.get(null===r.key?n:r.key)||null,s(t,e,r,o);case Oo:return e=e.get(n)||null,f(t,e,r,o);case To:return e=e.get(null===r.key?n:r.key)||null,p(t,e,r,o)}if(xo(r)||_t(r))return e=e.get(n)||null,d(t,e,r,o,null);xt(t,r)}return null}function v(r,a,u,c){for(var l=null,s=null,f=a,p=a=0,d=null;null!==f&&p<u.length;p++){f.index>p?(d=f,f=null):d=f.sibling;var v=m(r,f,u[p],c);if(null===v){null===f&&(f=d);break}e&&f&&null===v.alternate&&t(r,f),a=i(v,a,p),null===s?l=v:s.sibling=v,s=v,f=d}if(p===u.length)return n(r,f),l;if(null===f){for(;p<u.length;p++)(f=h(r,u[p],c))&&(a=i(f,a,p),null===s?l=f:s.sibling=f,s=f);return l}for(f=o(r,f);p<u.length;p++)(d=y(f,r,p,u[p],c))&&(e&&null!==d.alternate&&f.delete(null===d.key?p:d.key),a=i(d,a,p),null===s?l=d:s.sibling=d,s=d);return e&&f.forEach(function(e){return t(r,e)}),l}function b(a,u,c,l){var s=_t(c);"function"!==typeof s&&r("150"),null==(c=s.call(c))&&r("151");for(var f=s=null,p=u,d=u=0,v=null,b=c.next();null!==p&&!b.done;d++,b=c.next()){p.index>d?(v=p,p=null):v=p.sibling;var g=m(a,p,b.value,l);if(null===g){p||(p=v);break}e&&p&&null===g.alternate&&t(a,p),u=i(g,u,d),null===f?s=g:f.sibling=g,f=g,p=v}if(b.done)return n(a,p),s;if(null===p){for(;!b.done;d++,b=c.next())null!==(b=h(a,b.value,l))&&(u=i(b,u,d),null===f?s=b:f.sibling=b,f=b);return s}for(p=o(a,p);!b.done;d++,b=c.next())null!==(b=y(p,a,d,b.value,l))&&(e&&null!==b.alternate&&p.delete(null===b.key?d:b.key),u=i(b,u,d),null===f?s=b:f.sibling=b,f=b);return e&&p.forEach(function(e){return t(a,e)}),s}return function(e,o,i,c){"object"===typeof i&&null!==i&&i.type===_o&&null===i.key&&(i=i.props.children);var l="object"===typeof i&&null!==i;if(l)switch(i.$$typeof){case wo:e:{var s=i.key;for(l=o;null!==l;){if(l.key===s){if(10===l.tag?i.type===_o:l.type===i.type){n(e,l.sibling),o=a(l,i.type===_o?i.props.children:i.props,c),o.ref=Ct(l,i),o.return=e,e=o;break e}n(e,l);break}t(e,l),l=l.sibling}i.type===_o?(o=ct(i.props.children,e.internalContextTag,c,i.key),o.return=e,e=o):(c=ut(i,e.internalContextTag,c),c.ref=Ct(o,i),c.return=e,e=c)}return u(e);case Eo:e:{for(l=i.key;null!==o;){if(o.key===l){if(7===o.tag){n(e,o.sibling),o=a(o,i,c),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=st(i,e.internalContextTag,c),o.return=e,e=o}return u(e);case Oo:e:{if(null!==o){if(9===o.tag){n(e,o.sibling),o=a(o,null,c),o.type=i.value,o.return=e,e=o;break e}n(e,o)}o=ft(i,e.internalContextTag,c),o.type=i.value,o.return=e,e=o}return u(e);case To:e:{for(l=i.key;null!==o;){if(o.key===l){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(e,o.sibling),o=a(o,i.children||[],c),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=pt(i,e.internalContextTag,c),o.return=e,e=o}return u(e)}if("string"===typeof i||"number"===typeof i)return i=""+i,null!==o&&6===o.tag?(n(e,o.sibling),o=a(o,i,c)):(n(e,o),o=lt(i,e.internalContextTag,c)),o.return=e,e=o,u(e);if(xo(i))return v(e,o,i,c);if(_t(i))return b(e,o,i,c);if(l&&xt(e,i),"undefined"===typeof i)switch(e.tag){case 2:case 1:c=e.type,r("152",c.displayName||c.name||"Component")}return n(e,o)}}function Nt(e,t,n,o,a){function i(e,t,n){var r=t.expirationTime;t.child=null===e?No(t,null,n,r):ko(t,e.child,n,r)}function u(e,t){var n=t.ref;null===n||e&&e.ref===n||(t.effectTag|=128)}function c(e,t,n,r){if(u(e,t),!n)return r&&ot(t,!1),s(e,t);n=t.stateNode,Br.current=t;var o=n.render();return t.effectTag|=1,i(e,t,o),t.memoizedState=n.state,t.memoizedProps=n.props,r&&ot(t,!0),t.child}function l(e){var t=e.stateNode;t.pendingContext?tt(e,t.pendingContext,t.pendingContext!==t.context):t.context&&tt(e,t.context,!1),y(e,t.containerInfo)}function s(e,t){if(null!==e&&t.child!==e.child&&r("153"),null!==t.child){e=t.child;var n=it(e,e.pendingProps,e.expirationTime);for(t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,n=n.sibling=it(e,e.pendingProps,e.expirationTime),n.return=t;n.sibling=null}return t.child}function f(e,t){switch(t.tag){case 3:l(t);break;case 2:rt(t);break;case 4:y(t,t.stateNode.containerInfo)}return null}var p=e.shouldSetTextContent,d=e.useSyncScheduling,h=e.shouldDeprioritizeSubtree,m=t.pushHostContext,y=t.pushHostContainer,v=n.enterHydrationState,b=n.resetHydrationState,g=n.tryToClaimNextHydratableInstance;e=Tt(o,a,function(e,t){e.memoizedProps=t},function(e,t){e.memoizedState=t});var w=e.adoptClassInstance,E=e.constructClassInstance,O=e.mountClassInstance,T=e.updateClassInstance;return{beginWork:function(e,t,n){if(0===t.expirationTime||t.expirationTime>n)return f(e,t);switch(t.tag){case 0:null!==e&&r("155");var o=t.type,a=t.pendingProps,_=Je(t);return _=Xe(t,_),o=o(a,_),t.effectTag|=1,"object"===typeof o&&null!==o&&"function"===typeof o.render?(t.tag=2,a=rt(t),w(t,o),O(t,n),t=c(e,t,!0,a)):(t.tag=1,i(e,t,o),t.memoizedProps=a,t=t.child),t;case 1:e:{if(a=t.type,n=t.pendingProps,o=t.memoizedProps,mo.current)null===n&&(n=o);else if(null===n||o===n){t=s(e,t);break e}o=Je(t),o=Xe(t,o),a=a(n,o),t.effectTag|=1,i(e,t,a),t.memoizedProps=n,t=t.child}return t;case 2:return a=rt(t),o=void 0,null===e?t.stateNode?r("153"):(E(t,t.pendingProps),O(t,n),o=!0):o=T(e,t,n),c(e,t,o,a);case 3:return l(t),a=t.updateQueue,null!==a?(o=t.memoizedState,a=Et(e,t,a,null,null,n),o===a?(b(),t=s(e,t)):(o=a.element,_=t.stateNode,(null===e||null===e.child)&&_.hydrate&&v(t)?(t.effectTag|=2,t.child=No(t,null,o,n)):(b(),i(e,t,o)),t.memoizedState=a,t=t.child)):(b(),t=s(e,t)),t;case 5:m(t),null===e&&g(t),a=t.type;var C=t.memoizedProps;return o=t.pendingProps,null===o&&null===(o=C)&&r("154"),_=null!==e?e.memoizedProps:null,mo.current||null!==o&&C!==o?(C=o.children,p(a,o)?C=null:_&&p(a,_)&&(t.effectTag|=16),u(e,t),2147483647!==n&&!d&&h(a,o)?(t.expirationTime=2147483647,t=null):(i(e,t,C),t.memoizedProps=o,t=t.child)):t=s(e,t),t;case 6:return null===e&&g(t),e=t.pendingProps,null===e&&(e=t.memoizedProps),t.memoizedProps=e,null;case 8:t.tag=7;case 7:return a=t.pendingProps,mo.current?null===a&&null===(a=e&&e.memoizedProps)&&r("154"):null!==a&&t.memoizedProps!==a||(a=t.memoizedProps),o=a.children,t.stateNode=null===e?No(t,t.stateNode,o,n):ko(t,t.stateNode,o,n),t.memoizedProps=a,t.stateNode;case 9:return null;case 4:e:{if(y(t,t.stateNode.containerInfo),a=t.pendingProps,mo.current)null===a&&null==(a=e&&e.memoizedProps)&&r("154");else if(null===a||t.memoizedProps===a){t=s(e,t);break e}null===e?t.child=ko(t,null,a,n):i(e,t,a),t.memoizedProps=a,t=t.child}return t;case 10:e:{if(n=t.pendingProps,mo.current)null===n&&(n=t.memoizedProps);else if(null===n||t.memoizedProps===n){t=s(e,t);break e}i(e,t,n),t.memoizedProps=n,t=t.child}return t;default:r("156")}},beginFailedWork:function(e,t,n){switch(t.tag){case 2:rt(t);break;case 3:l(t);break;default:r("157")}return t.effectTag|=64,null===e?t.child=null:t.child!==e.child&&(t.child=e.child),0===t.expirationTime||t.expirationTime>n?f(e,t):(t.firstEffect=null,t.lastEffect=null,t.child=null===e?No(t,null,null,n):ko(t,e.child,null,n),2===t.tag&&(e=t.stateNode,t.memoizedProps=e.props,t.memoizedState=e.state),t.child)}}}function jt(e,t,n){function o(e){e.effectTag|=4}var a=e.createInstance,i=e.createTextInstance,u=e.appendInitialChild,c=e.finalizeInitialChildren,l=e.prepareUpdate,s=e.persistence,f=t.getRootHostContainer,p=t.popHostContext,d=t.getHostContext,h=t.popHostContainer,m=n.prepareToHydrateHostInstance,y=n.prepareToHydrateHostTextInstance,v=n.popHydrationState,b=void 0,g=void 0,w=void 0;return e.mutation?(b=function(){},g=function(e,t,n){(t.updateQueue=n)&&o(t)},w=function(e,t,n,r){n!==r&&o(t)}):r(s?"235":"236"),{completeWork:function(e,t,n){var s=t.pendingProps;switch(null===s?s=t.memoizedProps:2147483647===t.expirationTime&&2147483647!==n||(t.pendingProps=null),t.tag){case 1:return null;case 2:return et(t),null;case 3:return h(t),$e(mo,t),$e(ho,t),s=t.stateNode,s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),null!==e&&null!==e.child||(v(t),t.effectTag&=-3),b(t),null;case 5:p(t),n=f();var E=t.type;if(null!==e&&null!=t.stateNode){var O=e.memoizedProps,T=t.stateNode,_=d();T=l(T,E,O,s,n,_),g(e,t,T,E,O,s,n),e.ref!==t.ref&&(t.effectTag|=128)}else{if(!s)return null===t.stateNode&&r("166"),null;if(e=d(),v(t))m(t,n,e)&&o(t);else{e=a(E,s,n,e,t);e:for(O=t.child;null!==O;){if(5===O.tag||6===O.tag)u(e,O.stateNode);else if(4!==O.tag&&null!==O.child){O.child.return=O,O=O.child;continue}if(O===t)break;for(;null===O.sibling;){if(null===O.return||O.return===t)break e;O=O.return}O.sibling.return=O.return,O=O.sibling}c(e,E,s,n)&&o(t),t.stateNode=e}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)w(e,t,e.memoizedProps,s);else{if("string"!==typeof s)return null===t.stateNode&&r("166"),null;e=f(),n=d(),v(t)?y(t)&&o(t):t.stateNode=i(s,e,n,t)}return null;case 7:(s=t.memoizedProps)||r("165"),t.tag=8,E=[];e:for((O=t.stateNode)&&(O.return=t);null!==O;){if(5===O.tag||6===O.tag||4===O.tag)r("247");else if(9===O.tag)E.push(O.type);else if(null!==O.child){O.child.return=O,O=O.child;continue}for(;null===O.sibling;){if(null===O.return||O.return===t)break e;O=O.return}O.sibling.return=O.return,O=O.sibling}return O=s.handler,s=O(s.props,E),t.child=ko(t,null!==e?e.child:null,s,n),t.child;case 8:return t.tag=7,null;case 9:case 10:return null;case 4:return h(t),b(t),null;case 0:r("167");default:r("156")}}}}function Pt(e,t){function n(e){var n=e.ref;if(null!==n)try{n(null)}catch(n){t(e,n)}}function o(e){switch("function"===typeof yt&&yt(e),e.tag){case 2:n(e);var r=e.stateNode;if("function"===typeof r.componentWillUnmount)try{r.props=e.memoizedProps,r.state=e.memoizedState,r.componentWillUnmount()}catch(n){t(e,n)}break;case 5:n(e);break;case 7:a(e.stateNode);break;case 4:l&&u(e)}}function a(e){for(var t=e;;)if(o(t),null===t.child||l&&4===t.tag){if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function i(e){return 5===e.tag||3===e.tag||4===e.tag}function u(e){for(var t=e,n=!1,i=void 0,u=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&r("160"),n.tag){case 5:i=n.stateNode,u=!1;break e;case 3:case 4:i=n.stateNode.containerInfo,u=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag)a(t),u?g(i,t.stateNode):b(i,t.stateNode);else if(4===t.tag?i=t.stateNode.containerInfo:o(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,4===t.tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}var c=e.getPublicInstance,l=e.mutation;e=e.persistence,l||r(e?"235":"236");var s=l.commitMount,f=l.commitUpdate,p=l.resetTextContent,d=l.commitTextUpdate,h=l.appendChild,m=l.appendChildToContainer,y=l.insertBefore,v=l.insertInContainerBefore,b=l.removeChild,g=l.removeChildFromContainer;return{commitResetTextContent:function(e){p(e.stateNode)},commitPlacement:function(e){e:{for(var t=e.return;null!==t;){if(i(t)){var n=t;break e}t=t.return}r("160"),n=void 0}var o=t=void 0;switch(n.tag){case 5:t=n.stateNode,o=!1;break;case 3:case 4:t=n.stateNode.containerInfo,o=!0;break;default:r("161")}16&n.effectTag&&(p(t),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||i(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){if(5===a.tag||6===a.tag)n?o?v(t,a.stateNode,n):y(t,a.stateNode,n):o?m(t,a.stateNode):h(t,a.stateNode);else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}},commitDeletion:function(e){u(e),e.return=null,e.child=null,e.alternate&&(e.alternate.child=null,e.alternate.return=null)},commitWork:function(e,t){switch(t.tag){case 2:break;case 5:var n=t.stateNode;if(null!=n){var o=t.memoizedProps;e=null!==e?e.memoizedProps:o;var a=t.type,i=t.updateQueue;t.updateQueue=null,null!==i&&f(n,i,a,e,o,t)}break;case 6:null===t.stateNode&&r("162"),n=t.memoizedProps,d(t.stateNode,null!==e?e.memoizedProps:n,n);break;case 3:break;default:r("163")}},commitLifeCycles:function(e,t){switch(t.tag){case 2:var n=t.stateNode;if(4&t.effectTag)if(null===e)n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidMount();else{var o=e.memoizedProps;e=e.memoizedState,n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidUpdate(o,e)}t=t.updateQueue,null!==t&&Ot(t,n);break;case 3:n=t.updateQueue,null!==n&&Ot(n,null!==t.child?t.child.stateNode:null);break;case 5:n=t.stateNode,null===e&&4&t.effectTag&&s(n,t.type,t.memoizedProps,t);break;case 6:case 4:break;default:r("163")}},commitAttachRef:function(e){var t=e.ref;if(null!==t){var n=e.stateNode;switch(e.tag){case 5:t(c(n));break;default:t(n)}}},commitDetachRef:function(e){null!==(e=e.ref)&&e(null)}}}function It(e){function t(e){return e===jo&&r("174"),e}var n=e.getChildHostContext,o=e.getRootHostContext,a={current:jo},i={current:jo},u={current:jo};return{getHostContext:function(){return t(a.current)},getRootHostContainer:function(){return t(u.current)},popHostContainer:function(e){$e(a,e),$e(i,e),$e(u,e)},popHostContext:function(e){i.current===e&&($e(a,e),$e(i,e))},pushHostContainer:function(e,t){Qe(u,t,e),t=o(t),Qe(i,e,e),Qe(a,t,e)},pushHostContext:function(e){var r=t(u.current),o=t(a.current);r=n(o,e.type,r),o!==r&&(Qe(i,e,e),Qe(a,r,e))},resetHostContainer:function(){a.current=jo,u.current=jo}}}function St(e){function t(e,t){var n=new at(5,null,0);n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function n(e,t){switch(e.tag){case 5:return null!==(t=i(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=u(t,e.pendingProps))&&(e.stateNode=t,!0);default:return!1}}function o(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag;)e=e.return;p=e}var a=e.shouldSetTextContent;if(!(e=e.hydration))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){r("175")},prepareToHydrateHostTextInstance:function(){r("176")},popHydrationState:function(){return!1}};var i=e.canHydrateInstance,u=e.canHydrateTextInstance,c=e.getNextHydratableSibling,l=e.getFirstHydratableChild,s=e.hydrateInstance,f=e.hydrateTextInstance,p=null,d=null,h=!1;return{enterHydrationState:function(e){return d=l(e.stateNode.containerInfo),p=e,h=!0},resetHydrationState:function(){d=p=null,h=!1},tryToClaimNextHydratableInstance:function(e){if(h){var r=d;if(r){if(!n(e,r)){if(!(r=c(r))||!n(e,r))return e.effectTag|=2,h=!1,void(p=e);t(p,d)}p=e,d=l(r)}else e.effectTag|=2,h=!1,p=e}},prepareToHydrateHostInstance:function(e,t,n){return t=s(e.stateNode,e.type,e.memoizedProps,t,n,e),e.updateQueue=t,null!==t},prepareToHydrateHostTextInstance:function(e){return f(e.stateNode,e.memoizedProps,e)},popHydrationState:function(e){if(e!==p)return!1;if(!h)return o(e),h=!0,!1;var n=e.type;if(5!==e.tag||"head"!==n&&"body"!==n&&!a(n,e.memoizedProps))for(n=d;n;)t(e,n),n=c(n);return o(e),d=p?c(e.stateNode):null,!0}}}function At(e){function t(e){ae=$=!0;var t=e.stateNode;if(t.current===e&&r("177"),t.isReadyForCommit=!1,Br.current=null,1<e.effectTag)if(null!==e.lastEffect){e.lastEffect.nextEffect=e;var n=e.firstEffect}else n=e;else n=e.firstEffect;for(q(),Z=n;null!==Z;){var o=!1,a=void 0;try{for(;null!==Z;){var i=Z.effectTag;if(16&i&&A(Z),128&i){var u=Z.alternate;null!==u&&H(u)}switch(-242&i){case 2:R(Z),Z.effectTag&=-3;break;case 6:R(Z),Z.effectTag&=-3,L(Z.alternate,Z);break;case 4:L(Z.alternate,Z);break;case 8:ie=!0,D(Z),ie=!1}Z=Z.nextEffect}}catch(e){o=!0,a=e}o&&(null===Z&&r("178"),c(Z,a),null!==Z&&(Z=Z.nextEffect))}for(W(),t.current=e,Z=n;null!==Z;){n=!1,o=void 0;try{for(;null!==Z;){var l=Z.effectTag;if(36&l&&M(Z.alternate,Z),128&l&&U(Z),64&l)switch(a=Z,i=void 0,null!==ee&&(i=ee.get(a),ee.delete(a),null==i&&null!==a.alternate&&(a=a.alternate,i=ee.get(a),ee.delete(a))),null==i&&r("184"),a.tag){case 2:a.stateNode.componentDidCatch(i.error,{componentStack:i.componentStack});break;case 3:null===re&&(re=i.error);break;default:r("157")}var s=Z.nextEffect;Z.nextEffect=null,Z=s}}catch(e){n=!0,o=e}n&&(null===Z&&r("178"),c(Z,o),null!==Z&&(Z=Z.nextEffect))}return $=ae=!1,"function"===typeof mt&&mt(e.stateNode),ne&&(ne.forEach(m),ne=null),null!==re&&(e=re,re=null,T(e)),t=t.current.expirationTime,0===t&&(te=ee=null),t}function n(e){for(;;){var t=S(e.alternate,e,X),n=e.return,r=e.sibling,o=e;if(2147483647===X||2147483647!==o.expirationTime){if(2!==o.tag&&3!==o.tag)var a=0;else a=o.updateQueue,a=null===a?0:a.expirationTime;for(var i=o.child;null!==i;)0!==i.expirationTime&&(0===a||a>i.expirationTime)&&(a=i.expirationTime),i=i.sibling;o.expirationTime=a}if(null!==t)return t;if(null!==n&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e)),null!==r)return r;if(null===n){e.stateNode.isReadyForCommit=!0;break}e=n}return null}function o(e){var t=P(e.alternate,e,X);return null===t&&(t=n(e)),Br.current=null,t}function a(e){var t=I(e.alternate,e,X);return null===t&&(t=n(e)),Br.current=null,t}function i(e){if(null!==ee){if(!(0===X||X>e))if(X<=G)for(;null!==Q;)Q=l(Q)?a(Q):o(Q);else for(;null!==Q&&!O();)Q=l(Q)?a(Q):o(Q)}else if(!(0===X||X>e))if(X<=G)for(;null!==Q;)Q=o(Q);else for(;null!==Q&&!O();)Q=o(Q)}function u(e,t){if($&&r("243"),$=!0,e.isReadyForCommit=!1,e!==J||t!==X||null===Q){for(;-1<po;)fo[po]=null,po--;yo=Nn,ho.current=Nn,mo.current=!1,N(),J=e,X=t,Q=it(J.current,null,t)}var n=!1,o=null;try{i(t)}catch(e){n=!0,o=e}for(;n;){if(oe){re=o;break}var u=Q;if(null===u)oe=!0;else{var l=c(u,o);if(null===l&&r("183"),!oe){try{for(n=l,o=t,l=n;null!==u;){switch(u.tag){case 2:et(u);break;case 5:k(u);break;case 3:x(u);break;case 4:x(u)}if(u===l||u.alternate===l)break;u=u.return}Q=a(n),i(o)}catch(e){n=!0,o=e;continue}break}}}return t=re,oe=$=!1,re=null,null!==t&&T(t),e.isReadyForCommit?e.current.alternate:null}function c(e,t){var n=Br.current=null,r=!1,o=!1,a=null;if(3===e.tag)n=e,s(e)&&(oe=!0);else for(var i=e.return;null!==i&&null===n;){if(2===i.tag?"function"===typeof i.stateNode.componentDidCatch&&(r=!0,a=Ee(i),n=i,o=!0):3===i.tag&&(n=i),s(i)){if(ie||null!==ne&&(ne.has(i)||null!==i.alternate&&ne.has(i.alternate)))return null;n=null,o=!1}i=i.return}if(null!==n){null===te&&(te=new Set),te.add(n);var u="";i=e;do{e:switch(i.tag){case 0:case 1:case 2:case 5:var c=i._debugOwner,l=i._debugSource,f=Ee(i),p=null;c&&(p=Ee(c)),c=l,f="\n    in "+(f||"Unknown")+(c?" (at "+c.fileName.replace(/^.*[\\\/]/,"")+":"+c.lineNumber+")":p?" (created by "+p+")":"");break e;default:f=""}u+=f,i=i.return}while(i);i=u,e=Ee(e),null===ee&&(ee=new Map),t={componentName:e,componentStack:i,error:t,errorBoundary:r?n.stateNode:null,errorBoundaryFound:r,errorBoundaryName:a,willRetry:o},ee.set(n,t);try{var d=t.error;d&&d.suppressReactErrorLogging||console.error(d)}catch(e){e&&e.suppressReactErrorLogging||console.error(e)}return ae?(null===ne&&(ne=new Set),ne.add(n)):m(n),n}return null===re&&(re=t),null}function l(e){return null!==ee&&(ee.has(e)||null!==e.alternate&&ee.has(e.alternate))}function s(e){return null!==te&&(te.has(e)||null!==e.alternate&&te.has(e.alternate))}function f(){return 20*(1+((y()+100)/20|0))}function p(e){return 0!==Y?Y:$?ae?1:X:!V||1&e.internalContextTag?f():1}function d(e,t){return h(e,t,!1)}function h(e,t){for(;null!==e;){if((0===e.expirationTime||e.expirationTime>t)&&(e.expirationTime=t),null!==e.alternate&&(0===e.alternate.expirationTime||e.alternate.expirationTime>t)&&(e.alternate.expirationTime=t),null===e.return){if(3!==e.tag)break;var n=e.stateNode;!$&&n===J&&t<X&&(Q=J=null,X=0);var o=n,a=t;if(Oe>we&&r("185"),null===o.nextScheduledRoot)o.remainingExpirationTime=a,null===ce?(ue=ce=o,o.nextScheduledRoot=o):(ce=ce.nextScheduledRoot=o,ce.nextScheduledRoot=ue);else{var i=o.remainingExpirationTime;(0===i||a<i)&&(o.remainingExpirationTime=a)}fe||(be?ge&&(pe=o,de=1,E(pe,de)):1===a?w(1,null):v(a)),!$&&n===J&&t<X&&(Q=J=null,X=0)}e=e.return}}function m(e){h(e,1,!0)}function y(){return G=2+((F()-K)/10|0)}function v(e){if(0!==le){if(e>le)return;z(se)}var t=F()-K;le=e,se=B(g,{timeout:10*(e-2)-t})}function b(){var e=0,t=null;if(null!==ce)for(var n=ce,o=ue;null!==o;){var a=o.remainingExpirationTime;if(0===a){if((null===n||null===ce)&&r("244"),o===o.nextScheduledRoot){ue=ce=o.nextScheduledRoot=null;break}if(o===ue)ue=a=o.nextScheduledRoot,ce.nextScheduledRoot=a,o.nextScheduledRoot=null;else{if(o===ce){ce=n,ce.nextScheduledRoot=ue,o.nextScheduledRoot=null;break}n.nextScheduledRoot=o.nextScheduledRoot,o.nextScheduledRoot=null}o=n.nextScheduledRoot}else{if((0===e||a<e)&&(e=a,t=o),o===ce)break;n=o,o=o.nextScheduledRoot}}n=pe,null!==n&&n===t?Oe++:Oe=0,pe=t,de=e}function g(e){w(0,e)}function w(e,t){for(ve=t,b();null!==pe&&0!==de&&(0===e||de<=e)&&!he;)E(pe,de),b();if(null!==ve&&(le=0,se=-1),0!==de&&v(de),ve=null,he=!1,Oe=0,me)throw e=ye,ye=null,me=!1,e}function E(e,n){if(fe&&r("245"),fe=!0,n<=y()){var o=e.finishedWork;null!==o?(e.finishedWork=null,e.remainingExpirationTime=t(o)):(e.finishedWork=null,null!==(o=u(e,n))&&(e.remainingExpirationTime=t(o)))}else o=e.finishedWork,null!==o?(e.finishedWork=null,e.remainingExpirationTime=t(o)):(e.finishedWork=null,null!==(o=u(e,n))&&(O()?e.finishedWork=o:e.remainingExpirationTime=t(o)));fe=!1}function O(){return!(null===ve||ve.timeRemaining()>Te)&&(he=!0)}function T(e){null===pe&&r("246"),pe.remainingExpirationTime=0,me||(me=!0,ye=e)}var _=It(e),C=St(e),x=_.popHostContainer,k=_.popHostContext,N=_.resetHostContainer,j=Nt(e,_,C,d,p),P=j.beginWork,I=j.beginFailedWork,S=jt(e,_,C).completeWork;_=Pt(e,c);var A=_.commitResetTextContent,R=_.commitPlacement,D=_.commitDeletion,L=_.commitWork,M=_.commitLifeCycles,U=_.commitAttachRef,H=_.commitDetachRef,F=e.now,B=e.scheduleDeferredCallback,z=e.cancelDeferredCallback,V=e.useSyncScheduling,q=e.prepareForCommit,W=e.resetAfterCommit,K=F(),G=2,Y=0,$=!1,Q=null,J=null,X=0,Z=null,ee=null,te=null,ne=null,re=null,oe=!1,ae=!1,ie=!1,ue=null,ce=null,le=0,se=-1,fe=!1,pe=null,de=0,he=!1,me=!1,ye=null,ve=null,be=!1,ge=!1,we=1e3,Oe=0,Te=1;return{computeAsyncExpiration:f,computeExpirationForFiber:p,scheduleWork:d,batchedUpdates:function(e,t){var n=be;be=!0;try{return e(t)}finally{(be=n)||fe||w(1,null)}},unbatchedUpdates:function(e){if(be&&!ge){ge=!0;try{return e()}finally{ge=!1}}return e()},flushSync:function(e){var t=be;be=!0;try{e:{var n=Y;Y=1;try{var o=e();break e}finally{Y=n}o=void 0}return o}finally{be=t,fe&&r("187"),w(1,null)}},deferredUpdates:function(e){var t=Y;Y=f();try{return e()}finally{Y=t}}}}function Rt(e){function t(e){return e=xe(e),null===e?null:e.stateNode}var n=e.getPublicInstance;e=At(e);var o=e.computeAsyncExpiration,a=e.computeExpirationForFiber,i=e.scheduleWork;return{createContainer:function(e,t){var n=new at(3,null,0);return e={current:n,containerInfo:e,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:t,nextScheduledRoot:null},n.stateNode=e},updateContainer:function(e,t,n,u){var c=t.current;if(n){n=n._reactInternalFiber;var l;e:{for(2===Oe(n)&&2===n.tag||r("170"),l=n;3!==l.tag;){if(Ze(l)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break e}(l=l.return)||r("171")}l=l.stateNode.context}n=Ze(n)?nt(n,l):l}else n=Nn;null===t.context?t.context=n:t.pendingContext=n,t=u,t=void 0===t?null:t,u=null!=e&&null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent?o():a(c),gt(c,{expirationTime:u,partialState:{element:e},callback:t,isReplace:!1,isForced:!1,nextCallback:null,next:null}),i(c,u)},batchedUpdates:e.batchedUpdates,unbatchedUpdates:e.unbatchedUpdates,deferredUpdates:e.deferredUpdates,flushSync:e.flushSync,getPublicRootInstance:function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return n(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:t,findHostInstanceWithNoPortals:function(e){return e=ke(e),null===e?null:e.stateNode},injectIntoDevTools:function(e){var n=e.findFiberByHostInstance;return ht(En({},e,{findHostInstanceByFiber:function(e){return t(e)},findFiberByHostInstance:function(e){return n?n(e):null}}))}}}function Dt(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:To,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Lt(e){return!!$o.hasOwnProperty(e)||!Yo.hasOwnProperty(e)&&(Go.test(e)?$o[e]=!0:(Yo[e]=!0,!1))}function Mt(e,t,n){var r=i(t);if(r&&a(t,n)){var o=r.mutationMethod;o?o(e,n):null==n||r.hasBooleanValue&&!n||r.hasNumericValue&&isNaN(n)||r.hasPositiveNumericValue&&1>n||r.hasOverloadedBooleanValue&&!1===n?Ht(e,t):r.mustUseProperty?e[r.propertyName]=n:(t=r.attributeName,(o=r.attributeNamespace)?e.setAttributeNS(o,t,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?e.setAttribute(t,""):e.setAttribute(t,""+n))}else Ut(e,t,a(t,n)?n:null)}function Ut(e,t,n){Lt(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))}function Ht(e,t){var n=i(t);n?(t=n.mutationMethod)?t(e,void 0):n.mustUseProperty?e[n.propertyName]=!n.hasBooleanValue&&"":e.removeAttribute(n.attributeName):e.removeAttribute(t)}function Ft(e,t){var n=t.value,r=t.checked;return En({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked})}function Bt(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function zt(e,t){null!=(t=t.checked)&&Mt(e,"checked",t)}function Vt(e,t){zt(e,t);var n=t.value;null!=n?0===n&&""===e.value?e.value="0":"number"===t.type?(t=parseFloat(e.value)||0,(n!=t||n==t&&e.value!=n)&&(e.value=""+n)):e.value!==""+n&&(e.value=""+n):(null==t.value&&null!=t.defaultValue&&e.defaultValue!==""+t.defaultValue&&(e.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked))}function qt(e,t){switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":e.value="",e.value=e.defaultValue;break;default:e.value=e.value}t=e.name,""!==t&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!e.defaultChecked,""!==t&&(e.name=t)}function Wt(e){var t="";return gn.Children.forEach(e,function(e){null==e||"string"!==typeof e&&"number"!==typeof e||(t+=e)}),t}function Kt(e,t){return e=En({children:void 0},t),(t=Wt(t.children))&&(e.children=t),e}function Gt(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+n,t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Yt(e,t){var n=t.value;e._wrapperState={initialValue:null!=n?n:t.defaultValue,wasMultiple:!!t.multiple}}function $t(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),En({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Qt(e,t){var n=t.value;null==n&&(n=t.defaultValue,t=t.children,null!=t&&(null!=n&&r("92"),Array.isArray(t)&&(1>=t.length||r("93"),t=t[0]),n=""+t),null==n&&(n="")),e._wrapperState={initialValue:""+n}}function Jt(e,t){var n=t.value;null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&(e.defaultValue=n)),null!=t.defaultValue&&(e.defaultValue=t.defaultValue)}function Xt(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function Zt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function en(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Zt(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function tn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function nn(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=n,a=t[n];o=null==a||"boolean"===typeof a||""===a?"":r||"number"!==typeof a||0===a||Zo.hasOwnProperty(o)&&Zo[o]?(""+a).trim():a+"px","float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}function rn(e,t,n){t&&(ta[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e,n()),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"===typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!==typeof t.style&&r("62",n()))}function on(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function an(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=De(e);t=Qn[t];for(var r=0;r<t.length;r++){var o=t[r];n.hasOwnProperty(o)&&n[o]||("topScroll"===o?Ie("topScroll","scroll",e):"topFocus"===o||"topBlur"===o?(Ie("topFocus","focus",e),Ie("topBlur","blur",e),n.topBlur=!0,n.topFocus=!0):"topCancel"===o?(ne("cancel",!0)&&Ie("topCancel","cancel",e),n.topCancel=!0):"topClose"===o?(ne("close",!0)&&Ie("topClose","close",e),n.topClose=!0):$r.hasOwnProperty(o)&&Pe(o,$r[o],e),n[o]=!0)}}function un(e,t,n,r){return n=9===n.nodeType?n:n.ownerDocument,r===na&&(r=Zt(e)),r===na?"script"===e?(e=n.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):e="string"===typeof t.is?n.createElement(e,{is:t.is}):n.createElement(e):e=n.createElementNS(r,e),e}function cn(e,t){return(9===t.nodeType?t:t.ownerDocument).createTextNode(e)}function ln(e,t,n,r){var o=on(t,n);switch(t){case"iframe":case"object":Pe("topLoad","load",e);var a=n;break;case"video":case"audio":for(a in oa)oa.hasOwnProperty(a)&&Pe(a,oa[a],e);a=n;break;case"source":Pe("topError","error",e),a=n;break;case"img":case"image":Pe("topError","error",e),Pe("topLoad","load",e),a=n;break;case"form":Pe("topReset","reset",e),Pe("topSubmit","submit",e),a=n;break;case"details":Pe("topToggle","toggle",e),a=n;break;case"input":Bt(e,n),a=Ft(e,n),Pe("topInvalid","invalid",e),an(r,"onChange");break;case"option":a=Kt(e,n);break;case"select":Yt(e,n),a=En({},n,{value:void 0}),Pe("topInvalid","invalid",e),an(r,"onChange");break;case"textarea":Qt(e,n),a=$t(e,n),Pe("topInvalid","invalid",e),an(r,"onChange");break;default:a=n}rn(t,a,ra);var i,u=a;for(i in u)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?nn(e,c,ra):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&Xo(e,c):"children"===i?"string"===typeof c?("textarea"!==t||""!==c)&&tn(e,c):"number"===typeof c&&tn(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&($n.hasOwnProperty(i)?null!=c&&an(r,i):o?Ut(e,i,c):null!=c&&Mt(e,i,c))}switch(t){case"input":ae(e),qt(e,n);break;case"textarea":ae(e),Xt(e,n);break;case"option":null!=n.value&&e.setAttribute("value",n.value);break;case"select":e.multiple=!!n.multiple,t=n.value,null!=t?Gt(e,!!n.multiple,t,!1):null!=n.defaultValue&&Gt(e,!!n.multiple,n.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=On)}}function sn(e,t,n,r,o){var a=null;switch(t){case"input":n=Ft(e,n),r=Ft(e,r),a=[];break;case"option":n=Kt(e,n),r=Kt(e,r),a=[];break;case"select":n=En({},n,{value:void 0}),r=En({},r,{value:void 0}),a=[];break;case"textarea":n=$t(e,n),r=$t(e,r),a=[];break;default:"function"!==typeof n.onClick&&"function"===typeof r.onClick&&(e.onclick=On)}rn(t,r,ra);var i,u;e=null;for(i in n)if(!r.hasOwnProperty(i)&&n.hasOwnProperty(i)&&null!=n[i])if("style"===i)for(u in t=n[i])t.hasOwnProperty(u)&&(e||(e={}),e[u]="");else"dangerouslySetInnerHTML"!==i&&"children"!==i&&"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&($n.hasOwnProperty(i)?a||(a=[]):(a=a||[]).push(i,null));for(i in r){var c=r[i];if(t=null!=n?n[i]:void 0,r.hasOwnProperty(i)&&c!==t&&(null!=c||null!=t))if("style"===i)if(t){for(u in t)!t.hasOwnProperty(u)||c&&c.hasOwnProperty(u)||(e||(e={}),e[u]="");for(u in c)c.hasOwnProperty(u)&&t[u]!==c[u]&&(e||(e={}),e[u]=c[u])}else e||(a||(a=[]),a.push(i,e)),e=c;else"dangerouslySetInnerHTML"===i?(c=c?c.__html:void 0,t=t?t.__html:void 0,null!=c&&t!==c&&(a=a||[]).push(i,""+c)):"children"===i?t===c||"string"!==typeof c&&"number"!==typeof c||(a=a||[]).push(i,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&($n.hasOwnProperty(i)?(null!=c&&an(o,i),a||t===c||(a=[])):(a=a||[]).push(i,c))}return e&&(a=a||[]).push("style",e),a}function fn(e,t,n,r,o){"input"===n&&"radio"===o.type&&null!=o.name&&zt(e,o),on(n,r),r=on(n,o);for(var a=0;a<t.length;a+=2){var i=t[a],u=t[a+1];"style"===i?nn(e,u,ra):"dangerouslySetInnerHTML"===i?Xo(e,u):"children"===i?tn(e,u):r?null!=u?Ut(e,i,u):e.removeAttribute(i):null!=u?Mt(e,i,u):Ht(e,i)}switch(n){case"input":Vt(e,o);break;case"textarea":Jt(e,o);break;case"select":e._wrapperState.initialValue=void 0,t=e._wrapperState.wasMultiple,e._wrapperState.wasMultiple=!!o.multiple,n=o.value,null!=n?Gt(e,!!o.multiple,n,!1):t!==!!o.multiple&&(null!=o.defaultValue?Gt(e,!!o.multiple,o.defaultValue,!0):Gt(e,!!o.multiple,o.multiple?[]:"",!1))}}function pn(e,t,n,r,o){switch(t){case"iframe":case"object":Pe("topLoad","load",e);break;case"video":case"audio":for(var a in oa)oa.hasOwnProperty(a)&&Pe(a,oa[a],e);break;case"source":Pe("topError","error",e);break;case"img":case"image":Pe("topError","error",e),Pe("topLoad","load",e);break;case"form":Pe("topReset","reset",e),Pe("topSubmit","submit",e);break;case"details":Pe("topToggle","toggle",e);break;case"input":Bt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange");break;case"select":Yt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange");break;case"textarea":Qt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange")}rn(t,n,ra),r=null;for(var i in n)n.hasOwnProperty(i)&&(a=n[i],"children"===i?"string"===typeof a?e.textContent!==a&&(r=["children",a]):"number"===typeof a&&e.textContent!==""+a&&(r=["children",""+a]):$n.hasOwnProperty(i)&&null!=a&&an(o,i));switch(t){case"input":ae(e),qt(e,n);break;case"textarea":ae(e),Xt(e,n);break;case"select":case"option":break;default:"function"===typeof n.onClick&&(e.onclick=On)}return r}function dn(e,t){return e.nodeValue!==t}function hn(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function mn(e){return!(!(e=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==e.nodeType||!e.hasAttribute("data-reactroot"))}function yn(e,t,n,o,a){hn(n)||r("200");var i=n._reactRootContainer;if(i)ca.updateContainer(t,i,e,a);else{if(!(o=o||mn(n)))for(i=void 0;i=n.lastChild;)n.removeChild(i);var u=ca.createContainer(n,o);i=n._reactRootContainer=u,ca.unbatchedUpdates(function(){ca.updateContainer(t,u,e,a)})}return ca.getPublicRootInstance(i)}function vn(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return hn(t)||r("200"),Dt(e,t,null,n)}function bn(e,t){this._reactRootContainer=ca.createContainer(e,t)}var gn=n(0),wn=n(56),En=n(22),On=n(18),Tn=n(57),_n=n(58),Cn=n(59),xn=n(60),kn=n(63),Nn=n(31);gn||r("227");var jn={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0},Pn={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=Pn,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},i=e.DOMAttributeNames||{};e=e.DOMMutationMethods||{};for(var u in n){In.hasOwnProperty(u)&&r("48",u);var c=u.toLowerCase(),l=n[u];c={attributeName:c,attributeNamespace:null,propertyName:u,mutationMethod:null,mustUseProperty:o(l,t.MUST_USE_PROPERTY),hasBooleanValue:o(l,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(l,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(l,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(l,t.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:o(l,t.HAS_STRING_BOOLEAN_VALUE)},1>=c.hasBooleanValue+c.hasNumericValue+c.hasOverloadedBooleanValue||r("50",u),i.hasOwnProperty(u)&&(c.attributeName=i[u]),a.hasOwnProperty(u)&&(c.attributeNamespace=a[u]),e.hasOwnProperty(u)&&(c.mutationMethod=e[u]),In[u]=c}}},In={},Sn=Pn,An=Sn.MUST_USE_PROPERTY,Rn=Sn.HAS_BOOLEAN_VALUE,Dn=Sn.HAS_NUMERIC_VALUE,Ln=Sn.HAS_POSITIVE_NUMERIC_VALUE,Mn=Sn.HAS_OVERLOADED_BOOLEAN_VALUE,Un=Sn.HAS_STRING_BOOLEAN_VALUE,Hn={Properties:{allowFullScreen:Rn,async:Rn,autoFocus:Rn,autoPlay:Rn,capture:Mn,checked:An|Rn,cols:Ln,contentEditable:Un,controls:Rn,default:Rn,defer:Rn,disabled:Rn,download:Mn,draggable:Un,formNoValidate:Rn,hidden:Rn,loop:Rn,multiple:An|Rn,muted:An|Rn,noValidate:Rn,open:Rn,playsInline:Rn,readOnly:Rn,required:Rn,reversed:Rn,rows:Ln,rowSpan:Dn,scoped:Rn,seamless:Rn,selected:An|Rn,size:Ln,start:Dn,span:Ln,spellCheck:Un,style:0,tabIndex:0,itemScope:Rn,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Un},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}},Fn=Sn.HAS_STRING_BOOLEAN_VALUE,Bn={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},zn={Properties:{autoReverse:Fn,externalResourcesRequired:Fn,preserveAlpha:Fn},DOMAttributeNames:{autoReverse:"autoReverse",externalResourcesRequired:"externalResourcesRequired",preserveAlpha:"preserveAlpha"},DOMAttributeNamespaces:{xlinkActuate:Bn.xlink,xlinkArcrole:Bn.xlink,xlinkHref:Bn.xlink,xlinkRole:Bn.xlink,xlinkShow:Bn.xlink,xlinkTitle:Bn.xlink,xlinkType:Bn.xlink,xmlBase:Bn.xml,xmlLang:Bn.xml,xmlSpace:Bn.xml}},Vn=/[\-\:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space".split(" ").forEach(function(e){var t=e.replace(Vn,u);zn.Properties[t]=0,zn.DOMAttributeNames[t]=e}),Sn.injectDOMPropertyConfig(Hn),Sn.injectDOMPropertyConfig(zn);var qn={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(e){"function"!==typeof e.invokeGuardedCallback&&r("197"),c=e.invokeGuardedCallback}},invokeGuardedCallback:function(e,t,n,r,o,a,i,u,l){c.apply(qn,arguments)},invokeGuardedCallbackAndCatchFirstError:function(e,t,n,r,o,a,i,u,c){if(qn.invokeGuardedCallback.apply(this,arguments),qn.hasCaughtError()){var l=qn.clearCaughtError();qn._hasRethrowError||(qn._hasRethrowError=!0,qn._rethrowError=l)}},rethrowCaughtError:function(){return l.apply(qn,arguments)},hasCaughtError:function(){return qn._hasCaughtError},clearCaughtError:function(){if(qn._hasCaughtError){var e=qn._caughtError;return qn._caughtError=null,qn._hasCaughtError=!1,e}r("198")}},Wn=null,Kn={},Gn=[],Yn={},$n={},Qn={},Jn=Object.freeze({plugins:Gn,eventNameDispatchConfigs:Yn,registrationNameModules:$n,registrationNameDependencies:Qn,possibleRegistrationNames:null,injectEventPluginOrder:p,injectEventPluginsByName:d}),Xn=null,Zn=null,er=null,tr=null,nr={injectEventPluginOrder:p,injectEventPluginsByName:d},rr=Object.freeze({injection:nr,getListener:w,extractEvents:E,enqueueEvents:O,processEventQueue:T}),or=Math.random().toString(36).slice(2),ar="__reactInternalInstance$"+or,ir="__reactEventHandlers$"+or,ur=Object.freeze({precacheFiberNode:function(e,t){t[ar]=e},getClosestInstanceFromNode:_,getInstanceFromNode:function(e){return e=e[ar],!e||5!==e.tag&&6!==e.tag?null:e},getNodeFromInstance:C,getFiberCurrentPropsFromNode:x,updateFiberProps:function(e,t){e[ir]=t}}),cr=Object.freeze({accumulateTwoPhaseDispatches:R,accumulateTwoPhaseDispatchesSkipTarget:function(e){y(e,I)},accumulateEnterLeaveDispatches:D,accumulateDirectDispatches:function(e){y(e,A)}}),lr=null,sr={_root:null,_startText:null,_fallbackText:null},fr="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),pr={type:null,target:null,currentTarget:On.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};En(H.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=On.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=On.thatReturnsTrue)},persist:function(){this.isPersistent=On.thatReturnsTrue},isPersistent:On.thatReturnsFalse,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;for(t=0;t<fr.length;t++)this[fr[t]]=null}}),H.Interface=pr,H.augmentClass=function(e,t){function n(){}n.prototype=this.prototype;var r=new n;En(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=En({},this.Interface,t),e.augmentClass=this.augmentClass,z(e)},z(H),H.augmentClass(V,{data:null}),H.augmentClass(q,{data:null});var dr=[9,13,27,32],hr=wn.canUseDOM&&"CompositionEvent"in window,mr=null;wn.canUseDOM&&"documentMode"in document&&(mr=document.documentMode);var yr;if(yr=wn.canUseDOM&&"TextEvent"in window&&!mr){var vr=window.opera;yr=!("object"===typeof vr&&"function"===typeof vr.version&&12>=parseInt(vr.version(),10))}var br,gr=yr,wr=wn.canUseDOM&&(!hr||mr&&8<mr&&11>=mr),Er=String.fromCharCode(32),Or={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},Tr=!1,_r=!1,Cr={eventTypes:Or,extractEvents:function(e,t,n,r){var o;if(hr)e:{switch(e){case"topCompositionStart":var a=Or.compositionStart;break e;case"topCompositionEnd":a=Or.compositionEnd;break e;case"topCompositionUpdate":a=Or.compositionUpdate;break e}a=void 0}else _r?W(e,n)&&(a=Or.compositionEnd):"topKeyDown"===e&&229===n.keyCode&&(a=Or.compositionStart);return a?(wr&&(_r||a!==Or.compositionStart?a===Or.compositionEnd&&_r&&(o=M()):(sr._root=r,sr._startText=U(),_r=!0)),a=V.getPooled(a,t,n,r),o?a.data=o:null!==(o=K(n))&&(a.data=o),R(a),o=a):o=null,(e=gr?G(e,n):Y(e,n))?(t=q.getPooled(Or.beforeInput,t,n,r),t.data=e,R(t)):t=null,[o,t]}},xr=null,kr=null,Nr=null,jr={injectFiberControlledHostComponent:function(e){xr=e}},Pr=Object.freeze({injection:jr,enqueueStateRestore:Q,restoreStateIfNeeded:J}),Ir=!1,Sr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};wn.canUseDOM&&(br=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Ar={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},Rr=null,Dr=null,Lr=!1;wn.canUseDOM&&(Lr=ne("input")&&(!document.documentMode||9<document.documentMode));var Mr={eventTypes:Ar,_isInputEventSupported:Lr,extractEvents:function(e,t,n,r){var o=t?C(t):window,a=o.nodeName&&o.nodeName.toLowerCase();if("select"===a||"input"===a&&"file"===o.type)var i=se;else if(ee(o))if(Lr)i=ye;else{i=he;var u=de}else!(a=o.nodeName)||"input"!==a.toLowerCase()||"checkbox"!==o.type&&"radio"!==o.type||(i=me);if(i&&(i=i(e,t)))return ue(i,n,r);u&&u(e,o,t),"topBlur"===e&&null!=t&&(e=t._wrapperState||o._wrapperState)&&e.controlled&&"number"===o.type&&(e=""+o.value,o.getAttribute("value")!==e&&o.setAttribute("value",e))}};H.augmentClass(ve,{view:null,detail:null});var Ur={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};ve.augmentClass(we,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ge,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)}});var Hr={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},Fr={eventTypes:Hr,extractEvents:function(e,t,n,r){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement)||"topMouseOut"!==e&&"topMouseOver"!==e)return null;var o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window;if("topMouseOut"===e?(e=t,t=(t=n.relatedTarget||n.toElement)?_(t):null):e=null,e===t)return null;var a=null==e?o:C(e);o=null==t?o:C(t);var i=we.getPooled(Hr.mouseLeave,e,n,r);return i.type="mouseleave",i.target=a,i.relatedTarget=o,n=we.getPooled(Hr.mouseEnter,t,n,r),n.type="mouseenter",n.target=o,n.relatedTarget=a,D(i,n,e,t),[i,n]}},Br=gn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,zr=[],Vr=!0,qr=void 0,Wr=Object.freeze({get _enabled(){return Vr},get _handleTopLevel(){return qr},setHandleTopLevel:function(e){qr=e},setEnabled:je,isEnabled:function(){return Vr},trapBubbledEvent:Pe,trapCapturedEvent:Ie,dispatchEvent:Se}),Kr={animationend:Ae("Animation","AnimationEnd"),animationiteration:Ae("Animation","AnimationIteration"),animationstart:Ae("Animation","AnimationStart"),transitionend:Ae("Transition","TransitionEnd")},Gr={},Yr={};wn.canUseDOM&&(Yr=document.createElement("div").style,"AnimationEvent"in window||(delete Kr.animationend.animation,delete Kr.animationiteration.animation,delete Kr.animationstart.animation),"TransitionEvent"in window||delete Kr.transitionend.transition);var $r={topAbort:"abort",topAnimationEnd:Re("animationend")||"animationend",topAnimationIteration:Re("animationiteration")||"animationiteration",topAnimationStart:Re("animationstart")||"animationstart",topBlur:"blur",topCancel:"cancel",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topClose:"close",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoad:"load",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topToggle:"toggle",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:Re("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},Qr={},Jr=0,Xr="_reactListenersID"+(""+Math.random()).slice(2),Zr=wn.canUseDOM&&"documentMode"in document&&11>=document.documentMode,eo={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},to=null,no=null,ro=null,oo=!1,ao={eventTypes:eo,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=De(a),o=Qn.onSelect;for(var i=0;i<o.length;i++){var u=o[i];if(!a.hasOwnProperty(u)||!a[u]){a=!1;break e}}a=!0}o=!a}if(o)return null;switch(a=t?C(t):window,e){case"topFocus":(ee(a)||"true"===a.contentEditable)&&(to=a,no=t,ro=null);break;case"topBlur":ro=no=to=null;break;case"topMouseDown":oo=!0;break;case"topContextMenu":case"topMouseUp":return oo=!1,He(n,r);case"topSelectionChange":if(Zr)break;case"topKeyDown":case"topKeyUp":return He(n,r)}return null}};H.augmentClass(Fe,{animationName:null,elapsedTime:null,pseudoElement:null}),H.augmentClass(Be,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ve.augmentClass(ze,{relatedTarget:null});var io={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},uo={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};ve.augmentClass(qe,{key:function(e){if(e.key){var t=io[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?(e=Ve(e),13===e?"Enter":String.fromCharCode(e)):"keydown"===e.type||"keyup"===e.type?uo[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ge,charCode:function(e){return"keypress"===e.type?Ve(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Ve(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),we.augmentClass(We,{dataTransfer:null}),ve.augmentClass(Ke,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ge}),H.augmentClass(Ge,{propertyName:null,elapsedTime:null,pseudoElement:null}),we.augmentClass(Ye,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null});var co={},lo={};"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel".split(" ").forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t;t="top"+t,n={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[t]},co[e]=n,lo[t]=n});var so={eventTypes:co,extractEvents:function(e,t,n,r){var o=lo[e];if(!o)return null;switch(e){case"topKeyPress":if(0===Ve(n))return null;case"topKeyDown":case"topKeyUp":e=qe;break;case"topBlur":case"topFocus":e=ze;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":e=we;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":e=We;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":e=Ke;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":e=Fe;break;case"topTransitionEnd":e=Ge;break;case"topScroll":e=ve;break;case"topWheel":e=Ye;break;case"topCopy":case"topCut":case"topPaste":e=Be;break;default:e=H}return t=e.getPooled(o,t,n,r),R(t),t}};qr=function(e,t,n,r){e=E(e,t,n,r),O(e),T(!1)},nr.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),Xn=ur.getFiberCurrentPropsFromNode,Zn=ur.getInstanceFromNode,er=ur.getNodeFromInstance,nr.injectEventPluginsByName({SimpleEventPlugin:so,EnterLeaveEventPlugin:Fr,ChangeEventPlugin:Mr,SelectEventPlugin:ao,BeforeInputEventPlugin:Cr});var fo=[],po=-1;new Set;var ho={current:Nn},mo={current:!1},yo=Nn,vo=null,bo=null,go="function"===typeof Symbol&&Symbol.for,wo=go?Symbol.for("react.element"):60103,Eo=go?Symbol.for("react.call"):60104,Oo=go?Symbol.for("react.return"):60105,To=go?Symbol.for("react.portal"):60106,_o=go?Symbol.for("react.fragment"):60107,Co="function"===typeof Symbol&&Symbol.iterator,xo=Array.isArray,ko=kt(!0),No=kt(!1),jo={},Po=Object.freeze({default:Rt}),Io=Po&&Rt||Po,So=Io.default?Io.default:Io,Ao="object"===typeof performance&&"function"===typeof performance.now,Ro=void 0;Ro=Ao?function(){return performance.now()}:function(){return Date.now()};var Do=void 0,Lo=void 0;if(wn.canUseDOM)if("function"!==typeof requestIdleCallback||"function"!==typeof cancelIdleCallback){var Mo,Uo=null,Ho=!1,Fo=-1,Bo=!1,zo=0,Vo=33,qo=33;Mo=Ao?{didTimeout:!1,timeRemaining:function(){var e=zo-performance.now();return 0<e?e:0}}:{didTimeout:!1,timeRemaining:function(){var e=zo-Date.now();return 0<e?e:0}};var Wo="__reactIdleCallback$"+Math.random().toString(36).slice(2);window.addEventListener("message",function(e){if(e.source===window&&e.data===Wo){if(Ho=!1,e=Ro(),0>=zo-e){if(!(-1!==Fo&&Fo<=e))return void(Bo||(Bo=!0,requestAnimationFrame(Ko)));Mo.didTimeout=!0}else Mo.didTimeout=!1;Fo=-1,e=Uo,Uo=null,null!==e&&e(Mo)}},!1);var Ko=function(e){Bo=!1;var t=e-zo+qo;t<qo&&Vo<qo?(8>t&&(t=8),qo=t<Vo?Vo:t):Vo=t,zo=e+qo,Ho||(Ho=!0,window.postMessage(Wo,"*"))};Do=function(e,t){return Uo=e,null!=t&&"number"===typeof t.timeout&&(Fo=Ro()+t.timeout),Bo||(Bo=!0,requestAnimationFrame(Ko)),0},Lo=function(){Uo=null,Ho=!1,Fo=-1}}else Do=window.requestIdleCallback,Lo=window.cancelIdleCallback;else Do=function(e){return setTimeout(function(){e({timeRemaining:function(){return 1/0}})})},Lo=function(e){clearTimeout(e)};var Go=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Yo={},$o={},Qo={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},Jo=void 0,Xo=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n)})}:e}(function(e,t){if(e.namespaceURI!==Qo.svg||"innerHTML"in e)e.innerHTML=t;else{for(Jo=Jo||document.createElement("div"),Jo.innerHTML="<svg>"+t+"</svg>",t=Jo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),Zo={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ea=["Webkit","ms","Moz","O"];Object.keys(Zo).forEach(function(e){ea.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Zo[t]=Zo[e]})});var ta=En({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),na=Qo.html,ra=On.thatReturns(""),oa={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},aa=Object.freeze({createElement:un,createTextNode:cn,setInitialProperties:ln,diffProperties:sn,updateProperties:fn,diffHydratedProperties:pn,diffHydratedText:dn,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(e,t,n){switch(t){case"input":if(Vt(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var o=n[t];if(o!==e&&o.form===e.form){var a=x(o);a||r("90"),ie(o),Vt(o,a)}}}break;case"textarea":Jt(e,n);break;case"select":null!=(t=n.value)&&Gt(e,!!n.multiple,t,!1)}}});jr.injectFiberControlledHostComponent(aa);var ia=null,ua=null,ca=So({getRootHostContext:function(e){var t=e.nodeType;switch(t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:en(null,"");break;default:t=8===t?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=en(e,t)}return e},getChildHostContext:function(e,t){return en(e,t)},getPublicInstance:function(e){return e},prepareForCommit:function(){ia=Vr;var e=_n();if(Ue(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var n=window.getSelection&&window.getSelection();if(n&&0!==n.rangeCount){t=n.anchorNode;var r=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{t.nodeType,o.nodeType}catch(e){t=null;break e}var a=0,i=-1,u=-1,c=0,l=0,s=e,f=null;t:for(;;){for(var p;s!==t||0!==r&&3!==s.nodeType||(i=a+r),s!==o||0!==n&&3!==s.nodeType||(u=a+n),3===s.nodeType&&(a+=s.nodeValue.length),null!==(p=s.firstChild);)f=s,s=p;for(;;){if(s===e)break t;if(f===t&&++c===r&&(i=a),f===o&&++l===n&&(u=a),null!==(p=s.nextSibling))break;s=f,f=s.parentNode}s=p}t=-1===i||-1===u?null:{start:i,end:u}}else t=null}t=t||{start:0,end:0}}else t=null;ua={focusedElem:e,selectionRange:t},je(!1)},resetAfterCommit:function(){var e=ua,t=_n(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&xn(document.documentElement,n)){if(Ue(n))if(t=r.start,e=r.end,void 0===e&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(window.getSelection){t=window.getSelection();var o=n[L()].length;e=Math.min(r.start,o),r=void 0===r.end?e:Math.min(r.end,o),!t.extend&&e>r&&(o=r,r=e,e=o),o=Me(n,e);var a=Me(n,r);if(o&&a&&(1!==t.rangeCount||t.anchorNode!==o.node||t.anchorOffset!==o.offset||t.focusNode!==a.node||t.focusOffset!==a.offset)){var i=document.createRange();i.setStart(o.node,o.offset),t.removeAllRanges(),e>r?(t.addRange(i),t.extend(a.node,a.offset)):(i.setEnd(a.node,a.offset),t.addRange(i))}}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(kn(n),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}ua=null,je(ia),ia=null},createInstance:function(e,t,n,r,o){return e=un(e,t,n,r),e[ar]=o,e[ir]=t,e},appendInitialChild:function(e,t){e.appendChild(t)},finalizeInitialChildren:function(e,t,n,r){ln(e,t,n,r);e:{switch(t){case"button":case"input":case"select":case"textarea":e=!!n.autoFocus;break e}e=!1}return e},prepareUpdate:function(e,t,n,r,o){return sn(e,t,n,r,o)},shouldSetTextContent:function(e,t){return"textarea"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&"string"===typeof t.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(e,t){return!!t.hidden},createTextInstance:function(e,t,n,r){return e=cn(e,t),e[ar]=r,e},now:Ro,mutation:{commitMount:function(e){e.focus()},commitUpdate:function(e,t,n,r,o){e[ir]=o,fn(e,t,n,r,o)},resetTextContent:function(e){e.textContent=""},commitTextUpdate:function(e,t,n){e.nodeValue=n},appendChild:function(e,t){e.appendChild(t)},appendChildToContainer:function(e,t){8===e.nodeType?e.parentNode.insertBefore(t,e):e.appendChild(t)},insertBefore:function(e,t,n){e.insertBefore(t,n)},insertInContainerBefore:function(e,t,n){8===e.nodeType?e.parentNode.insertBefore(t,n):e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},removeChildFromContainer:function(e,t){8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)}},hydration:{canHydrateInstance:function(e,t){return 1!==e.nodeType||t.toLowerCase()!==e.nodeName.toLowerCase()?null:e},canHydrateTextInstance:function(e,t){return""===t||3!==e.nodeType?null:e},getNextHydratableSibling:function(e){for(e=e.nextSibling;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e},getFirstHydratableChild:function(e){for(e=e.firstChild;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e},hydrateInstance:function(e,t,n,r,o,a){return e[ar]=a,e[ir]=n,pn(e,t,n,o,r)},hydrateTextInstance:function(e,t,n){return e[ar]=n,dn(e,t)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},didNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:Do,cancelDeferredCallback:Lo,useSyncScheduling:!0});X=ca.batchedUpdates,bn.prototype.render=function(e,t){ca.updateContainer(e,this._reactRootContainer,null,t)},bn.prototype.unmount=function(e){ca.updateContainer(null,this._reactRootContainer,null,e)};var la={createPortal:vn,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(t)return ca.findHostInstance(t);"function"===typeof e.render?r("188"):r("213",Object.keys(e))},hydrate:function(e,t,n){return yn(null,e,t,!0,n)},render:function(e,t,n){return yn(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,o){return(null==e||void 0===e._reactInternalFiber)&&r("38"),yn(e,t,n,!1,o)},unmountComponentAtNode:function(e){return hn(e)||r("40"),!!e._reactRootContainer&&(ca.unbatchedUpdates(function(){yn(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:vn,unstable_batchedUpdates:Z,unstable_deferredUpdates:ca.deferredUpdates,flushSync:ca.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:rr,EventPluginRegistry:Jn,EventPropagators:cr,ReactControlledComponent:Pr,ReactDOMComponentTree:ur,ReactDOMEventListener:Wr}};ca.injectIntoDevTools({findFiberByHostInstance:_,bundleType:0,version:"16.2.0",rendererPackageName:"react-dom"});var sa=Object.freeze({default:la}),fa=sa&&la||sa;e.exports=fa.default?fa.default:fa},function(e,t,n){"use strict";var r=!("undefined"===typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!==typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";var r=n(18),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";function r(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=r},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var i=0;i<n.length;i++)if(!a.call(t,n[i])||!r(e[n[i]],t[n[i]]))return!1;return!0}var a=Object.prototype.hasOwnProperty;e.exports=o},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(61);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(62);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"===typeof n.Node?e instanceof n.Node:"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName))}e.exports=r},function(e,t,n){"use strict";function r(e){try{e.focus()}catch(e){}}e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),l=n.n(c),s=n(1),f=n.n(s),p=n(68),d=n.n(p),h=n(25),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<BrowserRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { BrowserRouter as Router }`.")},t.prototype.render=function(){return l.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(l.a.Component);m.propTypes={basename:f.a.string,forceRefresh:f.a.bool,getUserConfirmation:f.a.func,keyLength:f.a.number,children:f.a.node},t.a=m},function(e,t,n){"use strict";var r=n(18),o=n(66),a=n(67);e.exports=function(){function e(e,t,n,r,i,u){u!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e,t,n,r,a,i,u,c){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,a,i,u,c],f=0;l=new Error(t.replace(/%s/g,function(){return s[f++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(5),u=r(i),c=n(8),l=r(c),s=n(23),f=n(14),p=n(24),d=r(p),h=n(34),m=function(){try{return window.history.state||{}}catch(e){return{}}},y=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,l.default)(h.canUseDOM,"Browser history needs a DOM");var t=window.history,n=(0,h.supportsHistory)(),r=!(0,h.supportsPopStateOnHashChange)(),i=e.forceRefresh,c=void 0!==i&&i,p=e.getUserConfirmation,y=void 0===p?h.getConfirmation:p,v=e.keyLength,b=void 0===v?6:v,g=e.basename?(0,f.stripTrailingSlash)((0,f.addLeadingSlash)(e.basename)):"",w=function(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname,i=o.search,c=o.hash,l=a+i+c;return(0,u.default)(!g||(0,f.hasBasename)(l,g),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+l+'" to begin with "'+g+'".'),g&&(l=(0,f.stripBasename)(l,g)),(0,s.createLocation)(l,r,n)},E=function(){return Math.random().toString(36).substr(2,b)},O=(0,d.default)(),T=function(e){a(z,e),z.length=t.length,O.notifyListeners(z.location,z.action)},_=function(e){(0,h.isExtraneousPopstateEvent)(e)||k(w(e.state))},C=function(){k(w(m()))},x=!1,k=function(e){if(x)x=!1,T();else{O.confirmTransitionTo(e,"POP",y,function(t){t?T({action:"POP",location:e}):N(e)})}},N=function(e){var t=z.location,n=P.indexOf(t.key);-1===n&&(n=0);var r=P.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(x=!0,R(o))},j=w(m()),P=[j.key],I=function(e){return g+(0,f.createPath)(e)},S=function(e,r){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var a=(0,s.createLocation)(e,r,E(),z.location);O.confirmTransitionTo(a,"PUSH",y,function(e){if(e){var r=I(a),o=a.key,i=a.state;if(n)if(t.pushState({key:o,state:i},null,r),c)window.location.href=r;else{var l=P.indexOf(z.location.key),s=P.slice(0,-1===l?0:l+1);s.push(a.key),P=s,T({action:"PUSH",location:a})}else(0,u.default)(void 0===i,"Browser history cannot push state in browsers that do not support HTML5 history"),window.location.href=r}})},A=function(e,r){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var a=(0,s.createLocation)(e,r,E(),z.location);O.confirmTransitionTo(a,"REPLACE",y,function(e){if(e){var r=I(a),o=a.key,i=a.state;if(n)if(t.replaceState({key:o,state:i},null,r),c)window.location.replace(r);else{var l=P.indexOf(z.location.key);-1!==l&&(P[l]=a.key),T({action:"REPLACE",location:a})}else(0,u.default)(void 0===i,"Browser history cannot replace state in browsers that do not support HTML5 history"),window.location.replace(r)}})},R=function(e){t.go(e)},D=function(){return R(-1)},L=function(){return R(1)},M=0,U=function(e){M+=e,1===M?((0,h.addEventListener)(window,"popstate",_),r&&(0,h.addEventListener)(window,"hashchange",C)):0===M&&((0,h.removeEventListener)(window,"popstate",_),r&&(0,h.removeEventListener)(window,"hashchange",C))},H=!1,F=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=O.setPrompt(e);return H||(U(1),H=!0),function(){return H&&(H=!1,U(-1)),t()}},B=function(e){var t=O.appendListener(e);return U(1),function(){U(-1),t()}},z={length:t.length,action:"POP",location:j,createHref:I,push:S,replace:A,go:R,goBack:D,goForward:L,block:F,listen:B};return z};t.default=y},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),l=n.n(c),s=n(1),f=n.n(s),p=n(70),d=n.n(p),h=n(25),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<HashRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { HashRouter as Router }`.")},t.prototype.render=function(){return l.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(l.a.Component);m.propTypes={basename:f.a.string,getUserConfirmation:f.a.func,hashType:f.a.oneOf(["hashbang","noslash","slash"]),children:f.a.node}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(5),i=r(a),u=n(8),c=r(u),l=n(23),s=n(14),f=n(24),p=r(f),d=n(34),h={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+(0,s.stripLeadingSlash)(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:s.stripLeadingSlash,decodePath:s.addLeadingSlash},slash:{encodePath:s.addLeadingSlash,decodePath:s.addLeadingSlash}},m=function(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)},y=function(e){return window.location.hash=e},v=function(e){var t=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,t>=0?t:0)+"#"+e)},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.default)(d.canUseDOM,"Hash history needs a DOM");var t=window.history,n=(0,d.supportsGoWithoutReloadUsingHash)(),r=e.getUserConfirmation,a=void 0===r?d.getConfirmation:r,u=e.hashType,f=void 0===u?"slash":u,b=e.basename?(0,s.stripTrailingSlash)((0,s.addLeadingSlash)(e.basename)):"",g=h[f],w=g.encodePath,E=g.decodePath,O=function(){var e=E(m());return(0,i.default)(!b||(0,s.hasBasename)(e,b),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+e+'" to begin with "'+b+'".'),b&&(e=(0,s.stripBasename)(e,b)),(0,l.createLocation)(e)},T=(0,p.default)(),_=function(e){o(W,e),W.length=t.length,T.notifyListeners(W.location,W.action)},C=!1,x=null,k=function(){var e=m(),t=w(e);if(e!==t)v(t);else{var n=O(),r=W.location;if(!C&&(0,l.locationsAreEqual)(r,n))return;if(x===(0,s.createPath)(n))return;x=null,N(n)}},N=function(e){if(C)C=!1,_();else{T.confirmTransitionTo(e,"POP",a,function(t){t?_({action:"POP",location:e}):j(e)})}},j=function(e){var t=W.location,n=A.lastIndexOf((0,s.createPath)(t));-1===n&&(n=0);var r=A.lastIndexOf((0,s.createPath)(e));-1===r&&(r=0);var o=n-r;o&&(C=!0,M(o))},P=m(),I=w(P);P!==I&&v(I);var S=O(),A=[(0,s.createPath)(S)],R=function(e){return"#"+w(b+(0,s.createPath)(e))},D=function(e,t){(0,i.default)(void 0===t,"Hash history cannot push state; it is ignored");var n=(0,l.createLocation)(e,void 0,void 0,W.location);T.confirmTransitionTo(n,"PUSH",a,function(e){if(e){var t=(0,s.createPath)(n),r=w(b+t);if(m()!==r){x=t,y(r);var o=A.lastIndexOf((0,s.createPath)(W.location)),a=A.slice(0,-1===o?0:o+1);a.push(t),A=a,_({action:"PUSH",location:n})}else(0,i.default)(!1,"Hash history cannot PUSH the same path; a new entry will not be added to the history stack"),_()}})},L=function(e,t){(0,i.default)(void 0===t,"Hash history cannot replace state; it is ignored");var n=(0,l.createLocation)(e,void 0,void 0,W.location);T.confirmTransitionTo(n,"REPLACE",a,function(e){if(e){var t=(0,s.createPath)(n),r=w(b+t);m()!==r&&(x=t,v(r));var o=A.indexOf((0,s.createPath)(W.location));-1!==o&&(A[o]=t),_({action:"REPLACE",location:n})}})},M=function(e){(0,i.default)(n,"Hash history go(n) causes a full page reload in this browser"),t.go(e)},U=function(){return M(-1)},H=function(){return M(1)},F=0,B=function(e){F+=e,1===F?(0,d.addEventListener)(window,"hashchange",k):0===F&&(0,d.removeEventListener)(window,"hashchange",k)},z=!1,V=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=T.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},q=function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}},W={length:t.length,action:"POP",location:S,createHref:R,push:D,replace:L,go:M,goBack:U,goForward:H,block:V,listen:q};return W};t.default=b},function(e,t,n){"use strict";var r=n(72);r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),l=n.n(c),s=n(1),f=n.n(s),p=n(73),d=n.n(p),h=n(26),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<MemoryRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { MemoryRouter as Router }`.")},t.prototype.render=function(){return l.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(l.a.Component);m.propTypes={initialEntries:f.a.array,initialIndex:f.a.number,getUserConfirmation:f.a.func,keyLength:f.a.number,children:f.a.node},t.a=m},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(5),u=r(i),c=n(14),l=n(23),s=n(24),f=r(s),p=function(e,t,n){return Math.min(Math.max(e,t),n)},d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.getUserConfirmation,n=e.initialEntries,r=void 0===n?["/"]:n,i=e.initialIndex,s=void 0===i?0:i,d=e.keyLength,h=void 0===d?6:d,m=(0,f.default)(),y=function(e){a(j,e),j.length=j.entries.length,m.notifyListeners(j.location,j.action)},v=function(){return Math.random().toString(36).substr(2,h)},b=p(s,0,r.length-1),g=r.map(function(e){return"string"===typeof e?(0,l.createLocation)(e,void 0,v()):(0,l.createLocation)(e,void 0,e.key||v())}),w=c.createPath,E=function(e,n){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var r=(0,l.createLocation)(e,n,v(),j.location);m.confirmTransitionTo(r,"PUSH",t,function(e){if(e){var t=j.index,n=t+1,o=j.entries.slice(0);o.length>n?o.splice(n,o.length-n,r):o.push(r),y({action:"PUSH",location:r,index:n,entries:o})}})},O=function(e,n){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var r=(0,l.createLocation)(e,n,v(),j.location);m.confirmTransitionTo(r,"REPLACE",t,function(e){e&&(j.entries[j.index]=r,y({action:"REPLACE",location:r}))})},T=function(e){var n=p(j.index+e,0,j.entries.length-1),r=j.entries[n];m.confirmTransitionTo(r,"POP",t,function(e){e?y({action:"POP",location:r,index:n}):y()})},_=function(){return T(-1)},C=function(){return T(1)},x=function(e){var t=j.index+e;return t>=0&&t<j.entries.length},k=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return m.setPrompt(e)},N=function(e){return m.appendListener(e)},j={length:g.length,action:"POP",location:g[b],index:b,entries:g,createHref:w,push:E,replace:O,go:T,goBack:_,goForward:C,canGo:x,block:k,listen:N};return j};t.default=d},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(36),l=n(35),s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){var t=e.to,n=e.exact,o=e.strict,i=e.location,u=e.activeClassName,p=e.className,d=e.activeStyle,h=e.style,m=e.isActive,y=e.ariaCurrent,v=r(e,["to","exact","strict","location","activeClassName","className","activeStyle","style","isActive","ariaCurrent"]);return a.a.createElement(c.a,{path:"object"===("undefined"===typeof t?"undefined":f(t))?t.pathname:t,exact:n,strict:o,location:i,children:function(e){var n=e.location,r=e.match,o=!!(m?m(r,n):r);return a.a.createElement(l.a,s({to:t,className:o?[p,u].filter(function(e){return e}).join(" "):p,style:o?s({},h,d):h,"aria-current":o&&y},v))}})};p.propTypes={to:l.a.propTypes.to,exact:u.a.bool,strict:u.a.bool,location:u.a.object,activeClassName:u.a.string,className:u.a.string,activeStyle:u.a.object,style:u.a.object,isActive:u.a.func,ariaCurrent:u.a.oneOf(["page","step","location","true"])},p.defaultProps={activeClassName:"active",ariaCurrent:"true"}},function(e,t,n){function r(e,t){for(var n,r=[],o=0,a=0,i="",u=t&&t.delimiter||"/";null!=(n=b.exec(e));){var s=n[0],f=n[1],p=n.index;if(i+=e.slice(a,p),a=p+s.length,f)i+=f[1];else{var d=e[a],h=n[2],m=n[3],y=n[4],v=n[5],g=n[6],w=n[7];i&&(r.push(i),i="");var E=null!=h&&null!=d&&d!==h,O="+"===g||"*"===g,T="?"===g||"*"===g,_=n[2]||u,C=y||v;r.push({name:m||o++,prefix:h||"",delimiter:_,optional:T,repeat:O,partial:E,asterisk:!!w,pattern:C?l(C):w?".*":"[^"+c(_)+"]+?"})}}return a<e.length&&(i+=e.substr(a)),i&&r.push(i),r}function o(e,t){return u(r(e,t))}function a(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function i(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function u(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"===typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var o="",u=n||{},c=r||{},l=c.pretty?a:encodeURIComponent,s=0;s<e.length;s++){var f=e[s];if("string"!==typeof f){var p,d=u[f.name];if(null==d){if(f.optional){f.partial&&(o+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(v(d)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+JSON.stringify(d)+"`");if(0===d.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var h=0;h<d.length;h++){if(p=l(d[h]),!t[s].test(p))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+JSON.stringify(p)+"`");o+=(0===h?f.prefix:f.delimiter)+p}}else{if(p=f.asterisk?i(d):l(d),!t[s].test(p))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+p+'"');o+=f.prefix+p}}else o+=f}return o}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function s(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function p(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return s(e,t)}function d(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(y(e[o],t,n).source);return s(new RegExp("(?:"+r.join("|")+")",f(n)),t)}function h(e,t,n){return m(r(e,n),t,n)}function m(e,t,n){v(t)||(n=t||n,t=[]),n=n||{};for(var r=n.strict,o=!1!==n.end,a="",i=0;i<e.length;i++){var u=e[i];if("string"===typeof u)a+=c(u);else{var l=c(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+l+p+")*"),p=u.optional?u.partial?l+"("+p+")?":"(?:"+l+"("+p+"))?":l+"("+p+")",a+=p}}var d=c(n.delimiter||"/"),h=a.slice(-d.length)===d;return r||(a=(h?a.slice(0,-d.length):a)+"(?:"+d+"(?=$))?"),a+=o?"$":r&&h?"":"(?="+d+"|$)",s(new RegExp("^"+a,f(n)),t)}function y(e,t,n){return v(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?p(e,t):v(e)?d(e,t,n):h(e,t,n)}var v=n(76);e.exports=y,e.exports.parse=r,e.exports.compile=o,e.exports.tokensToFunction=u,e.exports.tokensToRegExp=m;var b=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=n(78);r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(8),f=n.n(s),p=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.enable=function(e){this.unblock&&this.unblock(),this.unblock=this.context.router.history.block(e)},t.prototype.disable=function(){this.unblock&&(this.unblock(),this.unblock=null)},t.prototype.componentWillMount=function(){f()(this.context.router,"You should not use <Prompt> outside a <Router>"),this.props.when&&this.enable(this.props.message)},t.prototype.componentWillReceiveProps=function(e){e.when?this.props.when&&this.props.message===e.message||this.enable(e.message):this.disable()},t.prototype.componentWillUnmount=function(){this.disable()},t.prototype.render=function(){return null},t}(u.a.Component);p.propTypes={when:l.a.bool,message:l.a.oneOfType([l.a.func,l.a.string]).isRequired},p.defaultProps={when:!0},p.contextTypes={router:l.a.shape({history:l.a.shape({block:l.a.func.isRequired}).isRequired}).isRequired},t.a=p},function(e,t,n){"use strict";var r=n(80);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(5),f=n.n(s),p=n(8),d=n.n(p),h=n(81),m=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.isStatic=function(){return this.context.router&&this.context.router.staticContext},t.prototype.componentWillMount=function(){d()(this.context.router,"You should not use <Redirect> outside a <Router>"),this.isStatic()&&this.perform()},t.prototype.componentDidMount=function(){this.isStatic()||this.perform()},t.prototype.componentDidUpdate=function(e){var t=Object(h.a)(e.to),n=Object(h.a)(this.props.to);if(Object(h.b)(t,n))return void f()(!1,"You tried to redirect to the same route you're currently on: \""+n.pathname+n.search+'"');this.perform()},t.prototype.perform=function(){var e=this.context.router.history,t=this.props,n=t.push,r=t.to;n?e.push(r):e.replace(r)},t.prototype.render=function(){return null},t}(u.a.Component);m.propTypes={push:l.a.bool,from:l.a.string,to:l.a.oneOfType([l.a.string,l.a.object]).isRequired},m.defaultProps={push:!1},m.contextTypes={router:l.a.shape({history:l.a.shape({push:l.a.func.isRequired,replace:l.a.func.isRequired}).isRequired,staticContext:l.a.object}).isRequired},t.a=m},function(e,t,n){"use strict";var r=(n(82),n(83),n(84),n(19));n.d(t,"a",function(){return r.a}),n.d(t,"b",function(){return r.b});n(15)},function(e,t,n){"use strict";var r=n(5),o=(n.n(r),n(8));n.n(o),n(19),n(15),n(28),n(38),"function"===typeof Symbol&&Symbol.iterator,Object.assign},function(e,t,n){"use strict";var r=n(5),o=(n.n(r),n(8)),a=(n.n(o),n(19),n(15));n(28),n(38),Object.assign,a.f,a.a,a.a,a.a},function(e,t,n){"use strict";var r=n(5);n.n(r),n(15),n(19),n(28),"function"===typeof Symbol&&Symbol.iterator,Object.assign},function(e,t,n){"use strict";var r=n(86);r.a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=n(5),c=n.n(u),l=n(8),s=n.n(l),f=n(0),p=n.n(f),d=n(1),h=n.n(d),m=n(14),y=(n.n(m),n(26)),v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b=function(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,a=e.hash,i=void 0===a?"":a;return{pathname:n,search:"?"===o?"":o,hash:"#"===i?"":i}},g=function(e,t){return e?v({},t,{pathname:Object(m.addLeadingSlash)(e)+t.pathname}):t},w=function(e,t){if(!e)return t;var n=Object(m.addLeadingSlash)(e);return 0!==t.pathname.indexOf(n)?t:v({},t,{pathname:t.pathname.substr(n.length)})},E=function(e){return"string"===typeof e?Object(m.parsePath)(e):b(e)},O=function(e){return"string"===typeof e?e:Object(m.createPath)(e)},T=function(e){return function(){s()(!1,"You cannot %s with <StaticRouter>",e)}},_=function(){},C=function(e){function t(){var n,r,i;o(this,t);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return n=r=a(this,e.call.apply(e,[this].concat(c))),r.createHref=function(e){return Object(m.addLeadingSlash)(r.props.basename+O(e))},r.handlePush=function(e){var t=r.props,n=t.basename,o=t.context;o.action="PUSH",o.location=g(n,E(e)),o.url=O(o.location)},r.handleReplace=function(e){var t=r.props,n=t.basename,o=t.context;o.action="REPLACE",o.location=g(n,E(e)),o.url=O(o.location)},r.handleListen=function(){return _},r.handleBlock=function(){return _},i=n,a(r,i)}return i(t,e),t.prototype.getChildContext=function(){return{router:{staticContext:this.props.context}}},t.prototype.componentWillMount=function(){c()(!this.props.history,"<StaticRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { StaticRouter as Router }`.")},t.prototype.render=function(){var e=this.props,t=e.basename,n=(e.context,e.location),o=r(e,["basename","context","location"]),a={createHref:this.createHref,action:"POP",location:w(t,E(n)),push:this.handlePush,replace:this.handleReplace,go:T("go"),goBack:T("goBack"),goForward:T("goForward"),listen:this.handleListen,block:this.handleBlock};return p.a.createElement(y.a,v({},o,{history:a}))},t}(p.a.Component);C.propTypes={basename:h.a.string,context:h.a.object.isRequired,location:h.a.oneOfType([h.a.string,h.a.object])},C.defaultProps={basename:"",location:"/"},C.childContextTypes={router:h.a.object.isRequired},t.a=C},function(e,t,n){"use strict";var r=n(88);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(5),f=n.n(s),p=n(8),d=n.n(p),h=n(27),m=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.componentWillMount=function(){d()(this.context.router,"You should not use <Switch> outside a <Router>")},t.prototype.componentWillReceiveProps=function(e){f()(!(e.location&&!this.props.location),'<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),f()(!(!e.location&&this.props.location),'<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.')},t.prototype.render=function(){var e=this.context.router.route,t=this.props.children,n=this.props.location||e.location,r=void 0,o=void 0;return u.a.Children.forEach(t,function(t){if(u.a.isValidElement(t)){var a=t.props,i=a.path,c=a.exact,l=a.strict,s=a.sensitive,f=a.from,p=i||f;null==r&&(o=t,r=p?Object(h.a)(n.pathname,{path:p,exact:c,strict:l,sensitive:s}):e.match)}}),r?u.a.cloneElement(o,{location:n,computedMatch:r}):null},t}(u.a.Component);m.contextTypes={router:l.a.shape({route:l.a.object.isRequired}).isRequired},m.propTypes={children:l.a.node,location:l.a.object},t.a=m},function(e,t,n){"use strict";var r=n(27);r.a},function(e,t,n){"use strict";var r=n(91);t.a=r.a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(92),l=n.n(c),s=n(37),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p=function(e){var t=function(t){var n=t.wrappedComponentRef,o=r(t,["wrappedComponentRef"]);return a.a.createElement(s.a,{render:function(t){return a.a.createElement(e,f({},o,t,{ref:n}))}})};return t.displayName="withRouter("+(e.displayName||e.name)+")",t.WrappedComponent=e,t.propTypes={wrappedComponentRef:u.a.func},l()(t,e)};t.a=p},function(e,t,n){!function(t,n){e.exports=n()}(0,function(){"use strict";var e={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},t={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},n=Object.defineProperty,r=Object.getOwnPropertyNames,o=Object.getOwnPropertySymbols,a=Object.getOwnPropertyDescriptor,i=Object.getPrototypeOf,u=i&&i(Object);return function c(l,s,f){if("string"!==typeof s){if(u){var p=i(s);p&&p!==u&&c(l,p,f)}var d=r(s);o&&(d=d.concat(o(s)));for(var h=0;h<d.length;++h){var m=d[h];if(!e[m]&&!t[m]&&(!f||!f[m])){var y=a(s,m);try{n(l,m,y)}catch(e){}}}return l}return l}})},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(94),l=n(96),s=n(147),f=n(4),p=n(3),d=n(149),h=(n.n(d),n(150)),m=(n.n(h),function(e){var t=e.className,n=r(e,["className"]),o=n.location,i=o.search;"?"===i[0]&&(i=i.substring(1));for(var d=i.split("&"),h={},m=0;m<d.length;m++){var y=d[m].split("=");h[decodeURIComponent(y[0])]=decodeURIComponent(y[1])}var v=h.fullscreen,b=Object(u.a)("app",t),g=a.a.createElement("div",{className:"app-container"},a.a.createElement(c.a,{className:"app-aside"}),a.a.createElement(l.a,{className:"app-main"}));return v&&(b=Object(u.a)("app","fullscreen",t),g=a.a.createElement("div",{className:"app-container"},a.a.createElement(l.a,{className:"app-main"}))),!!window.MSInputMethodContext&&!!document.documentMode&&(b=Object(u.a)(b,"ie11")),a.a.createElement("div",{className:b},a.a.createElement(s.a,{className:"app-navbar"}),a.a.createElement(f.a,{top:p.a,right:p.b,bottom:p.d,left:p.b},g))}),y=Object(i.f)(m)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return l});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(95),l=(n.n(c),function(e){var t=e.className,n=r(e,["className"]),o=Object(u.a)("aside",t);return a.a.createElement("aside",Object.assign({className:o},n),a.a.createElement("div",{className:"aside-mainlinks"},a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement(i.b,{className:"title-s",to:"/"},"Dashboard")),a.a.createElement("li",null,a.a.createElement(i.b,{className:"title-s",to:"/projects"},"Projects")))),a.a.createElement("div",{className:"aside-additionallinks"},a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement("a",{className:"caption-s",href:"https://github.com/eclipse/sirius-components/issues",target:"_blank",rel:"noopener noreferrer"},"Report an issue")),a.a.createElement("li",null,a.a.createElement("a",{className:"caption-s",href:"https://stackoverflow.com/questions/tagged/sirius",target:"_blank",rel:"noopener noreferrer"},"Help")))))})},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(97),l=n(106),s=n(107),f=n(113),p=n(118),d=n(4),h=n(3),m=n(137),y=n(141),v=n(143),b=n(145),g=function(e){var t=e.className,n=r(e,["className"]),o=Object(u.a)("main",t);return a.a.createElement("main",Object.assign({className:o},n),a.a.createElement(d.a,{right:h.a,left:h.a},a.a.createElement(l.a,null,a.a.createElement(i.e,null,a.a.createElement(i.d,{exact:!0,path:"/",render:w}),a.a.createElement(i.d,{exact:!0,path:"/projects",render:E}),a.a.createElement(i.d,{exact:!0,path:"/projects/:projectName",render:O}),a.a.createElement(i.d,{exact:!0,path:"/newproject",render:T})))))},w=function(){return a.a.createElement(m.a,null,function(e,t,n){return a.a.createElement(c.a,{stateId:e,error:t,dashboard:n})})},E=function(){return a.a.createElement(y.a,null,function(e,t,n){return a.a.createElement(s.a,{stateId:e,error:t,projects:n})})},O=function(){return a.a.createElement(b.a,null,function(e,t,n,r,o,i,u){return a.a.createElement(p.a,{stateId:e,error:t,project:n,pageIdentifier:r,onTabClick:o,onActivityClick:i,onNewDescription:u})})},T=function(){return a.a.createElement(v.a,null,function(e,t,n,r,o,i,u,c){return a.a.createElement(f.a,{stateId:e,errors:t,isValid:n,onSubmit:r,name:o,nameIsValid:i,nameErrors:u,onNameChange:c})})}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),l=n(2),s=n(12),f=n(16),p=n(100),d=n(11),h=n(103),m=n(39),y=n(105),v=(n.n(y),{stateId:c.a.string.isRequired}),b=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.dashboard,i=r(e,["className","stateId","error","dashboard"]);switch(n){case m.h:return g(t,i);case m.b:return w(t,o,i);case m.a:return E(t,a,i);default:var u={title:"The dashboard is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:s.c};return w(t,u,i)}};b.propTypes=v;var g=function(e,t){return a.a.createElement(d.a,Object.assign({className:e},t))},w=function(e,t,n){return a.a.createElement(f.a,Object.assign({className:e},t,n))},E=function(e,t,n){var r=Object(l.a)("dashboardview",e),o=t.projectsCount,u=t.viewpointsCount,c=t.metamodelsCount;return a.a.createElement("div",Object.assign({className:r},n),a.a.createElement("div",{className:"info"},a.a.createElement(p.a,{className:"projectsinfo",title:o.toString(),message:"Projects"}),a.a.createElement(p.a,{className:"viewpointsinfo",title:u.toString(),message:"Viewpoints"}),a.a.createElement(p.a,{className:"metamodelsinfo",title:c.toString(),message:"Metamodels"})),a.a.createElement("div",{className:"projects"},a.a.createElement("div",{className:"projects-body"},a.a.createElement(i.b,{to:"/newproject"},a.a.createElement(p.a,{className:"newprojectinfo",title:"+",message:"New Project",to:""})),t.projects.map(function(e){return a.a.createElement(h.a,{key:e.name,project:e})}))))}},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(4),f=n(3),p=n(101),d=(n.n(p),{title:u.a.string.isRequired,message:u.a.string}),h=function(e){var t=e.className,n=e.title,o=e.message,i=r(e,["className","title","message"]),u=Object(c.a)("infocard",t);return a.a.createElement(l.a,Object.assign({},i,{className:u}),a.a.createElement(s.a,{top:f.a,right:f.a,bottom:f.a,left:f.a},a.a.createElement("div",{className:"infocard-container"},a.a.createElement("h1",{className:"infocard-title"},n),a.a.createElement("p",{className:"infocard-message"},o))))};h.propTypes=d},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return m});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),l=n(9),s=n(4),f=n(3),p=n(6),d=n(7),h={project:c.a.object.isRequired},m=function(e){var t=e.project,n=r(e,["project"]);return a.a.createElement(l.a,Object.assign({className:"projectsummarycard"},n),a.a.createElement(i.b,{to:"/projects/"+t.name},a.a.createElement(s.a,{top:f.b,right:f.b,bottom:f.b,left:f.b},a.a.createElement(p.a,{weight:d.j,size:d.f,hideOverflow:!0},t.name))),a.a.createElement(s.a,{top:f.c,right:f.b,bottom:f.b,left:f.b},a.a.createElement(p.a,null,t.description||"No description provided")))};m.propTypes=h},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return f});var i=n(0),u=n.n(i),c=n(12),l=n(16),s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),f=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={error:null},n}return a(t,e),s(t,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e})}},{key:"render",value:function(){var e=this.state.error;return e?u.a.createElement(l.a,{code:c.a,title:"An unexpected error has appeared during the rendering",message:e.message}):this.props.children}}]),t}(i.Component)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(12),s=n(108),f=n(16),p=n(11),d=n(110),h=n(40),m={stateId:u.a.string.isRequired},y=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.projects,i=r(e,["className","stateId","error","projects"]);switch(n){case h.g:return v(t,i);case h.a:return b(t,o,i);case h.h:return g(t,i);case h.i:return w(t,a,i);default:var u={title:"The projects list is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:l.c};return b(t,u,i)}};y.propTypes=m;var v=function(e,t){var n=Object(c.a)("",e);return a.a.createElement(p.a,Object.assign({className:n},t))},b=function(e,t,n){var r=Object(c.a)("",e);return a.a.createElement(f.a,Object.assign({className:r},t,n))},g=function(e,t){var n=Object(c.a)("",e);return a.a.createElement(s.a,Object.assign({title:"You haven't created any projects yet",message:"Once you start creating new projects, you will be able to see them here",className:n},t))},w=function(e,t,n){var r=Object(c.a)("listprojectsview",e);return a.a.createElement("div",{className:r},a.a.createElement(d.a,Object.assign({projects:t},n)))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(4),f=n(3),p=n(109),d=(n.n(p),{title:u.a.string.isRequired,message:u.a.string.isRequired}),h=function(e){var t=e.className,n=e.title,o=e.message,i=r(e,["className","title","message"]),u=Object(c.a)("blankcard",t);return a.a.createElement(l.a,Object.assign({},i,{className:u}),a.a.createElement(s.a,{top:f.a,right:f.a,left:f.a,bottom:f.a},a.a.createElement("div",{className:"blankcard-container"},a.a.createElement(s.a,{bottom:f.b},a.a.createElement("h1",{className:"title-l"},n)),a.a.createElement("p",null,o))))};h.propTypes=d},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return w});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),l=n(2),s=n(9),f=n(20),p=n(13),d=n(4),h=n(3),m=n(6),y=n(7),v=n(112),b=(n.n(v),{projects:c.a.array.isRequired}),g={projects:[]},w=function(e){var t=e.className,n=e.projects,o=r(e,["className","projects"]),u=Object(l.a)("projectslistcard",t);return a.a.createElement(s.a,Object.assign({className:u},o),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(m.a,{weight:y.j,size:y.f},"Projects")),a.a.createElement(f.c,{kind:p.a},n.map(function(e){return a.a.createElement(i.b,{to:"projects/"+e.name,key:e.name},a.a.createElement(f.e,{kind:p.d},a.a.createElement("div",null,a.a.createElement(f.d,null,e.name),a.a.createElement(f.b,null,e.description||"No description provided"))))})))};w.propTypes=b,w.defaultProps=g},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return v});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(10),l=n(2),s=n(12),f=n(16),p=n(114),d=n(43),h=n(117),m=(n.n(h),{stateId:u.a.string.isRequired,errors:u.a.arrayOf(u.a.string).isRequired,isValid:u.a.bool.isRequired,onSubmit:u.a.func.isRequired,name:u.a.string.isRequired,nameIsValid:u.a.bool.isRequired,nameErrors:u.a.arrayOf(u.a.string).isRequired,onNameChange:u.a.func.isRequired}),y={errors:[],isValid:!1,onSubmit:function(){},name:"",nameIsValid:!1,nameErrors:[],onNameChange:function(){}},v=function(e){var t=e.className,n=e.stateId,o=e.errors,a=e.isValid,i=e.onSubmit,u=e.name,c=e.nameIsValid,l=e.nameErrors,f=e.onNameChange,p=r(e,["className","stateId","errors","isValid","onSubmit","name","nameIsValid","nameErrors","onNameChange"]);switch(n){case d.h:case d.f:return b(t,o,a,i,u,c,l,f);case d.i:return g(u);default:var h={title:"The new project page is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:s.c};return w(t,h,p)}};v.propTypes=m,v.defaultProps=y;var b=function(e,t,n,r,o,i,u,c){var s=Object(l.a)("newprojectview",e);return a.a.createElement("div",{className:s},a.a.createElement(p.a,{errors:t,isValid:n,onSubmit:r,name:o,nameIsValid:i,nameErrors:u,onNameChange:c}))},g=function(e){return a.a.createElement(c.c,{to:"/projects/"+e})},w=function(e,t,n){var r=Object(l.a)("",e);return a.a.createElement(f.a,Object.assign({className:r},t,n))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(2),u=n(29),c=n(41),l=n(9),s=n(42),f=n(4),p=n(3),d=n(6),h=n(7),m={},y=function(e){var t=e.className,n=e.errors,o=e.isValid,m=e.onSubmit,y=e.name,v=e.nameIsValid,b=e.nameErrors,g=e.onNameChange,w=r(e,["className","errors","isValid","onSubmit","name","nameIsValid","nameErrors","onNameChange"]),E=Object(i.a)("newprojectcard",t),O="";return!v&&b.length>0&&(O="fielderror"),a.a.createElement(l.a,Object.assign({className:E},w),a.a.createElement(f.a,{top:p.b,right:p.b,bottom:p.b,left:p.b},a.a.createElement(d.a,{weight:h.j,size:h.f,hideOverflow:!0},"New Project")),a.a.createElement(l.b,null),a.a.createElement(s.f,{onSubmit:m},a.a.createElement(s.d,null,n.map(function(e){return a.a.createElement(s.c,{key:e},e)})),a.a.createElement(s.e,null,a.a.createElement(s.g,{htmlFor:"name"},"Name"),a.a.createElement(s.b,null,"The name of the project can only contain letters and numbers separated by dots, dashes or underscores."),a.a.createElement(s.h,{id:"name",name:"name",className:O,placeholder:"Enter the name",value:y,onChange:g}),a.a.createElement(s.d,null,b.map(function(e){return a.a.createElement(s.c,{key:e},e)}))),a.a.createElement(s.a,null,a.a.createElement(u.a,{kind:c.c,disabled:!o},"Create Project"))))};y.propTypes=m},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(12),s=n(16),f=n(11),p=n(119),d=n(129),h=n(134),m=n(135),y=n(44),v=n(136),b=(n.n(v),{stateId:u.a.string}),g=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.project,i=e.pageIdentifier,u=e.onTabClick,c=e.onActivityClick,s=e.onNewDescription,f=r(e,["className","stateId","error","project","pageIdentifier","onTabClick","onActivityClick","onNewDescription"]);switch(n){case y.i:return w(t,f);case y.a:return E(t,o,f);case y.j:return O(t,a,i,u,c,s,f);default:var p={title:"The project is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:l.c};return E(t,p,f)}};g.propTypes=b;var w=function(e,t){return T(e,{},void 0,function(){},function(){},function(){},!0,t)},E=function(e,t,n){var r=Object(c.a)("",e);return a.a.createElement(s.a,Object.assign({className:r},t,n))},O=function(e,t,n,r,o,a,i){return T(e,t,n,r,o,a,!1,i)},T=function(e,t,n,r,o,i,u,l){var s=Object(c.a)("projectview",e);return a.a.createElement(f.c,{loading:u},a.a.createElement("div",{className:s},a.a.createElement(d.a,{name:t.name,description:t.description,onNewDescription:i}),a.a.createElement("div",{className:"projectview-main"},a.a.createElement("div",{className:"projectview-details"},a.a.createElement(m.a,{semanticResources:t.semanticResources}),a.a.createElement(h.a,{projectName:t.name,representations:t.representations})),a.a.createElement("div",{className:"projectview-workflow"},a.a.createElement(p.a,{projectName:t.name,pageIdentifier:n,pages:t.pages,sections:t.currentPageSections,onTabClick:r,onActivityClick:o})))))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return O});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(120),f=n(20),p=n(13),d=n(11),h=n(4),m=n(3),y=n(122),v=n(6),b=n(7),g=n(128),w=(n.n(g),{projectName:u.a.string.isRequired,pageIdentifier:u.a.string.isRequired,pages:u.a.array.isRequired,sections:u.a.array.isRequired,onTabClick:u.a.func,onActivityClick:u.a.func}),E={projectName:"",pageIdentifier:"",pages:[],sections:[],onTabClick:function(){},onActivityClick:function(){}},O=function(e){for(var t=e.className,n=e.projectName,o=e.pageIdentifier,i=e.pages,u=e.sections,s=e.onTabClick,f=e.onActivityClick,p=r(e,["className","projectName","pageIdentifier","pages","sections","onTabClick","onActivityClick"]),y=0,g=0;g<i.length;g++){i[g].identifier===o&&(y=g)}var w=void 0;i.length>0&&(w=a.a.createElement(_,{sections:u,projectName:n,pageIdentifier:o,onActivityClick:f}));var E=Object(c.a)("workflowcard",t);return a.a.createElement(l.a,Object.assign({},p,{className:E}),a.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},a.a.createElement(d.b,null,function(e){return a.a.createElement(v.a,{weight:b.j,size:b.f,loading:e,hideOverflow:!0},"Workflow")})),a.a.createElement(T,{pages:i,selectedTabIndex:y,onTabClick:s}),w)};O.propTypes=w,O.defaultProps=E;var T=function(e){var t=e.pages,n=e.selectedTabIndex,r=e.onTabClick;return 0===t.length?a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(d.b,null,function(e){return a.a.createElement(v.a,{loading:e},"No workflow pages found")})):a.a.createElement(y.a,{selectedTabIndex:n,tabs:t.map(function(e){return e.name}),onTabClick:r})},_=function(e){var t=e.sections,n=e.projectName,r=e.pageIdentifier,i=e.onActivityClick;return 0===t.length?a.a.createElement(C,null):t.map(function(e,u){return a.a.createElement(o.Fragment,{key:e.identifier},a.a.createElement(x,{key:e.identifier,projectName:n,pageIdentifier:r,section:e,onActivityClick:i}),u+1<t.length?a.a.createElement(l.b,null):null)})},C=function(){return a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,null,"No sections found in the workflow."))},x=function(e){var t=e.className,n=e.projectName,o=e.pageIdentifier,i=e.section,u=e.onActivityClick,l=r(e,["className","projectName","pageIdentifier","section","onActivityClick"]),s=Object(c.a)("section",t);return a.a.createElement("div",Object.assign({className:s},l),a.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,{weight:b.j,size:b.h,hideOverflow:!0},i.name)),a.a.createElement(k,{activities:i.activities,onActivityClick:u,projectName:n,pageIdentifier:o,sectionIdentifier:i.identifier}))},k=function(e){var t=e.activities,n=e.onActivityClick,r=e.projectName,o=e.pageIdentifier,i=e.sectionIdentifier;return 0===t.length?a.a.createElement(j,null):a.a.createElement(N,{activities:t,onActivityClick:n,projectName:r,pageIdentifier:o,sectionIdentifier:i})},N=function(e){var t=e.activities,n=e.onActivityClick,r=e.projectName,o=e.pageIdentifier,i=e.sectionIdentifier;return a.a.createElement(f.c,{kind:p.a},t.map(function(e){return a.a.createElement(f.e,{kind:p.b,key:e.identifier},a.a.createElement(f.d,null,e.name),a.a.createElement(f.a,null,a.a.createElement(s.a,{onClick:function(){return n(r,o,i,e.identifier)}})))}))},j=function(){return a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,null,"No activities in the section."))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return c});var o=n(0),a=n.n(o),i=n(2),u=n(121),c=(n.n(u),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("iconrun",t);return a.a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",className:o,height:"16",width:"16"},n),a.a.createElement("polygon",{points:"0,0 16,8 0,16"}))})},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return g});var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(2),f=n(6),p=n(7),d=n(123),h=n(125),m=n(127),y=(n.n(m),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),v={tabs:l.a.array.isRequired,onTabClick:l.a.func.isRequired,selectedTabIndex:l.a.number.isRequired,numberOfTabsDisplayed:l.a.number.isRequired},b={tabs:[],onTabClick:function(){},selectedTabIndex:0,numberOfTabsDisplayed:3},g=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleTabBarNavClick=n.handleTabBarNavClick.bind(n),n.handleTabClick=n.handleTabClick.bind(n),n.state=Object(h.b)(void 0,e,h.a.newInitializeAction()),n}return a(t,e),y(t,[{key:"dispatch",value:function(e,t){this.setState(function(t,n){return Object(h.b)(t,n,e)},t)}},{key:"handleTabBarNavClick",value:function(e){var t=e.target,n=t.getAttribute("data-side");if("previous"===n&&this.state.isPreviousAvailable){var r=h.a.newHandlePreviousAction();this.dispatch(r)}else if("next"===n&&this.state.isNextAvailable){var o=h.a.newHandleNextAction();this.dispatch(o)}}},{key:"handleTabClick",value:function(e,t){var n=this.props.onTabClick,r=h.a.newHandleTabSelectedAction(t);this.dispatch(r,function(){return n(t)})}},{key:"getTabBarNavClassNames",value:function(e,t){var n="tabbar-nav";return e?t&&(n=Object(s.a)("tabbar-nav","tabbar-nav--contain-selection")):n=Object(s.a)("tabbar-nav","tabbar-nav--disabled"),n}},{key:"renderTabs",value:function(e,t,n,r){for(var o=[],a=Math.min(e.length,t+r),i=t;i<a;i++){var c=e[i];o.push(u.a.createElement(d.a,{key:c,index:i,onClick:this.handleTabClick,selected:i===n},c))}return o}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.tabs,r=e.numberOfTabsDisplayed,o=this.state,a=o.index,i=o.isPreviousAvailable,c=o.isNextAvailable,l=o.selectedTabIndex,d=l<a,h=a+r<l+1,m=Object(s.a)("tabbar",t),y=this.getTabBarNavClassNames(i,d),v=this.getTabBarNavClassNames(c,h),b=this.renderTabs(n,a,l,r);return u.a.createElement("div",{className:m},u.a.createElement("div",{className:y,onClick:this.handleTabBarNavClick,"data-side":"previous"},u.a.createElement(f.a,{weight:p.j},"<")),u.a.createElement("div",{className:"tabbar-tabs"},b),u.a.createElement("div",{className:v,onClick:this.handleTabBarNavClick,"data-side":"next"},u.a.createElement(f.a,{weight:p.j},">")))}}]),t}(i.Component);g.propTypes=v,g.defaultProps=b},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return v});var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(2),f=n(6),p=n(7),d=n(124),h=(n.n(d),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),m={selected:l.a.bool.isRequired,index:l.a.number.isRequired,onClick:l.a.func.isRequired},y={selected:!1,onClick:function(){}},v=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleTabClick=n.handleTabClick.bind(n),n}return a(t,e),h(t,[{key:"handleTabClick",value:function(e){var t=this.props,n=t.index;(0,t.onClick)(e,n)}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.children,r=e.selected,o="tab";return r&&(o=Object(s.a)(o,"tab--selected")),o=Object(s.a)(o,t),u.a.createElement("div",{className:o,onClick:this.handleTabClick},u.a.createElement(f.a,{weight:p.j,size:p.h,hideOverflow:!0},n))}}]),t}(i.Component);v.propTypes=m,v.defaultProps=y},function(e,t){},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(126),a=function(e,t,n){switch(n.kind){case o.e:var r=i(t.tabs,0,t.selectedTabIndex,t.numberOfTabsDisplayed);return r.stateId=o.h,r;case o.b:var a=i(t.tabs,e.index+1,e.selectedTabIndex,t.numberOfTabsDisplayed);return a.stateId=o.g,a;case o.c:var u=i(t.tabs,e.index-1,e.selectedTabIndex,t.numberOfTabsDisplayed);return u.stateId=o.g,u;case o.d:var c=i(t.tabs,e.index,n.selectedTabIndex,t.numberOfTabsDisplayed);return c.stateId=o.g,c;default:return e}},i=function(e,t,n,r){return{index:t,isPreviousAvailable:t>0,isNextAvailable:e.length>t+r,selectedTabIndex:n}},u=function(){return{kind:o.e}},c=function(){return{kind:o.b}},l=function(){return{kind:o.c}},s=function(e){return{kind:o.d,selectedTabIndex:e}},f={newInitializeAction:u,newHandleNextAction:c,newHandlePreviousAction:l,newHandleTabSelectedAction:s},p=Object(r.a)(o.a,a,o.f)},function(e,t,n){"use strict";n.d(t,"f",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"g",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return l}),n.d(t,"a",function(){return s});var r="INITIAL__STATE",o="PRISTINE__STATE",a="MOVED__STATE",i="INITIALIZE__ACTION",u="HANDLE_NEXT__ACTION",c="HANDLE_PREVIOUS__ACTION",l="HANDLE_TAB_SELECTED__ACTION",s={INITIAL__STATE:{INITIALIZE__ACTION:[o]},PRISTINE__STATE:{HANDLE_NEXT__ACTION:[a],HANDLE_PREVIOUS__ACTION:[a],HANDLE_TAB_SELECTED__ACTION:[a]},MOVED__STATE:{HANDLE_NEXT__ACTION:[a],HANDLE_PREVIOUS__ACTION:[a],HANDLE_TAB_SELECTED__ACTION:[a]}}},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return T});var u=n(0),c=n.n(u),l=n(1),s=n.n(l),f=n(2),p=n(9),d=n(11),h=n(4),m=n(3),y=n(6),v=n(7),b=n(130),g=n(132),w=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),E={name:s.a.string.isRequired,description:s.a.string,onNewDescription:s.a.func.isRequired},O={name:"",onNewDescription:function(){}},T=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleEditClick=n.handleEditClick.bind(n),n.handleNewDescription=n.handleNewDescription.bind(n),n.state={isViewingDescription:!0},n}return i(t,e),w(t,[{key:"handleEditClick",value:function(){this.setState({isViewingDescription:!1})}},{key:"handleNewDescription",value:function(e){var t=this;this.setState({isViewingDescription:!0},function(){(0,t.props.onNewDescription)(e)})}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.name,o=e.description,a=(e.onNewDescription,r(e,["className","name","description","onNewDescription"])),i=this.state.isViewingDescription,u=Object(f.a)("projectheadercard",t);return c.a.createElement(p.a,Object.assign({className:u},a),c.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},c.a.createElement(d.b,null,function(e){return c.a.createElement(y.a,{weight:v.j,size:v.d,hideOverflow:!0,loading:e},n)})),c.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.c,left:m.b},i?c.a.createElement(g.a,{description:o||"No description provided",onEditClick:this.handleEditClick}):c.a.createElement(b.a,{description:o,onNewDescription:this.handleNewDescription})))}}]),t}(u.Component);T.propTypes=E,T.defaultProps=O},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return b});var i=n(0),u=n.n(i),c=n(1),l=n.n(c),s=n(29),f=n(42),p=n(4),d=n(3),h=n(131),m=(n.n(h),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),y={description:l.a.string.isRequired,onNewDescription:l.a.func.isRequired},v={description:""},b=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleDescriptionChange=n.handleDescriptionChange.bind(n),n.handleDoneClick=n.handleDoneClick.bind(n),n.state={description:e.description},n}return a(t,e),m(t,[{key:"handleDescriptionChange",value:function(e){var t=e.target.value;this.setState({description:t})}},{key:"handleDoneClick",value:function(){(0,this.props.onNewDescription)(this.state.description)}},{key:"render",value:function(){var e=this.state.description;return u.a.createElement("div",{className:"editdescription"},u.a.createElement(f.h,{value:e,onChange:this.handleDescriptionChange}),u.a.createElement(p.a,{left:d.b},u.a.createElement(s.a,{onClick:this.handleDoneClick},"Done")))}}]),t}(i.Component);b.propTypes=y,b.defaultProps=v},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(29),s=n(11),f=n(4),p=n(3),d=n(6),h=n(133),m=(n.n(h),{description:u.a.string.isRequired,onEditClick:u.a.func.isRequired}),y=function(e){var t=e.className,n=e.description,o=e.onEditClick,i=r(e,["className","description","onEditClick"]),u=Object(c.a)("viewdescription",t);return a.a.createElement("div",Object.assign({className:u},i),a.a.createElement(s.b,null,function(e){return a.a.createElement(a.a.Fragment,null,a.a.createElement(d.a,{className:"viewdescription-text",loading:e},n),a.a.createElement(f.a,{left:p.b},a.a.createElement(l.a,{onClick:o,loading:e},"Edit")))}))};y.propTypes=m},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(20),f=n(13),p=n(11),d=n(4),h=n(3),m=n(6),y=n(7),v={representations:u.a.array.isRequired},b={representations:[]},g=function(e){var t=e.className,n=e.projectName,o=e.representations,i=r(e,["className","projectName","representations"]),u=Object(c.a)("projectrepresentationslistcard",t);return a.a.createElement(l.a,Object.assign({className:u},i),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{weight:y.j,size:y.f,loading:e,hideOverflow:!0},"Representations")})),a.a.createElement(w,{projectName:n,representations:o}))};g.propTypes=v,g.defaultProps=b;var w=function(e){var t=e.projectName,n=e.representations;return n.length>0?a.a.createElement(E,{projectName:t,representations:n}):a.a.createElement(O,null)},E=function(e){var t=(e.projectName,e.representations);return a.a.createElement(s.c,{kind:f.a},t.map(function(e){return a.a.createElement(s.e,{kind:f.d,key:e.name},a.a.createElement("div",null,a.a.createElement(s.d,null,e.name),a.a.createElement(s.b,null,e.descriptionName)))}))},O=function(){return a.a.createElement(d.a,{top:h.c,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{loading:e},"No representation has been found on the project.")}))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),l=n(9),s=n(20),f=n(13),p=n(11),d=n(4),h=n(3),m=n(6),y=n(7),v={semanticResources:u.a.array.isRequired},b={semanticResources:[]},g=function(e){var t=e.className,n=e.semanticResources,o=r(e,["className","semanticResources"]),i=Object(c.a)("projectsemanticresourceslistcard",t);return a.a.createElement(l.a,Object.assign({className:i},o),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{weight:y.j,size:y.f,loading:e,hideOverflow:!0},"Semantic Resources")})),a.a.createElement(w,{semanticResources:n}))};g.propTypes=v,g.defaultProps=b;var w=function(e){var t=e.semanticResources;return t.length>0?a.a.createElement(E,{semanticResources:t}):a.a.createElement(O,null)},E=function(e){var t=e.semanticResources;return a.a.createElement(s.c,{kind:f.a},t.map(function(e){return a.a.createElement(s.e,{kind:f.b,key:e.path},a.a.createElement(s.d,null,e.path),a.a.createElement(m.a,{size:y.k},e.size))}))},O=function(){return a.a.createElement(d.a,{top:h.c,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{loading:e},"No semantic resource has been found on the project.")}))}},function(e,t){},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),l=n(0),s=(n.n(l),n(140)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state=Object(s.b)(void 0,e,s.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/api/dashboard");case 3:if(t=e.sent,n=void 0,!t.ok){e.next=12;break}return e.next=8,t.json();case 8:r=e.sent,n=s.a.newHandleDashboardFetchedAction(r),e.next=14;break;case 12:o=t.statusText,a=t.status,n=s.a.newInvalidResponseAction(o,a);case 14:this.dispatch(n),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(0),i=s.a.newUnexpectedErrorAction(e.t0),this.dispatch(i);case 21:case"end":return e.stop()}},e,this,[[0,17]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(s.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.dashboard)}}]),t}(l.Component)},function(e,t,n){var r=function(){return this}()||Function("return this")(),o=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,a=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=n(139),o)r.regeneratorRuntime=a;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";function n(e,t,n,r){var a=t&&t.prototype instanceof o?t:o,i=Object.create(a.prototype),u=new d(r||[]);return i._invoke=l(e,n,u),i}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function o(){}function a(){}function i(){}function u(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function c(e){function t(n,o,a,i){var u=r(e[n],e,o);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"===typeof l&&b.call(l,"__await")?Promise.resolve(l.__await).then(function(e){t("next",e,a,i)},function(e){t("throw",e,a,i)}):Promise.resolve(l).then(function(e){c.value=e,a(c)},i)}i(u.arg)}function n(e,n){function r(){return new Promise(function(r,o){t(e,n,r,o)})}return o=o?o.then(r,r):r()}var o;this._invoke=n}function l(e,t,n){var o=C;return function(a,i){if(o===k)throw new Error("Generator is already running");if(o===N){if("throw"===a)throw i;return m()}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=s(u,n);if(c){if(c===j)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===C)throw o=N,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=k;var l=r(e,t,n);if("normal"===l.type){if(o=n.done?N:x,l.arg===j)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=N,n.method="throw",n.arg=l.arg)}}}function s(e,t){var n=e.iterator[t.method];if(n===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,s(e,t),"throw"===t.method))return j;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return j}var o=r(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,j;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,j):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,j)}function f(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function p(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function d(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(f,this),this.reset(!0)}function h(e){if(e){var t=e[w];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(b.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=y,t.done=!0,t};return r.next=r}}return{next:m}}function m(){return{value:y,done:!0}}var y,v=Object.prototype,b=v.hasOwnProperty,g="function"===typeof Symbol?Symbol:{},w=g.iterator||"@@iterator",E=g.asyncIterator||"@@asyncIterator",O=g.toStringTag||"@@toStringTag",T="object"===typeof e,_=t.regeneratorRuntime;if(_)return void(T&&(e.exports=_));_=t.regeneratorRuntime=T?e.exports:{},_.wrap=n;var C="suspendedStart",x="suspendedYield",k="executing",N="completed",j={},P={};P[w]=function(){return this};var I=Object.getPrototypeOf,S=I&&I(I(h([])));S&&S!==v&&b.call(S,w)&&(P=S);var A=i.prototype=o.prototype=Object.create(P);a.prototype=A.constructor=i,i.constructor=a,i[O]=a.displayName="GeneratorFunction",_.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===a||"GeneratorFunction"===(t.displayName||t.name))},_.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,i):(e.__proto__=i,O in e||(e[O]="GeneratorFunction")),e.prototype=Object.create(A),e},_.awrap=function(e){return{__await:e}},u(c.prototype),c.prototype[E]=function(){return this},_.AsyncIterator=c,_.async=function(e,t,r,o){var a=new c(n(e,t,r,o));return _.isGeneratorFunction(t)?a:a.next().then(function(e){return e.done?e.value:a.next()})},u(A),A[O]="Generator",A[w]=function(){return this},A.toString=function(){return"[object Generator]"},_.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},_.values=h,d.prototype={constructor:d,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=y,this.done=!1,this.delegate=null,this.method="next",this.arg=y,this.tryEntries.forEach(p),!e)for(var t in this)"t"===t.charAt(0)&&b.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=y)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=y),!!r}if(this.done)throw e;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var i=b.call(o,"catchLoc"),u=b.call(o,"finallyLoc");if(i&&u){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(i){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&b.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,j):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),j},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),p(n),j}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;p(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:h(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=y),j}}}(function(){return this}()||Function("return this")())},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(12),a=n(39),i=function(e,t,n){switch(n.kind){case a.f:return{stateId:a.h,dashboard:{projects:[]},error:null};case a.e:return{stateId:a.a,dashboard:n.dashboard,error:null};case a.d:return{stateId:a.b,dashboard:e.dashboard,error:n.error};default:return e}},u=function(){return{kind:a.f}},c=function(e){return{kind:a.e,dashboard:e}},l=function(e,t){return{kind:a.d,error:{title:"An error has occurred while retrieving the dashboard",message:e,code:t}}},s=function(e){return{kind:a.d,error:{title:"Unexpected content retrieved for the dashboard",message:e,code:o.b}}},f={newInitializeAction:u,newHandleDashboardFetchedAction:c,newInvalidResponseAction:l,newUnexpectedErrorAction:s},p=Object(r.a)(a.c,i,a.g)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),l=n(0),s=(n.n(l),n(142)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state=Object(s.b)(void 0,e,s.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/api/projects");case 3:if(t=e.sent,n=void 0,!t.ok){e.next=12;break}return e.next=8,t.json();case 8:r=e.sent,n=s.a.newHandleProjectsFetchedAction(r),e.next=14;break;case 12:o=t.statusText,a=t.status,n=s.a.newInvalidResponseAction(o,a);case 14:this.dispatch(n),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(0),i=s.a.newUnexpectedErrorAction(e.t0),this.dispatch(i);case 21:case"end":return e.stop()}},e,this,[[0,17]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(s.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.projects)}}]),t}(l.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(12),a=n(40),i=function(e,t,n){switch(n.kind){case a.e:return{stateId:a.g,projects:[],error:void 0};case a.d:return 0===n.projects.length?{stateId:a.h,projects:[],error:void 0}:{stateId:a.i,projects:n.projects,error:void 0};case a.c:return{stateId:a.a,projects:e.projects,error:n.error};default:return e}},u=function(){return{kind:a.e}},c=function(e){return{kind:a.d,projects:e.projects}},l=function(e,t){return{kind:a.c,error:{title:"An error has occurred while retrieving the list of projects",message:e,code:t}}},s=function(e){return{kind:a.c,error:{title:"Unexpected content retrieved for the projects list",message:e,code:o.b}}},f={newInitializeAction:u,newHandleProjectsFetchedAction:c,newInvalidResponseAction:l,newUnexpectedErrorAction:s},p=Object(r.a)(a.b,i,a.f)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),l=n(0),s=(n.n(l),n(144)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleNameChange=n.handleNameChange.bind(n),n.handleSubmit=n.handleSubmit.bind(n),n.state=Object(s.b)(void 0,e,s.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"handleNameChange",value:function(e){var t=e.target.value;this.dispatch(s.a.newModifyNameAction(t))}},{key:"handleSubmit",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u,l,f;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.state.name,t.preventDefault(),e.prev=2,r={name:n},o=new Request("/api/projects",{method:"POST",body:JSON.stringify(r)}),e.next=7,fetch(o);case 7:if(a=e.sent,i=a.ok,u=a.statusText,!i){e.next=13;break}this.dispatch(s.a.newCreatedProjectAction()),e.next=19;break;case 13:return l=u,e.next=16,a.json();case 16:f=e.sent,f&&(l=f.message),this.dispatch(s.a.newInvalidResponseAction(l));case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(2),this.dispatch(s.a.newUnexpectedErrorAction(e.t0.message));case 24:case"end":return e.stop()}},e,this,[[2,21]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(s.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state,a=o.stateId,i=o.errors,u=o.isValid,c=o.name,l=o.nameIsValid,s=o.nameErrors;return r(a,i,u,this.handleSubmit,c,l,s,this.handleNameChange)}}]),t}(l.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return p}),n.d(t,"b",function(){return d});var r=n(17),o=n(43),a=function(e,t,n){switch(n.kind){case o.d:return{stateId:o.h,errors:[],isValid:!1,name:"",nameIsValid:!1,nameErrors:[]};case o.g:var r=n.name,a=i(r),u=0===a.length,c=u;return{stateId:o.f,errors:[],isValid:c,name:r,nameIsValid:u,nameErrors:a};case o.c:var l=[].concat(e.errors);return l.push(n.message),{stateId:o.f,errors:l,isValid:!1};case o.b:return{stateId:o.i};default:return e}},i=function(e){var t=[];return 0===e.trim().length&&t.push("The name is required"),["\\","/",":","*","?",'"',"<",">","|"].forEach(function(n){-1!==e.indexOf(n)&&t.push("The character "+n+" cannot be used in the name")}),"."!==e.trim()&&".."!==e.trim()||t.push("The name cannot have the value . or .."),e.length>0&&"."===e.charAt(e.length-1)&&t.push("The name cannot end with a dot"),e.length>0&&0===e.trim().length?t.push("The name cannot be composed of whitespaces"):e.length!==e.trim().length&&t.push("Remove any whitespace at the beginning or the end"),t},u=function(){return{kind:o.d}},c=function(e){return{kind:o.g,name:e}},l=function(e){return{kind:o.c,message:"An error has occured during the processing of the response"}},s=function(){return{kind:o.b}},f=function(e){return{kind:o.c,message:e}},p={newInitializeAction:u,newModifyNameAction:c,newUnexpectedErrorAction:l,newCreatedProjectAction:s,newInvalidResponseAction:f},d=Object(r.a)(o.a,a,o.e)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return h});var u=n(21),c=n.n(u),l=n(0),s=(n.n(l),n(10)),f=n(146),p=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),d=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleActivityClick=n.handleActivityClick.bind(n),n.handleTabClick=n.handleTabClick.bind(n),n.handleNewDescription=n.handleNewDescription.bind(n),n.state=Object(f.b)(void 0,e,f.a.newInitializeAction()),n}return i(t,e),p(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.updateData();case 2:case"end":return e.stop()}},e,this)}));return e}()},{key:"updateData",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=this.props.match.params.projectName,e.next=4,fetch("/api/projects/"+t);case 4:if(n=e.sent,r=void 0,!n.ok){e.next=13;break}return e.next=9,n.json();case 9:o=e.sent,r=f.a.newHandleProjectFetchedAction(o),e.next=15;break;case 13:a=n.statusText,i=n.status,r=f.a.newInvalidResponseAction(a,i);case 15:this.dispatch(r),e.next=22;break;case 18:e.prev=18,e.t0=e.catch(0),u=f.a.newUnexpectedErrorAction(e.t0),this.dispatch(u);case 22:case"end":return e.stop()}},e,this,[[0,18]])}));return e}()},{key:"handleTabClick",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.state.project.pages,r=n[t].identifier,o=this.props.match.params.projectName,e.prev=3,e.next=6,fetch("/api/projects/"+o+"/pages/"+r);case 6:return a=e.sent,e.next=9,a.json();case 9:i=e.sent,u=f.a.newHandlePageFetchedAction(i),this.dispatch(u),e.next=16;break;case 14:e.prev=14,e.t0=e.catch(3);case 16:case"end":return e.stop()}},e,this,[[3,14]])}));return e}()},{key:"handleActivityClick",value:function(){function e(e,n,r,o){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t,n,r,o){var a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,a=new Request("/api/projects/"+t+"/pages/"+n+"/sections/"+r+"/activities/"+o+"/execute",{method:"POST"}),e.next=4,fetch(a);case 4:return i=e.sent,u=i.ok,e.next=9,this.updateData();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(0);case 13:case"end":return e.stop()}},e,this,[[0,11]])}));return e}()},{key:"handleNewDescription",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u,l,s;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.state.project,r=n.description,void 0===r&&(r=""),t===r){e.next=20;break}return o=this.props.match.params.projectName,e.prev=5,a=JSON.stringify({description:t}),i=new Request("/api/projects/"+o,{method:"PUT",body:a}),e.next=10,fetch(i);case 10:return u=e.sent,e.next=13,u.json();case 13:l=e.sent,s=f.a.newHandleDescriptionUpdatedAction(l),this.dispatch(s),e.next=20;break;case 18:e.prev=18,e.t0=e.catch(5);case 20:case"end":return e.stop()}},e,this,[[5,18]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(f.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.project,o.pageIdentifier,this.handleTabClick,this.handleActivityClick,this.handleNewDescription)}}]),t}(l.Component),h=Object(s.f)(d)},function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"b",function(){return h});var r=n(17),o=n(12),a=n(44),i=function(e,t,n){switch(n.kind){case a.g:return{stateId:a.i,project:void 0,pageIdentifier:void 0,error:void 0};case a.f:var r=void 0;return n.project.pages.length>0&&(r=n.project.pages[0].identifier),{stateId:a.j,project:n.project,pageIdentifier:r,error:void 0};case a.e:var o={stateId:a.j,project:e.project,pageIdentifier:n.page.identifier,error:void 0};return o.project.currentPageSections=n.page.sections,o;case a.c:var i={stateId:a.j,project:e.project,pageIdentifier:e.pageIdentifier,error:void 0};return i.project=Object.assign({},i.project,{description:n.description}),i;case a.d:return{stateId:a.a,project:e.project,pageIdentifier:e.pageIdentifier,error:n.error};default:return e}},u=function(){return{kind:a.g}},c=function(e){return{kind:a.f,project:e}},l=function(e){return{kind:a.e,page:e}},s=function(e){return{kind:a.c,description:e.description}},f=function(e,t){return{kind:a.d,error:{title:"An error has occurred while retrieving the project",message:e,code:t}}},p=function(e){return{kind:a.d,error:{title:"Unexpected content retrieved for the project",message:e,code:o.b}}},d={newInitializeAction:u,newHandleProjectFetchedAction:c,newHandlePageFetchedAction:l,newHandleDescriptionUpdatedAction:s,newInvalidResponseAction:f,newUnexpectedErrorAction:p},h=Object(r.a)(a.b,i,a.h)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return p});var o=n(0),a=n.n(o),i=n(2),u=n(4),c=n(3),l=n(6),s=n(7),f=n(148),p=(n.n(f),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("navbar",t);return a.a.createElement("nav",Object.assign({className:o},n),a.a.createElement(u.a,{top:c.c,right:c.b,bottom:c.c,left:c.b},a.a.createElement("div",{className:"navbar-container"},a.a.createElement("div",{className:"navbar-title title-xxl"},a.a.createElement(l.a,{weight:s.a,size:s.c},"Eclipse Sirius")))))})},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){}]);
-//# sourceMappingURL=main.91885b73.js.map
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js.map b/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js.map
deleted file mode 100644
index 160172f..0000000
--- a/plugins/org.eclipse.sirius.server.frontend.workflow/workflow-frontend/static/js/main.91885b73.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../static/js/main.91885b73.js","../webpack/bootstrap 9d01bf3247994e1e0954","../node_modules/react/index.js","../node_modules/prop-types/index.js","common/classnames.js","components/spacing/SpacingConstants.js","components/spacing/Spacing.js","../node_modules/warning/browser.js","components/text/Text.js","components/text/TextConstants.js","../node_modules/invariant/browser.js","components/cards/Card.js","components/loading/Loading.js","common/errors.js","components/list/ListConstants.js","../node_modules/history/PathUtils.js","../node_modules/history/es/PathUtils.js","components/error/ErrorCard.js","common/dispatcherCreator.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/history/es/LocationUtils.js","components/list/List.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/object-assign/index.js","../node_modules/history/LocationUtils.js","../node_modules/history/createTransitionManager.js","../node_modules/react-router-dom/es/Router.js","../node_modules/react-router/es/Router.js","../node_modules/react-router/es/matchPath.js","../node_modules/history/es/createTransitionManager.js","components/buttons/Button.js","../node_modules/promise/lib/core.js","../node_modules/fbjs/lib/emptyObject.js","../node_modules/resolve-pathname/index.js","../node_modules/value-equal/index.js","../node_modules/history/DOMUtils.js","../node_modules/react-router-dom/es/Link.js","../node_modules/react-router-dom/es/Route.js","../node_modules/react-router/es/Route.js","../node_modules/history/es/DOMUtils.js","components/dashboard/DashboardViewFiniteStateMachine.js","components/projects/listprojects/ListProjectsViewFiniteStateMachine.js","components/buttons/ButtonConstants.js","components/form/Form.js","components/projects/newproject/NewProjectViewFiniteStateMachine.js","components/projects/project/ProjectViewFiniteStateMachine.js","../node_modules/react-scripts/config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/react-scripts/node_modules/webpack/buildin/global.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/fbjs/lib/ExecutionEnvironment.js","../node_modules/fbjs/lib/EventListener.js","../node_modules/fbjs/lib/getActiveElement.js","../node_modules/fbjs/lib/shallowEqual.js","../node_modules/fbjs/lib/containsNode.js","../node_modules/fbjs/lib/isTextNode.js","../node_modules/fbjs/lib/isNode.js","../node_modules/fbjs/lib/focusNode.js","../node_modules/react-router-dom/es/BrowserRouter.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/history/createBrowserHistory.js","../node_modules/react-router-dom/es/HashRouter.js","../node_modules/history/createHashHistory.js","../node_modules/react-router-dom/es/MemoryRouter.js","../node_modules/react-router/es/MemoryRouter.js","../node_modules/history/createMemoryHistory.js","../node_modules/react-router-dom/es/NavLink.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router-dom/es/Prompt.js","../node_modules/react-router/es/Prompt.js","../node_modules/react-router-dom/es/Redirect.js","../node_modules/react-router/es/Redirect.js","../node_modules/history/es/createBrowserHistory.js","../node_modules/history/es/createHashHistory.js","../node_modules/history/es/createMemoryHistory.js","../node_modules/react-router-dom/es/StaticRouter.js","../node_modules/react-router/es/StaticRouter.js","../node_modules/react-router-dom/es/Switch.js","../node_modules/react-router/es/Switch.js","../node_modules/react-router-dom/es/matchPath.js","../node_modules/react-router-dom/es/withRouter.js","../node_modules/react-router/es/withRouter.js","../node_modules/react-router/node_modules/hoist-non-react-statics/index.js","components/app/App.js","components/aside/Aside.js","components/main/Main.js","components/dashboard/DashboardView.js","components/info/InfoCard.js","components/projects/ProjectSummaryCard.js","components/error/ErrorBoundary.js","components/projects/listprojects/ListProjectsView.js","components/blank/BlankCard.js","components/projects/ProjectsListCard.js","components/projects/newproject/NewProjectView.js","components/projects/NewProjectCard.js","components/projects/project/ProjectView.js","components/workflow/WorkflowCard.js","components/icons/IconRun.js","components/tabbar/TabBar.js","components/tabbar/Tab.js","components/tabbar/TabBarDispatcher.js","components/tabbar/TabBarFiniteStateMachine.js","components/projects/header/ProjectHeaderCard.js","components/projects/header/EditDescription.js","components/projects/header/ViewDescription.js","components/projects/ProjectRepresentationsListCard.js","components/projects/ProjectSemanticResourcesListCard.js","containers/dashboard/DashboardViewStateContainer.js","../node_modules/regenerator-runtime/runtime-module.js","../node_modules/regenerator-runtime/runtime.js","components/dashboard/DashboardViewDispatcher.js","containers/projects/ListProjectsViewStateContainer.js","components/projects/listprojects/ListProjectsViewDispatcher.js","containers/projects/NewProjectViewStateContainer.js","components/projects/newproject/NewProjectViewDispatcher.js","containers/projects/ProjectViewStateContainer.js","components/projects/project/ProjectViewDispatcher.js","components/navbar/Navbar.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","classNames","staticClassNames","_len","arguments","length","optionalClassNames","Array","_key","filter","join","trim","XS","S","M","L","XL","XXL","Spacing","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_prop_types__","__WEBPACK_IMPORTED_MODULE_1_prop_types___default","__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__","propTypes","top","a","oneOf","right","bottom","left","_ref","children","style","paddingTop","paddingRight","paddingBottom","paddingLeft","createElement","warning","_objectWithoutProperties","obj","keys","target","indexOf","Text","__WEBPACK_IMPORTED_MODULE_2__common_classnames__","__WEBPACK_IMPORTED_MODULE_3__TextConstants__","__WEBPACK_IMPORTED_MODULE_4__Text_css__","string","loading","bool","weight","isRequired","size","hideOverflow","defaultProps","className","textClassNames","LIGHT","REGULAR","SEMI_BOLD","BOLD","EXTRA_BOLD","EXTRA_EXTRA_LARGE","EXTRA_LARGE","LARGE","MEDIUM","SMALL","EXTRA_SMALL","invariant","condition","format","b","e","f","error","undefined","Error","args","argIndex","replace","framesToPop","Card","Divider","__WEBPACK_IMPORTED_MODULE_1__common_classnames__","__WEBPACK_IMPORTED_MODULE_2__Card_css__","props","cardClassNames","assign","_ref2","dividerClassNames","__WEBPACK_IMPORTED_MODULE_0__BrowserRouter__","__WEBPACK_IMPORTED_MODULE_2__Link__","__WEBPACK_IMPORTED_MODULE_6__Redirect__","__WEBPACK_IMPORTED_MODULE_7__Route__","__WEBPACK_IMPORTED_MODULE_10__Switch__","__WEBPACK_IMPORTED_MODULE_12__withRouter__","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","value","writable","setPrototypeOf","__proto__","Loading","LoadingProvider","LoadingConsumer","__WEBPACK_IMPORTED_MODULE_3__Loading_css__","_createClass","defineProperties","descriptor","key","protoProps","staticProps","loadingClassNames","_Component","this","getPrototypeOf","apply","LoadingProvider_LOADING","childContextTypes","context","render","_props$children","contextTypes","UNKNOWN_ERROR","UNSUPPORTED_STATE","RENDERING_ERROR","SINGLE_LINE","TWO_LINES","THREE_LINES","LIST_WITH_HIGHLIGHT__KIND","hasBasename","addLeadingSlash","path","charAt","stripLeadingSlash","substr","prefix","RegExp","test","stripBasename","stripTrailingSlash","slice","parsePath","pathname","search","hash","hashIndex","searchIndex","createPath","location","ErrorCard","__WEBPACK_IMPORTED_MODULE_3__cards_Card__","__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__","code","number","title","message","errorCardClassNames","dispatcherCreator","FSM","reducer","INITIAL__STATE","prevState","stateId","action","transitions","newPotentialState","kind","newState","console","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","createLocation","locationsAreEqual","__WEBPACK_IMPORTED_MODULE_0_resolve_pathname__","__WEBPACK_IMPORTED_MODULE_1_value_equal__","__WEBPACK_IMPORTED_MODULE_2__PathUtils__","_extends","source","state","currentLocation","decodeURI","URIError","_toConsumableArray","arr","isArray","arr2","from","AdditionalIcon","MainText","AdditionalText","Tile","List","__WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_5__text_Text__","__WEBPACK_IMPORTED_MODULE_6__ListConstants__","__WEBPACK_IMPORTED_MODULE_7__List_css__","__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__","mainIconPropTypes","mainIconClassNames","additionalIconPropTypes","additionalIconClassNames","mainTextPropTypes","_ref3","mainTextClassNames","additionalTextPropTypes","_ref4","additionalTextClassNames","tilePropTypes","_ref5","kindClassName","tileClassNames","listPropTypes","oneOfType","array","arrayOf","objectOf","listDefaultProps","_ref6","kinds","computeKinds","listClassNames","concat","push","toObject","val","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","test3","split","forEach","letter","err","symbols","to","_interopRequireDefault","default","_resolvePathname","_resolvePathname2","_valueEqual","_valueEqual2","_PathUtils","_warning","_warning2","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","callback","result","listeners","appendListener","fn","isActive","listener","item","notifyListeners","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__","__WEBPACK_IMPORTED_MODULE_0_warning__","__WEBPACK_IMPORTED_MODULE_0_warning___default","__WEBPACK_IMPORTED_MODULE_1_invariant__","__WEBPACK_IMPORTED_MODULE_1_invariant___default","__WEBPACK_IMPORTED_MODULE_2_react__","__WEBPACK_IMPORTED_MODULE_2_react___default","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","Router","_React$Component","_temp","_this","_ret","match","computeMatch","history","getChildContext","router","route","url","params","isExact","componentWillMount","_this2","_props","Children","count","unlisten","listen","setState","componentWillReceiveProps","nextProps","componentWillUnmount","only","Component","node","__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__","__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default","patternCache","cacheCount","compilePath","pattern","options","cacheKey","end","strict","sensitive","cache","re","compiledPattern","matchPath","_options","_options$path","_options$exact","exact","_options$strict","_options$sensitive","_compilePath","exec","values","reduce","memo","index","Button","__WEBPACK_IMPORTED_MODULE_3__loading_Loading__","__WEBPACK_IMPORTED_MODULE_6__text_Text__","__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__","__WEBPACK_IMPORTED_MODULE_9__Button_css__","buttonClassNames","kindClassNames","getKindClassNames","disabled","noop","getThen","then","ex","LAST_ERROR","IS_ERROR","tryCallOne","tryCallTwo","Promise","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","resolve","reject","res","handle","Handler","deferred","_47","handleResolved","asap","cb","promise","ret","newValue","finale","bind","_71","done","reason","_44","emptyObject","isAbsolute","spliceOne","list","k","pop","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","unshift","valueEqual","every","aType","_typeof","aValue","valueOf","bValue","aKeys","bKeys","Symbol","iterator","canUseDOM","window","document","addEventListener","event","attachEvent","removeEventListener","detachEvent","getConfirmation","confirm","supportsHistory","ua","navigator","userAgent","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","__WEBPACK_IMPORTED_MODULE_2_invariant__","__WEBPACK_IMPORTED_MODULE_2_invariant___default","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","Link","handleClick","onClick","defaultPrevented","button","preventDefault","_this$props","innerRef","href","createHref","ref","func","shape","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__","__WEBPACK_IMPORTED_MODULE_4__matchPath__","isEmptyChildren","Route","computedMatch","component","nextContext","_context$router","staticContext","LOADING__STATE","ERROR__STATE","DASHBOARD_LOADED__STATE","INITIALIZE__ACTION","HANDLE_FETCHED_DASHBOARD__ACTION","HANDLE_ERROR__ACTION","NO_PROJECTS_LOADED__STATE","PROJECTS_LOADED__STATE","HANDLE_FETCHED_PROJECTS__ACTION","BUTTON_DEFAULT__KIND","BUTTON_PRIMARY__KIND","BUTTON_SUCCESS__KIND","BUTTON_WARNING__KIND","BUTTON_DANGER__KIND","Form","Field","Label","Description","TextField","ActionGroup","ErrorGroup","__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_4__Form_css__","formClassNames","fieldClassNames","labelClassNames","descriptionClassNames","type","actionGroupClassNames","_ref7","errorGroupClassNames","_ref8","errorClassNames","PRISTINE__STATE","MODIFIED__STATE","REDIRECT__STATE","MODIFY_NAME__ACTION","HANDLE_CREATED_PROJECT__ACTION","PROJECT_LOADED__STATE","HANDLE_FETCHED_PROJECT__ACTION","HANDLE_FETCHED_PAGE__ACTION","HANDLE_DESCRIPTION_UPDATED__ACTION","enable","disable","enabled","onUnhandled","id","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","clearTimeout","timeout","setTimeout","stack","line","some","cls","RangeError","global","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","createTextNode","observe","characterData","data","g","Function","eval","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","all","remaining","race","normalizeName","toLowerCase","normalizeValue","iteratorFor","items","next","shift","support","iterable","Headers","headers","append","header","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","bufferClone","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","toString","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","JSON","parse","normalizeMethod","method","upcased","toUpperCase","methods","Request","input","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","oldValue","has","thisArg","entries","clone","response","redirectStatuses","redirect","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","__WEBPACK_IMPORTED_MODULE_1_react_dom__","__WEBPACK_IMPORTED_MODULE_1_react_dom___default","__WEBPACK_IMPORTED_MODULE_2_react_router_dom__","__WEBPACK_IMPORTED_MODULE_3__components_app_App__","__WEBPACK_IMPORTED_MODULE_4__reset_css__","__WEBPACK_IMPORTED_MODULE_5__app_css__","basename","getElementById","y","encodeURIComponent","A","refs","updater","z","B","C","E","J","H","I","h","$$typeof","r","_owner","G","current","K","escape","=",":","N","keyPrefix","O","P","t","u","v","Q","x","R","T","q","w","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","forceUpdate","D","isPureReactComponent","F","unstable_isAsyncReactComponent","__self","__source","U","toArray","PureComponent","unstable_AsyncComponent","Fragment","cloneElement","createFactory","isValidElement","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","V","freeze","W","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","pa","va","oa","wa","hasBooleanValue","hasStringBooleanValue","hasOverloadedBooleanValue","Ia","Ja","_hasCaughtError","_caughtError","Ka","_hasRethrowError","_rethrowError","Na","La","Ma","Oa","extractEvents","eventTypes","Pa","phasedRegistrationNames","Qa","registrationName","Ra","Sa","dependencies","Ta","Ua","Za","currentTarget","Ya","invokeGuardedCallbackAndCatchFirstError","$a","ab","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","db","gb","ib","stateNode","Wa","jb","kb","bb","lb","rethrowCaughtError","pb","parentNode","tag","qb","rb","ob","tb","ub","vb","dispatchConfig","wb","_targetInst","xb","yb","zb","Ab","Bb","alternate","Eb","Db","documentElement","Fb","_fallbackText","_startText","Gb","_root","nativeEvent","Interface","isDefaultPrevented","returnValue","Kb","eventPool","Lb","destructor","Jb","getPooled","Mb","Nb","dc","Pb","keyCode","ec","detail","gc","which","cc","ac","hc","fc","Vb","char","$b","mc","Xa","jc","restoreControlledState","oc","kc","lc","pc","rc","tc","sc","vc","nodeName","uc","wc","srcElement","correspondingUseElement","nodeType","yc","setAttribute","xc","implementation","hasFeature","zc","Ac","getOwnPropertyDescriptor","getValue","setValue","stopTracking","_valueTracker","Bc","Cc","checked","Ec","Dc","change","Hc","Ic","Jc","Lc","Fc","Mc","Gc","propertyName","Nc","Oc","Pc","$c","bd","dd","getModifierState","cd","ed","fd","jd","displayName","kd","effectTag","ld","_reactInternalFiber","md","nd","child","sibling","od","pd","rd","targetInst","ancestors","containerInfo","sd","topLevelType","ud","td","ba","vd","wd","capture","qd","yd","Cd","Ad","zd","Bd","Hd","Gd","Fd","Ed","Id","firstChild","Jd","textContent","offset","nextSibling","Kd","contentEditable","Rd","Qd","Nd","da","start","selectionStart","selectionEnd","getSelection","anchorNode","anchorOffset","focusNode","focusOffset","Pd","ea","Md","select","Od","Td","Ud","Vd","Wd","charCode","Zd","$d","ae","be","ce","he","ge","ke","le","je","ie","me","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","ne","X","oe","cursor","pe","qe","__reactInternalMemoizedMergedChildContext","Y","memoizedState","updateQueue","memoizedProps","pendingProps","internalContextTag","lastEffect","firstEffect","nextEffect","expirationTime","se","te","ue","ve","we","handler","xe","ye","pendingChildren","Be","Ce","isDisabled","supportsFiber","inject","ze","onCommitFiberRoot","Ae","onCommitFiberUnmount","De","Ee","Fe","baseState","first","callbackList","hasForceUpdate","isInitialized","Ge","He","Ie","partialState","Je","isReplace","isForced","Ke","Le","nextCallback","adoptClassInstance","constructClassInstance","mountClassInstance","componentDidMount","updateClassInstance","componentDidUpdate","shouldComponentUpdate","componentWillUpdate","Xe","We","Ze","_stringRef","$e","af","Map","Re","Ve","Se","Te","Ue","Ye","df","cf","bf","pendingContext","shouldSetTextContent","useSyncScheduling","shouldDeprioritizeSubtree","pushHostContext","pushHostContainer","enterHydrationState","resetHydrationState","tryToClaimNextHydratableInstance","Ob","beginWork","element","hydrate","beginFailedWork","ef","createInstance","createTextInstance","appendInitialChild","finalizeInitialChildren","prepareUpdate","persistence","getRootHostContainer","popHostContext","getHostContext","popHostContainer","prepareToHydrateHostInstance","prepareToHydrateHostTextInstance","popHydrationState","mutation","completeWork","ff","getPublicInstance","commitMount","commitUpdate","resetTextContent","commitTextUpdate","appendChild","appendChildToContainer","insertBefore","insertInContainerBefore","removeChild","removeChildFromContainer","commitResetTextContent","commitPlacement","commitDeletion","commitWork","commitLifeCycles","commitAttachRef","commitDetachRef","hf","gf","getChildHostContext","getRootHostContext","resetHostContainer","jf","hydration","canHydrateInstance","canHydrateTextInstance","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","kf","Qb","ja","isReadyForCommit","yg","zg","Ag","Ne","Oe","Sc","Bg","Tc","Cg","Dg","Eg","componentDidCatch","componentStack","ca","Qc","ha","qa","Fg","rg","Gg","Uc","ra","Rc","eb","qg","Set","add","_debugOwner","_debugSource","fileName","lineNumber","componentName","errorBoundary","errorBoundaryFound","errorBoundaryName","willRetry","suppressReactErrorLogging","Vc","ka","Hg","Rb","Ig","nextScheduledRoot","remainingExpirationTime","sa","Fa","la","Sb","ma","na","Wc","Pe","Tb","Jg","Xc","Kg","fb","Yc","Ub","Zc","finishedWork","timeRemaining","Lg","Me","now","scheduleDeferredCallback","cancelDeferredCallback","prepareForCommit","resetAfterCommit","computeAsyncExpiration","computeExpirationForFiber","scheduleWork","batchedUpdates","unbatchedUpdates","flushSync","deferredUpdates","lf","createContainer","updateContainer","getPublicRootInstance","findHostInstance","findHostInstanceWithNoPortals","injectIntoDevTools","findFiberByHostInstance","findHostInstanceByFiber","pf","Hf","Gf","Ff","Ef","If","mutationMethod","hasNumericValue","isNaN","hasPositiveNumericValue","Jf","mustUseProperty","attributeName","attributeNamespace","setAttributeNS","Kf","removeAttribute","Lf","step","min","max","defaultChecked","defaultValue","_wrapperState","initialValue","initialChecked","Mf","controlled","Nf","Of","parseFloat","Pf","Qf","aa","Rf","Sf","selected","defaultSelected","Tf","wasMultiple","multiple","Uf","dangerouslySetInnerHTML","Vf","Wf","Xf","Zf","$f","cg","lastChild","nodeValue","fg","dg","setProperty","hg","gg","ig","is","lg","ownerDocument","topBlur","topFocus","topCancel","topClose","Dd","ng","jg","innerHTML","createElementNS","og","pg","mg","kg","__html","bg","onclick","sg","tg","ug","vg","Ng","Og","hasAttribute","Pg","_reactRootContainer","Z","Qg","Rg","fa","ia","suppressContentEditableWarning","suppressHydrationWarning","ta","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","HAS_STRING_BOOLEAN_VALUE","injectDOMPropertyConfig","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMMutationMethods","xa","ya","za","Aa","Ba","Ca","Da","allowFullScreen","async","autoFocus","autoPlay","cols","controls","defer","download","draggable","formNoValidate","hidden","loop","muted","noValidate","playsInline","readOnly","required","reversed","rows","rowSpan","scoped","seamless","span","spellCheck","tabIndex","itemScope","acceptCharset","htmlFor","httpEquiv","validity","badInput","activeElement","Ea","xlink","xml","Ga","autoReverse","externalResourcesRequired","preserveAlpha","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","Ha","injection","injectErrorUtils","invokeGuardedCallback","hasCaughtError","clearCaughtError","Va","plugins","eventNameDispatchConfigs","registrationNameModules","registrationNameDependencies","possibleRegistrationNames","injectEventPluginOrder","injectEventPluginsByName","hb","mb","getListener","enqueueEvents","processEventQueue","nb","Math","random","sb","precacheFiberNode","getClosestInstanceFromNode","getInstanceFromNode","getNodeFromInstance","getFiberCurrentPropsFromNode","updateFiberProps","Cb","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","accumulateDirectDispatches","Hb","Ib","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","stopPropagation","cancelBubble","persist","augmentClass","Wb","documentMode","Xb","Yb","opera","parseInt","Zb","bc","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","ic","nc","injectFiberControlledHostComponent","qc","enqueueStateRestore","restoreStateIfNeeded","color","date","datetime","datetime-local","email","month","password","range","tel","time","week","Kc","ad","_isInputEventSupported","getAttribute","Alt","Control","Meta","Shift","screenX","screenY","clientX","clientY","pageX","pageY","buttons","relatedTarget","fromElement","toElement","gd","mouseEnter","mouseLeave","hd","defaultView","parentWindow","xd","_enabled","_handleTopLevel","setHandleTopLevel","setEnabled","isEnabled","trapBubbledEvent","trapCapturedEvent","dispatchEvent","animationend","animationiteration","animationstart","transitionend","animation","transition","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoad","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topToggle","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","Ld","Sd","onSelect","animationName","elapsedTime","pseudoElement","clipboardData","Xd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Yd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","repeat","locale","dataTransfer","touches","targetTouches","changedTouches","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","de","ee","fe","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Qe","mf","nf","of","qf","performance","rf","sf","tf","requestIdleCallback","cancelIdleCallback","Bf","uf","vf","wf","xf","yf","zf","Af","didTimeout","Cf","requestAnimationFrame","Df","postMessage","Infinity","Yf","html","mathml","svg","ag","MSApp","execUnsafeLocalFunction","namespaceURI","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","eg","substring","menuitem","area","base","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","wg","setInitialProperties","diffProperties","updateProperties","diffHydratedProperties","diffHydratedText","warnForUnmatchedText","warnForDeletedHydratableElement","warnForDeletedHydratableText","warnForInsertedHydratedElement","warnForInsertedHydratedText","querySelectorAll","stringify","xg","Mg","tagName","rangeCount","focusedElem","selectionRange","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","didNotMatchHydratedContainerTextInstance","didNotMatchHydratedTextInstance","didNotHydrateContainerInstance","didNotHydrateInstance","didNotFindHydratableContainerInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableInstance","didNotFindHydratableTextInstance","unmount","Sg","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_deferredUpdates","EventPluginHub","EventPluginRegistry","EventPropagators","ReactControlledComponent","ReactDOMComponentTree","ReactDOMEventListener","bundleType","rendererPackageName","Tg","Ug","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","isInWorker","EventListener","eventType","remove","registerDefault","getActiveElement","doc","shallowEqual","objA","objB","keysA","keysB","containsNode","outerNode","innerNode","isTextNode","contains","compareDocumentPosition","isNode","Node","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_1_react___default","__WEBPACK_IMPORTED_MODULE_2_prop_types__","__WEBPACK_IMPORTED_MODULE_2_prop_types___default","__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default","__WEBPACK_IMPORTED_MODULE_4__Router__","BrowserRouter","forceRefresh","keyLength","ReactPropTypesSecret","shim","propName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","checkPropTypes","PropTypes","validateFormat","_invariant","_invariant2","_LocationUtils","_createTransitionManager","_createTransitionManager2","_DOMUtils","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","_props$getUserConfirm","_props$keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","handlePop","handleHashChange","forceNextPop","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","block","unblock","__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default","HashRouter","hashType","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","pushHashPath","replaceHashPath","createHashHistory","canGoWithoutReload","_props$hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","nextPaths","__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__","__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default","MemoryRouter","initialEntries","initialIndex","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","_props$initialIndex","entry","nextIndex","nextEntries","splice","canGo","__WEBPACK_IMPORTED_MODULE_2__Route__","__WEBPACK_IMPORTED_MODULE_3__Link__","NavLink","activeClassName","activeStyle","getIsActive","ariaCurrent","rest","aria-current","str","tokens","defaultDelimiter","delimiter","PATH_REGEXP","escaped","group","modifier","asterisk","partial","optional","escapeGroup","escapeString","compile","tokensToFunction","encodeURIComponentPretty","encodeURI","charCodeAt","encodeAsterisk","matches","opts","encode","pretty","token","segment","isarray","j","attachKeys","flags","regexpToRegexp","groups","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","endsWithDelimiter","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__","Prompt","when","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__","__WEBPACK_IMPORTED_MODULE_2_warning__","__WEBPACK_IMPORTED_MODULE_2_warning___default","__WEBPACK_IMPORTED_MODULE_3_invariant__","__WEBPACK_IMPORTED_MODULE_3_invariant___default","__WEBPACK_IMPORTED_MODULE_4_history__","Redirect","isStatic","perform","prevProps","prevTo","nextTo","__WEBPACK_IMPORTED_MODULE_3__LocationUtils__","__WEBPACK_IMPORTED_MODULE_3__PathUtils__","__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__","__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__","__WEBPACK_IMPORTED_MODULE_5__Router__","normalizeLocation","_object$pathname","_object$search","_object$hash","addBasename","createURL","staticHandler","methodName","StaticRouter","handlePush","handleReplace","_this$props2","handleListen","handleBlock","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__","Switch","_element$props","pathProp","__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__","__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__","__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__","__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default","__WEBPACK_IMPORTED_MODULE_3__Route__","withRouter","wrappedComponentRef","remainingProps","routeComponentProps","WrappedComponent","factory","REACT_STATICS","getDefaultProps","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","App","__WEBPACK_IMPORTED_MODULE_1_react_router_dom__","__WEBPACK_IMPORTED_MODULE_3__aside_Aside__","__WEBPACK_IMPORTED_MODULE_4__main_Main__","__WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__","__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_8__App_css__","__WEBPACK_IMPORTED_MODULE_9__ie11_css__","AppWithoutRouter","query","segments","parameters","isFullScreen","appClassNames","container","MSInputMethodContext","Aside","__WEBPACK_IMPORTED_MODULE_3__Aside_css__","asideClassNames","rel","Main","__WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__","__WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__","__WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__","__WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__","__WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__","__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__","__WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__","__WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__","__WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__","mainClassNames","renderDashboardViewStateContainer","renderListProjectsViewStateContainer","renderProjectViewStateContainer","renderNewProjectViewStateContainer","dashboard","projects","project","pageIdentifier","onTabClick","onActivityClick","onNewDescription","errors","isValid","onSubmit","nameIsValid","nameErrors","onNameChange","DashboardView","__WEBPACK_IMPORTED_MODULE_3__common_classnames__","__WEBPACK_IMPORTED_MODULE_4__common_errors__","__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__","__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__","__WEBPACK_IMPORTED_MODULE_7__loading_Loading__","__WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__","__WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_10__DashboardView_css__","renderLoadingState","renderErrorState","renderDashboardLoadedState","undefinedStateError","dashboardViewClassNames","projectsCount","viewpointsCount","metamodelsCount","InfoCard","__WEBPACK_IMPORTED_MODULE_6__InfoCard_css__","infoCardClassNames","ProjectSummaryCard","description","ErrorBoundary","__WEBPACK_IMPORTED_MODULE_1__common_errors__","__WEBPACK_IMPORTED_MODULE_2__ErrorCard__","info","ListProjectsView","__WEBPACK_IMPORTED_MODULE_3__common_errors__","__WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__","__WEBPACK_IMPORTED_MODULE_6__loading_Loading__","__WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__","__WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__","renderEmptyState","renderProjectsLoadedState","listProjectsViewLoadingClassNames","listProjectsViewErrorClassNames","listProjectsViewEmptyClassNames","listProjectsViewClassNames","BlankCard","__WEBPACK_IMPORTED_MODULE_6__BlankCard_css__","blankCardClassNames","ProjectsListCard","__WEBPACK_IMPORTED_MODULE_4__cards_Card__","__WEBPACK_IMPORTED_MODULE_5__list_List__","__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__","__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_9__text_Text__","__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__","projectsListCardClassNames","NewProjectView","__WEBPACK_IMPORTED_MODULE_6__NewProjectCard__","__WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__","renderForm","renderRedirectState","newProjectViewClassNames","newProjectViewErrorClassNames","NewProjectCard","__WEBPACK_IMPORTED_MODULE_2__buttons_Button__","__WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__","__WEBPACK_IMPORTED_MODULE_5__form_Form__","__WEBPACK_IMPORTED_MODULE_8__text_Text__","__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__","newProjectCardClassNames","nameClassName","placeholder","onChange","ProjectView","__WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__","__WEBPACK_IMPORTED_MODULE_5__loading_Loading__","__WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__","__WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__","__WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__","__WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__","__WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_11__ProjectView_css__","renderProjectLoadedState","renderProjectState","projectViewErrorClassNames","projectViewClassNames","semanticResources","projectName","representations","pages","sections","currentPageSections","WorkflowCard","__WEBPACK_IMPORTED_MODULE_4__icons_IconRun__","__WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__","__WEBPACK_IMPORTED_MODULE_11__text_Text__","__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__","selectedTabIndex","identifier","sectionsElement","Sections","workflowCardClassNames","WorkflowTabBar","tabs","page","EmptySections","section","Section","sectionClassNames","Activities","activities","sectionIdentifier","EmptyActivities","ActivitiesList","activity","IconRun","__WEBPACK_IMPORTED_MODULE_2__IconRun_css__","iconRunClassNames","xmlns","height","width","points","TabBar","__WEBPACK_IMPORTED_MODULE_3__text_Text__","__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_5__Tab__","__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__","__WEBPACK_IMPORTED_MODULE_7__TabBar_css__","numberOfTabsDisplayed","handleTabBarNavClick","handleTabClick","newInitializeAction","side","isPreviousAvailable","newHandlePreviousAction","dispatch","isNextAvailable","newHandleNextAction","newHandleTabSelectedAction","isAvailable","containsSelection","tabBarNavClassNames","startIndex","tabsToDisplay","endIndex","tab","_state","previousContainsSelection","nextContainsSelection","tabBarClassNames","previousClassNames","getTabBarNavClassNames","nextClassNames","renderTabs","data-side","Tab","__WEBPACK_IMPORTED_MODULE_5__Tab_css__","_props2","tabClassNames","actionCreator","dispatcher","__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__","__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__","initializedState","computeState","handleNextState","handlePreviousState","handleTabSelectedState","MOVED__STATE","HANDLE_NEXT__ACTION","HANDLE_PREVIOUS__ACTION","HANDLE_TAB_SELECTED__ACTION","ProjectHeaderCard","__WEBPACK_IMPORTED_MODULE_4__loading_Loading__","__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_7__text_Text__","__WEBPACK_IMPORTED_MODULE_9__EditDescription__","__WEBPACK_IMPORTED_MODULE_10__ViewDescription__","projectHeaderCardPropTypes","projectHeaderCardDefaultProps","handleEditClick","handleNewDescription","isViewingDescription","onEditClick","EditDescription","__WEBPACK_IMPORTED_MODULE_3__form_Form__","__WEBPACK_IMPORTED_MODULE_6__EditDescription_css__","editDescriptionPropTypes","editDescriptionDefaultProps","handleDescriptionChange","handleDoneClick","ViewDescription","__WEBPACK_IMPORTED_MODULE_3__buttons_Button__","__WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__","viewDescriptionPropTypes","viewDescriptionClassNames","ProjectRepresentationsListCard","__WEBPACK_IMPORTED_MODULE_4__list_List__","__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__","Representations","RepresentationsList","EmptyRepresentations","representation","descriptionName","ProjectSemanticResourcesListCard","SemanticResources","SemanticResourcesList","EmptySemanticResources","resource","_asyncToGenerator","gen","DashboardViewStateContainer","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__","mark","_callee","jsonDashboardResponse","dashboardResponse","_action","wrap","_context","prev","sent","newHandleDashboardFetchedAction","newInvalidResponseAction","t0","newUnexpectedErrorAction","stop","_props$render","hadRuntime","regeneratorRuntime","oldRuntime","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","invoke","record","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","GenStateSuspendedYield","return","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","iteratorSymbol","Op","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","isGeneratorFunction","genFun","ctor","awrap","iter","reverse","skipTempReset","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__","ListProjectsViewStateContainer","__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__","jsonProjectsResponse","projectsResponse","newHandleProjectsFetchedAction","__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__","NewProjectViewStateContainer","__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__","handleNameChange","handleSubmit","newModifyNameAction","_x","jsonResponse","newCreatedProjectAction","__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__","validateName","invalidCharacter","ProjectViewStateContainer","__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__","ProjectViewStateContainerWithoutRouter","handleActivityClick","updateData","_callee2","jsonProjectResponse","projectResponse","_context2","newHandleProjectFetchedAction","_callee3","jsonPageResponse","pageResponse","_context3","newHandlePageFetchedAction","_x2","_x3","_x4","_x5","_callee4","activityIdentifier","_context4","_x6","_callee5","oldDescription","_context5","newHandleDescriptionUpdatedAction","__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__","newFetchedPageState","newDescriptionUpdatedState","Navbar","__WEBPACK_IMPORTED_MODULE_4__text_Text__","__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_6__Navbar_css__","navClassNames"],"mappings":"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","file":"static/js/main.91885b73.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/workflow/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n  module.exports = __webpack_require__(53);\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = __webpack_require__(65)();\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return classNames; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * Computes the class names of an element from the given static class names\n * along with optional class names which can be null or undefined.\n */var classNames=function classNames(staticClassNames){for(var _len=arguments.length,optionalClassNames=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){optionalClassNames[_key-1]=arguments[_key];}var classNames=staticClassNames+' '+optionalClassNames.filter(function(n){return n;}).join(' ');return classNames.trim();};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return XS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return S; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return M; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return L; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return XL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return XXL; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var XS='4px';var S='8px';var M='16px';var L='32px';var XL='64px';var XXL='128px';\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Spacing; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SpacingConstants__ = __webpack_require__(3);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={top:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),right:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),bottom:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),left:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]])};/**\n * The Spacing component is used to help manage the layout of the components.\n *\n * It will compute a padding for the div which will encapsulate the children from\n * the given value of top, right, bottom and left.\n */var Spacing=function Spacing(_ref){var children=_ref.children,top=_ref.top,right=_ref.right,bottom=_ref.bottom,left=_ref.left;var style={paddingTop:top,paddingRight:right,paddingBottom:bottom,paddingLeft:left};return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{style:style},children);};Spacing.propTypes=propTypes;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (false) {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Text_css__ = __webpack_require__(104);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Text_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Text_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,loading:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,weight:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"g\" /* LIGHT */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"i\" /* REGULAR */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"j\" /* SEMI_BOLD */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"a\" /* BOLD */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"b\" /* EXTRA_BOLD */]]).isRequired,size:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"e\" /* EXTRA_SMALL */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"k\" /* SMALL */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"h\" /* MEDIUM */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"f\" /* LARGE */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"d\" /* EXTRA_LARGE */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"c\" /* EXTRA_EXTRA_LARGE */]]).isRequired,hideOverflow:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};var defaultProps={weight:__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"i\" /* REGULAR */],size:__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"k\" /* SMALL */]};var Text=function Text(_ref){var children=_ref.children,className=_ref.className,weight=_ref.weight,size=_ref.size,hideOverflow=_ref.hideOverflow,loading=_ref.loading,props=_objectWithoutProperties(_ref,['children','className','weight','size','hideOverflow','loading']);var textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('text',size,weight);if(hideOverflow){textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,'hideoverflow');}if(loading){textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,'loading');}textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:textClassNames},children);};Text.propTypes=propTypes;Text.defaultProps=defaultProps;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return LIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return REGULAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return SEMI_BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return EXTRA_BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return EXTRA_EXTRA_LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return EXTRA_LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return MEDIUM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return SMALL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return EXTRA_SMALL; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/// Text weights\nvar LIGHT='light';var REGULAR='regular';var SEMI_BOLD='semibold';var BOLD='bold';var EXTRA_BOLD='extrabold';// Text sizes\nvar EXTRA_EXTRA_LARGE='xxl';var EXTRA_LARGE='xl';var LARGE='l';var MEDIUM='m';var SMALL='s';var EXTRA_SMALL='xs';\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (false) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Card; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Divider; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Card_css__ = __webpack_require__(98);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Card_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Card_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var CARD__CLASS_NAMES='card';/**\n * The Card component is used as a common block of the user interface.\n */var Card=function Card(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:cardClassNames},props),props.children);};var CARD_DIVIDER__CLASS_NAMES='card-divider';/**\n * The Divider is used to separate two main parts of the Card like the Header\n * and the Body or the Body and the Footer.\n */var Divider=function Divider(_ref2){var className=_ref2.className,props=_objectWithoutProperties(_ref2,['className']);var dividerClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(CARD_DIVIDER__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:dividerClassNames},props));};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__ = __webpack_require__(64);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__HashRouter__ = __webpack_require__(69);\n/* unused harmony reexport HashRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Link__ = __webpack_require__(35);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_2__Link__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MemoryRouter__ = __webpack_require__(71);\n/* unused harmony reexport MemoryRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NavLink__ = __webpack_require__(74);\n/* unused harmony reexport NavLink */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Prompt__ = __webpack_require__(77);\n/* unused harmony reexport Prompt */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Redirect__ = __webpack_require__(79);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_6__Redirect__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Route__ = __webpack_require__(36);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_7__Route__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Router__ = __webpack_require__(25);\n/* unused harmony reexport Router */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__StaticRouter__ = __webpack_require__(85);\n/* unused harmony reexport StaticRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Switch__ = __webpack_require__(87);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_10__Switch__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__matchPath__ = __webpack_require__(89);\n/* unused harmony reexport matchPath */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__withRouter__ = __webpack_require__(90);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_12__withRouter__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Loading; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return LoadingProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return LoadingConsumer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Loading_css__ = __webpack_require__(102);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Loading_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__Loading_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var LOADING__CLASS_NAMES='loading';/**\n * The Login component is used to display that we are waiting for some\n * asynchronous process to finish like a request to a server.\n */var Loading=function Loading(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var loadingClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(LOADING__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:loadingClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null));};var LoadingProvider=function(_Component){_inherits(LoadingProvider,_Component);function LoadingProvider(){_classCallCheck(this,LoadingProvider);return _possibleConstructorReturn(this,(LoadingProvider.__proto__||Object.getPrototypeOf(LoadingProvider)).apply(this,arguments));}_createClass(LoadingProvider,[{key:'getChildContext',value:function getChildContext(){return{LoadingProvider_LOADING:this.props.loading};}},{key:'render',value:function render(){return this.props.children;}}]);return LoadingProvider;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);LoadingProvider.childContextTypes={LoadingProvider_LOADING:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired};var LoadingConsumer=function LoadingConsumer(props,context){var render=props.render,_props$children=props.children,children=_props$children===undefined?render:_props$children;var loading=context.LoadingProvider_LOADING;return children(loading);};LoadingConsumer.contextTypes={LoadingProvider_LOADING:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return UNKNOWN_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return UNSUPPORTED_STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return RENDERING_ERROR; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/// See the knowledge base document for more information regarding errors\nvar UNKNOWN_ERROR=1000;var UNSUPPORTED_STATE=1001;var RENDERING_ERROR=1002;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SINGLE_LINE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return TWO_LINES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return THREE_LINES; });\n/* unused harmony export LIST_WITH_SEPARATOR__KIND */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return LIST_WITH_HIGHLIGHT__KIND; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var SINGLE_LINE='SINGLE_LINE';var TWO_LINES='TWO_LINES';var THREE_LINES='THREE_LINES';var LIST_WITH_SEPARATOR__KIND='list--separated';var LIST_WITH_HIGHLIGHT__KIND='list--highlighted';\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return addLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return stripLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return hasBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return stripBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return stripTrailingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return parsePath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return createPath; });\nvar addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ErrorCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__ = __webpack_require__(99);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ErrorCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={code:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};var ERRORCARD__CLASS_NAMES='errorcard';var ERRORCARD_CONTAINER__CLASS_NAMES='errorcard-container';var ERRORCARD_TITLE__CLASS_NAMES='title-l';/**\n * The ErrorCard component is used to display errors.\n */var ErrorCard=function ErrorCard(_ref){var className=_ref.className,code=_ref.code,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','code','title','message']);var errorCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(ERRORCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:errorCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ERRORCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:ERRORCARD_TITLE__CLASS_NAMES},title)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',null,message+' (code: '+code+')'))));};ErrorCard.propTypes=propTypes;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return dispatcherCreator; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The dispatcher creator is a function which will create a new dispatcher\n * initialized thanks to the following parameters:\n *\n * First, the finite state machine defining all the states and transitions in\n * the stateful component. Second, the reducer used to define the behavior of\n * each transition, allowing the stateful component to move from one state to\n * another and finally, the initial state of the finite state machine.\n *\n * It will then return a dispatcher which will ensure that the reducer cannot\n * be called to execute an action which is not defined on the current state\n * starting with the initial state. It will also make sure that the new state\n * computed by the reducer is accessible from the current state with the action\n * that the reducer had to execute.\n *\n * Failure to comply with those requirements will result in an error logged in\n * the console and no change will be applied to the returned state.\n */var dispatcherCreator=function dispatcherCreator(FSM,reducer,INITIAL__STATE){return function(){var prevState=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{stateId:INITIAL__STATE};var props=arguments[1];var action=arguments[2];var transitions=FSM[prevState.stateId];var newPotentialState=transitions[action.kind];if(newPotentialState){var newState=reducer(prevState,props,action);if(newPotentialState.indexOf(newState.stateId)!==-1){if(FSM[newState.stateId]){return newState;}else{console.error(\"The state \"+newState.stateId+\" does not exist.\");}}else{console.error(\"The state '\"+newState.stateId+\"' should not be accessible from \"+prevState.stateId+\" with the transition \"+action.kind+\".\");}}else{console.error(\"The state '\"+prevState.stateId+\"' does not support the transition '\"+action.kind+\"'.\");}return prevState;};};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return createLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return locationsAreEqual; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_resolve_pathname__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_value_equal__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__PathUtils__ = __webpack_require__(15);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\nvar createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = Object(__WEBPACK_IMPORTED_MODULE_2__PathUtils__[\"d\" /* parsePath */])(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = Object(__WEBPACK_IMPORTED_MODULE_0_resolve_pathname__[\"default\"])(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(__WEBPACK_IMPORTED_MODULE_1_value_equal__[\"default\"])(a.state, b.state);\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export MainIcon */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AdditionalIcon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return MainText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return AdditionalText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return Tile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return List; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__List_css__ = __webpack_require__(111);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__List_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__List_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_TextConstants__ = __webpack_require__(7);\nfunction _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TILE_MAINICON__CLASS_NAMES='tile-mainicon';var mainIconPropTypes={};/**\n * The main icon is used to display an image before the main text.\n */var MainIcon=function MainIcon(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var mainIconClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_MAINICON__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:mainIconClassNames},props));};MainIcon.propTypes=mainIconPropTypes;var TILE_ADDITIONALICON__CLASS_NAMES='tile-additionalicon';var additionalIconPropTypes={};/**\n * The additional icon is used to display images after the main text.\n */var AdditionalIcon=function AdditionalIcon(_ref2){var className=_ref2.className,props=_objectWithoutProperties(_ref2,['className']);var additionalIconClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_ADDITIONALICON__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:additionalIconClassNames},props));};AdditionalIcon.propTypes=additionalIconPropTypes;var TILE_MAINTEXT__CLASS_NAMES='tile-maintext';var mainTextPropTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The MainText component is used as the main text content of a tile.\n */var MainText=function MainText(_ref3){var className=_ref3.className,children=_ref3.children,props=_objectWithoutProperties(_ref3,['className','children']);var mainTextClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_MAINTEXT__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__text_Text__[\"a\" /* Text */],Object.assign({className:mainTextClassNames},props),children);};MainText.propTypes=mainTextPropTypes;var TILE_ADDITIONALTEXT__CLASS_NAMES='tile-additionaltext';var additionalTextPropTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The AdditionalText component is used as the additional text content of a tile.\n */var AdditionalText=function AdditionalText(_ref4){var className=_ref4.className,children=_ref4.children,props=_objectWithoutProperties(_ref4,['className','children']);var additionalTextClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_ADDITIONALTEXT__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__text_Text__[\"a\" /* Text */],Object.assign({className:additionalTextClassNames},props,{size:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"e\" /* EXTRA_SMALL */],weight:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"g\" /* LIGHT */]}),children);};AdditionalText.propTypes=additionalTextPropTypes;var TILE__CLASS_NAMES='tile';var TILE__SINGLELINE__CLASS_NAMES='tile--singleline';var TILE__TWOLINE__CLASS_NAMES='tile--twoline';var TILE__THREELINE__CLASS_NAMES='tile--threeline';var tilePropTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"b\" /* SINGLE_LINE */],__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"d\" /* TWO_LINES */],__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"c\" /* THREE_LINES */]]).isRequired};/**\n * The SingleLineTile is used to represent one line of the list component. It\n * can display a main icon, some text and additional icons. The text displayed\n * can only use one line for the main text.\n */var Tile=function Tile(_ref5){var className=_ref5.className,kind=_ref5.kind,props=_objectWithoutProperties(_ref5,['className','kind']);var kindClassName=TILE__SINGLELINE__CLASS_NAMES;if(kind===__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"d\" /* TWO_LINES */]){kindClassName=TILE__TWOLINE__CLASS_NAMES;}else if(kind===__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"c\" /* THREE_LINES */]){kindClassName=TILE__THREELINE__CLASS_NAMES;}var tileClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE__CLASS_NAMES,kindClassName,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',Object.assign({className:tileClassNames},props));};Tile.propTypes=tilePropTypes;var LIST__CLASS_NAMES='list';var listPropTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array]),children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(Tile),__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.objectOf(Tile)])};var listDefaultProps={kind:''};/**\n * The List component is used to display a list of elements.\n *\n * Those elements can be separated by a line by using LIST_WITH_SEPARATOR__KIND\n * in the property kind. You can also add some highlight to the element over\n * which the mouse is located with LIST_WITH_HIGHLIGHT__KIND. Both properties\n * can be used at the same time.\n *\n * The List component can only have ListItem children.\n */var List=function List(_ref6){var children=_ref6.children,className=_ref6.className,kind=_ref6.kind,props=_objectWithoutProperties(_ref6,['children','className','kind']);var kinds=computeKinds(kind);var listClassNames=__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */].apply(undefined,[LIST__CLASS_NAMES].concat(_toConsumableArray(kinds),[className]));return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',Object.assign({className:listClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__[\"c\" /* S */],bottom:__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__[\"c\" /* S */]},children));};List.propTypes=listPropTypes;List.defaultProps=listDefaultProps;/**\n * Computes the kind ot the link.\n * @param kind The kind (which can be an array or a string)\n * @return The computed kind\n */var computeKinds=function computeKinds(kind){var kinds=[];if(Array.isArray(kind)){kinds=kind;}else if(typeof kind==='string'){kinds.push(kind);}return kinds;};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(138);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = __webpack_require__(32);\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = __webpack_require__(33);\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = __webpack_require__(14);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = (0, _PathUtils.parsePath)(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexports.default = createTransitionManager;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__ = __webpack_require__(26);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__[\"a\" /* default */]);\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n  _inherits(Router, _React$Component);\n\n  function Router() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Router);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props.history.location.pathname)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Router.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        history: this.props.history,\n        route: {\n          location: this.props.history.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Router.prototype.computeMatch = function computeMatch(pathname) {\n    return {\n      path: '/',\n      url: '/',\n      params: {},\n      isExact: pathname === '/'\n    };\n  };\n\n  Router.prototype.componentWillMount = function componentWillMount() {\n    var _this2 = this;\n\n    var _props = this.props,\n        children = _props.children,\n        history = _props.history;\n\n\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(children == null || __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 1, 'A <Router> may have only one child element');\n\n    // Do this here so we can setState when a <Redirect> changes the\n    // location in componentWillMount. This happens e.g. when doing\n    // server rendering using a <StaticRouter>.\n    this.unlisten = history.listen(function () {\n      _this2.setState({\n        match: _this2.computeMatch(history.location.pathname)\n      });\n    });\n  };\n\n  Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(this.props.history === nextProps.history, 'You cannot change <Router history>');\n  };\n\n  Router.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.unlisten();\n  };\n\n  Router.prototype.render = function render() {\n    var children = this.props.children;\n\n    return children ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null;\n  };\n\n  return Router;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRouter.propTypes = {\n  history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n  children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node\n};\nRouter.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRouter.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Router);\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__);\n\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n  var cacheKey = '' + options.end + options.strict + options.sensitive;\n  var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n  if (cache[pattern]) return cache[pattern];\n\n  var keys = [];\n  var re = __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default()(pattern, keys, options);\n  var compiledPattern = { re: re, keys: keys };\n\n  if (cacheCount < cacheLimit) {\n    cache[pattern] = compiledPattern;\n    cacheCount++;\n  }\n\n  return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (typeof options === 'string') options = { path: options };\n\n  var _options = options,\n      _options$path = _options.path,\n      path = _options$path === undefined ? '/' : _options$path,\n      _options$exact = _options.exact,\n      exact = _options$exact === undefined ? false : _options$exact,\n      _options$strict = _options.strict,\n      strict = _options$strict === undefined ? false : _options$strict,\n      _options$sensitive = _options.sensitive,\n      sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n  var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n      re = _compilePath.re,\n      keys = _compilePath.keys;\n\n  var match = re.exec(pathname);\n\n  if (!match) return null;\n\n  var url = match[0],\n      values = match.slice(1);\n\n  var isExact = pathname === url;\n\n  if (exact && !isExact) return null;\n\n  return {\n    path: path, // the path pattern used to match\n    url: path === '/' && url === '' ? '/' : url, // the matched portion of the URL\n    isExact: isExact, // whether or not we matched exactly\n    params: keys.reduce(function (memo, key, index) {\n      memo[key.name] = values[index];\n      return memo;\n    }, {})\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (matchPath);\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (createTransitionManager);\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Button; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Button_css__ = __webpack_require__(115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Button_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__Button_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"a\" /* BUTTON_DANGER__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"d\" /* BUTTON_SUCCESS__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"e\" /* BUTTON_WARNING__KIND */]]),loading:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};var defaultProps={kind:__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */]};var BUTTON__CLASS_NAMES='button';var BUTTON__LOADING__CLASS_NAMES='button--loading';var BUTTON_CONTAINER__CLASS_NAMES='button-container';var BUTTON_LOADINGINDICATOR__CLASS_NAMES='button-loadingindicator';var BUTTON_LABEL__CLASS_NAMES='button-label';/**\n * The button component.\n */var Button=function Button(_ref){var className=_ref.className,kind=_ref.kind,loading=_ref.loading,props=_objectWithoutProperties(_ref,['className','kind','loading']);var buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(BUTTON__CLASS_NAMES,className);if(loading){buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(buttonClassNames,BUTTON__LOADING__CLASS_NAMES);}else{var kindClassNames=getKindClassNames(kind);buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(buttonClassNames,kindClassNames);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('button',Object.assign({className:buttonClassNames},props,{disabled:loading}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:BUTTON_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__loading_Loading__[\"a\" /* Loading */],{className:BUTTON_LOADINGINDICATOR__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],{className:BUTTON_LABEL__CLASS_NAMES,weight:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"j\" /* SEMI_BOLD */]},props.children))));};Button.propTypes=propTypes;Button.defaultProps=defaultProps;var BUTTON_DEFAULT_KIND__CLASS_NAMES='button--default';var BUTTON_PRIMARY_KIND__CLASS_NAMES='button--primary';var BUTTON_SUCCESS_KIND__CLASS_NAMES='button--success';var BUTTON_WARNING_KIND__CLASS_NAMES='button--warning';var BUTTON_DANGER_KIND__CLASS_NAMES='button--danger';/**\n * Computes the name of the kind class from the given kind.\n * @param kind The kind of the button\n * @returns The class names for the given kind\n */var getKindClassNames=function getKindClassNames(kind){var kindClassNames=void 0;switch(kind){case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */]:kindClassNames=BUTTON_DEFAULT_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */]:kindClassNames=BUTTON_PRIMARY_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"d\" /* BUTTON_SUCCESS__KIND */]:kindClassNames=BUTTON_SUCCESS_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"e\" /* BUTTON_WARNING__KIND */]:kindClassNames=BUTTON_WARNING_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"a\" /* BUTTON_DANGER__KIND */]:kindClassNames=BUTTON_DANGER_KIND__CLASS_NAMES;break;default:kindClassNames=BUTTON_DEFAULT_KIND__CLASS_NAMES;break;}return kindClassNames;};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar asap = __webpack_require__(48);\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n  try {\n    return obj.then;\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nfunction tryCallOne(fn, a) {\n  try {\n    return fn(a);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\nfunction tryCallTwo(fn, a, b) {\n  try {\n    fn(a, b);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n  if (typeof this !== 'object') {\n    throw new TypeError('Promises must be constructed via new');\n  }\n  if (typeof fn !== 'function') {\n    throw new TypeError('Promise constructor\\'s argument is not a function');\n  }\n  this._75 = 0;\n  this._83 = 0;\n  this._18 = null;\n  this._38 = null;\n  if (fn === noop) return;\n  doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  if (this.constructor !== Promise) {\n    return safeThen(this, onFulfilled, onRejected);\n  }\n  var res = new Promise(noop);\n  handle(this, new Handler(onFulfilled, onRejected, res));\n  return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n  return new self.constructor(function (resolve, reject) {\n    var res = new Promise(noop);\n    res.then(resolve, reject);\n    handle(self, new Handler(onFulfilled, onRejected, res));\n  });\n}\nfunction handle(self, deferred) {\n  while (self._83 === 3) {\n    self = self._18;\n  }\n  if (Promise._47) {\n    Promise._47(self);\n  }\n  if (self._83 === 0) {\n    if (self._75 === 0) {\n      self._75 = 1;\n      self._38 = deferred;\n      return;\n    }\n    if (self._75 === 1) {\n      self._75 = 2;\n      self._38 = [self._38, deferred];\n      return;\n    }\n    self._38.push(deferred);\n    return;\n  }\n  handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n  asap(function() {\n    var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      if (self._83 === 1) {\n        resolve(deferred.promise, self._18);\n      } else {\n        reject(deferred.promise, self._18);\n      }\n      return;\n    }\n    var ret = tryCallOne(cb, self._18);\n    if (ret === IS_ERROR) {\n      reject(deferred.promise, LAST_ERROR);\n    } else {\n      resolve(deferred.promise, ret);\n    }\n  });\n}\nfunction resolve(self, newValue) {\n  // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n  if (newValue === self) {\n    return reject(\n      self,\n      new TypeError('A promise cannot be resolved with itself.')\n    );\n  }\n  if (\n    newValue &&\n    (typeof newValue === 'object' || typeof newValue === 'function')\n  ) {\n    var then = getThen(newValue);\n    if (then === IS_ERROR) {\n      return reject(self, LAST_ERROR);\n    }\n    if (\n      then === self.then &&\n      newValue instanceof Promise\n    ) {\n      self._83 = 3;\n      self._18 = newValue;\n      finale(self);\n      return;\n    } else if (typeof then === 'function') {\n      doResolve(then.bind(newValue), self);\n      return;\n    }\n  }\n  self._83 = 1;\n  self._18 = newValue;\n  finale(self);\n}\n\nfunction reject(self, newValue) {\n  self._83 = 2;\n  self._18 = newValue;\n  if (Promise._71) {\n    Promise._71(self, newValue);\n  }\n  finale(self);\n}\nfunction finale(self) {\n  if (self._75 === 1) {\n    handle(self, self._38);\n    self._38 = null;\n  }\n  if (self._75 === 2) {\n    for (var i = 0; i < self._38.length; i++) {\n      handle(self, self._38[i]);\n    }\n    self._38 = null;\n  }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n  var done = false;\n  var res = tryCallTwo(fn, function (value) {\n    if (done) return;\n    done = true;\n    resolve(promise, value);\n  }, function (reason) {\n    if (done) return;\n    done = true;\n    reject(promise, reason);\n  });\n  if (!done && res === IS_ERROR) {\n    done = true;\n    reject(promise, LAST_ERROR);\n  }\n}\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar emptyObject = {};\n\nif (false) {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\nfunction isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (resolvePathname);\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (valueEqual);\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware <a>.\n */\n\nvar Link = function (_React$Component) {\n  _inherits(Link, _React$Component);\n\n  function Link() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Link);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n      if (_this.props.onClick) _this.props.onClick(event);\n\n      if (!event.defaultPrevented && // onClick prevented default\n      event.button === 0 && // ignore right clicks\n      !_this.props.target && // let browser handle \"target=_blank\" etc.\n      !isModifiedEvent(event) // ignore clicks with modifier keys\n      ) {\n          event.preventDefault();\n\n          var history = _this.context.router.history;\n          var _this$props = _this.props,\n              replace = _this$props.replace,\n              to = _this$props.to;\n\n\n          if (replace) {\n            history.replace(to);\n          } else {\n            history.push(to);\n          }\n        }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Link.prototype.render = function render() {\n    var _props = this.props,\n        replace = _props.replace,\n        to = _props.to,\n        innerRef = _props.innerRef,\n        props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars\n\n    __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Link> outside a <Router>');\n\n    var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);\n\n    return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n  };\n\n  return Link;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nLink.propTypes = {\n  onClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n  target: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired,\n  innerRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])\n};\nLink.defaultProps = {\n  replace: false\n};\nLink.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      createHref: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Link);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__ = __webpack_require__(37);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__[\"a\" /* default */]);\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(27);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n  return __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n  _inherits(Route, _React$Component);\n\n  function Route() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Route);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props, _this.context.router)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Route.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        route: {\n          location: this.props.location || this.context.router.route.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Route.prototype.computeMatch = function computeMatch(_ref, router) {\n    var computedMatch = _ref.computedMatch,\n        location = _ref.location,\n        path = _ref.path,\n        strict = _ref.strict,\n        exact = _ref.exact,\n        sensitive = _ref.sensitive;\n\n    if (computedMatch) return computedMatch; // <Switch> already computed the match for us\n\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(router, 'You should not use <Route> or withRouter() outside a <Router>');\n\n    var route = router.route;\n\n    var pathname = (location || route.location).pathname;\n\n    return path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }) : route.match;\n  };\n\n  Route.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.render), 'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored');\n  };\n\n  Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(nextProps.location && !this.props.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(!nextProps.location && this.props.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n    this.setState({\n      match: this.computeMatch(nextProps, nextContext.router)\n    });\n  };\n\n  Route.prototype.render = function render() {\n    var match = this.state.match;\n    var _props = this.props,\n        children = _props.children,\n        component = _props.component,\n        render = _props.render;\n    var _context$router = this.context.router,\n        history = _context$router.history,\n        route = _context$router.route,\n        staticContext = _context$router.staticContext;\n\n    var location = this.props.location || route.location;\n    var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n    return component ? // component prop gets first priority, only called if there's a match\n    match ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(component, props) : null : render ? // render prop is next, only called if there's a match\n    match ? render(props) : null : children ? // children come last, always called\n    typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null : null;\n  };\n\n  return Route;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRoute.propTypes = {\n  computedMatch: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, // private, from <Switch>\n  path: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n  exact: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  strict: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  sensitive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n  render: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n  children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),\n  location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRoute.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n    route: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n    staticContext: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n  })\n};\nRoute.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Route);\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return canUseDOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return addEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return removeEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return getConfirmation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return supportsHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return supportsPopStateOnHashChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return supportsGoWithoutReloadUsingHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return isExtraneousPopstateEvent; });\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DASHBOARD_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return HANDLE_FETCHED_DASHBOARD__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var DASHBOARD_LOADED__STATE='DASHBOARD_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_DASHBOARD__ACTION='HANDLE_FETCHED_DASHBOARD__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_DASHBOARD__ACTION:[DASHBOARD_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},DASHBOARD_LOADED__STATE:{},ERROR__STATE:{}};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return NO_PROJECTS_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return PROJECTS_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_FETCHED_PROJECTS__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var NO_PROJECTS_LOADED__STATE='NO_PROJECTS_LOADED__STATE';var PROJECTS_LOADED__STATE='PROJECTS_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_PROJECTS__ACTION='HANDLE_FETCHED_PROJECTS__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_PROJECTS__ACTION:[NO_PROJECTS_LOADED__STATE,PROJECTS_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},NO_PROJECTS_LOADED__STATE:{},PROJECTS_LOADED__STATE:{},ERROR__STATE:{}};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BUTTON_DEFAULT__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return BUTTON_PRIMARY__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return BUTTON_SUCCESS__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return BUTTON_WARNING__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BUTTON_DANGER__KIND; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var BUTTON_DEFAULT__KIND='default';var BUTTON_PRIMARY__KIND='primary';var BUTTON_SUCCESS__KIND='success';var BUTTON_WARNING__KIND='warning';var BUTTON_DANGER__KIND='danger';\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return Form; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return Field; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return Label; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Description; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return TextField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ActionGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return ErrorGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Error; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Form_css__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Form_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Form_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var FORM__CLASS_NAMES='form';/**\n * The Form component.\n */var Form=function Form(_ref){var children=_ref.children,className=_ref.className,props=_objectWithoutProperties(_ref,['children','className']);var formClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(FORM__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('form',Object.assign({className:formClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var FIELD__CLASS_NAMES='field';/**\n * The Field component used to contain the label, the description and the widget.\n */var Field=function Field(_ref2){var children=_ref2.children,className=_ref2.className,props=_objectWithoutProperties(_ref2,['children','className']);var fieldClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(FIELD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:fieldClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var LABEL__CLASS_NAMES='label body-l';/**\n * The Label component.\n */var Label=function Label(_ref3){var className=_ref3.className,props=_objectWithoutProperties(_ref3,['className']);var labelClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(LABEL__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('label',Object.assign({className:labelClassNames},props)));};var DESCRIPTION__CLASS_NAMES='description caption-m';/**\n * The Description of the widget.\n */var Description=function Description(_ref4){var className=_ref4.className,props=_objectWithoutProperties(_ref4,['className']);var descriptionClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(DESCRIPTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',Object.assign({className:descriptionClassNames},props)));};var TEXTFIELD__CLASS_NAMES='textfield';/**\n * The Text widget.\n */var TextField=function TextField(_ref5){var className=_ref5.className,props=_objectWithoutProperties(_ref5,['className']);var textClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(TEXTFIELD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input',Object.assign({className:textClassNames,type:'text'},props));};var ACTION_GROUP__CLASS_NAMES='actiongroup';/**\n * The group of actions of the form, for example, the submit button.\n */var ActionGroup=function ActionGroup(_ref6){var children=_ref6.children,className=_ref6.className,props=_objectWithoutProperties(_ref6,['children','className']);var actionGroupClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ACTION_GROUP__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:actionGroupClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var ERROR_GROUP__CLASS_NAMES='errorgroup';/**\n * The group of errors of the form.\n */var ErrorGroup=function ErrorGroup(_ref7){var children=_ref7.children,className=_ref7.className,props=_objectWithoutProperties(_ref7,['children','className']);var errorGroupClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ERROR_GROUP__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:errorGroupClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},children));};var ERROR__CLASS_NAMES='error';/**\n * An error to be displayed in the form.\n */var Error=function Error(_ref8){var children=_ref8.children,className=_ref8.className,props=_objectWithoutProperties(_ref8,['children','className']);var errorClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ERROR__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:errorClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},children));};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return PRISTINE__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return MODIFIED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return REDIRECT__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return MODIFY_NAME__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return HANDLE_CREATED_PROJECT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var PRISTINE__STATE='PRISTINE__STATE';var MODIFIED__STATE='MODIFIED__STATE';var REDIRECT__STATE='REDIRECT__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var MODIFY_NAME__ACTION='MODIFY_NAME__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var HANDLE_CREATED_PROJECT__ACTION='HANDLE_CREATED_PROJECT__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[PRISTINE__STATE]},PRISTINE__STATE:{MODIFY_NAME__ACTION:[MODIFIED__STATE]},MODIFIED__STATE:{MODIFY_NAME__ACTION:[MODIFIED__STATE],HANDLE_ERROR__ACTION:[MODIFIED__STATE],HANDLE_CREATED_PROJECT__ACTION:[REDIRECT__STATE]},REDIRECT__STATE:{}};\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return PROJECT_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return HANDLE_FETCHED_PROJECT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return HANDLE_FETCHED_PAGE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_DESCRIPTION_UPDATED__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var PROJECT_LOADED__STATE='PROJECT_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_PROJECT__ACTION='HANDLE_FETCHED_PROJECT__ACTION';var HANDLE_FETCHED_PAGE__ACTION='HANDLE_FETCHED_PAGE__ACTION';var HANDLE_DESCRIPTION_UPDATED__ACTION='HANDLE_DESCRIPTION_UPDATED__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[PROJECT_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},PROJECT_LOADED__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[PROJECT_LOADED__STATE],HANDLE_FETCHED_PAGE__ACTION:[PROJECT_LOADED__STATE],HANDLE_DESCRIPTION_UPDATED__ACTION:[PROJECT_LOADED__STATE]},ERROR__STATE:{}};\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(46);\nmodule.exports = __webpack_require__(52);\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n\n\nif (typeof Promise === 'undefined') {\n  // Rejection tracking prevents a common issue where React gets into an\n  // inconsistent state due to an error, but it gets swallowed by a Promise,\n  // and the user has no idea what causes React's erratic future behavior.\n  __webpack_require__(47).enable();\n  window.Promise = __webpack_require__(50);\n}\n\n// fetch() polyfill for making API calls.\n__webpack_require__(51);\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = __webpack_require__(22);\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (false) {\n  require('raf').polyfill(global);\n}\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Promise = __webpack_require__(30);\n\nvar DEFAULT_WHITELIST = [\n  ReferenceError,\n  TypeError,\n  RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n  enabled = false;\n  Promise._47 = null;\n  Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n  options = options || {};\n  if (enabled) disable();\n  enabled = true;\n  var id = 0;\n  var displayId = 0;\n  var rejections = {};\n  Promise._47 = function (promise) {\n    if (\n      promise._83 === 2 && // IS REJECTED\n      rejections[promise._56]\n    ) {\n      if (rejections[promise._56].logged) {\n        onHandled(promise._56);\n      } else {\n        clearTimeout(rejections[promise._56].timeout);\n      }\n      delete rejections[promise._56];\n    }\n  };\n  Promise._71 = function (promise, err) {\n    if (promise._75 === 0) { // not yet handled\n      promise._56 = id++;\n      rejections[promise._56] = {\n        displayId: null,\n        error: err,\n        timeout: setTimeout(\n          onUnhandled.bind(null, promise._56),\n          // For reference errors and type errors, this almost always\n          // means the programmer made a mistake, so log them after just\n          // 100ms\n          // otherwise, wait 2 seconds to see if they get handled\n          matchWhitelist(err, DEFAULT_WHITELIST)\n            ? 100\n            : 2000\n        ),\n        logged: false\n      };\n    }\n  };\n  function onUnhandled(id) {\n    if (\n      options.allRejections ||\n      matchWhitelist(\n        rejections[id].error,\n        options.whitelist || DEFAULT_WHITELIST\n      )\n    ) {\n      rejections[id].displayId = displayId++;\n      if (options.onUnhandled) {\n        rejections[id].logged = true;\n        options.onUnhandled(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      } else {\n        rejections[id].logged = true;\n        logError(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      }\n    }\n  }\n  function onHandled(id) {\n    if (rejections[id].logged) {\n      if (options.onHandled) {\n        options.onHandled(rejections[id].displayId, rejections[id].error);\n      } else if (!rejections[id].onUnhandled) {\n        console.warn(\n          'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n        );\n        console.warn(\n          '  This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n          rejections[id].displayId + '.'\n        );\n      }\n    }\n  }\n}\n\nfunction logError(id, error) {\n  console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n  var errStr = (error && (error.stack || error)) + '';\n  errStr.split('\\n').forEach(function (line) {\n    console.warn('  ' + line);\n  });\n}\n\nfunction matchWhitelist(error, list) {\n  return list.some(function (cls) {\n    return error instanceof cls;\n  });\n}\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n    if (!queue.length) {\n        requestFlush();\n        flushing = true;\n    }\n    // Equivalent to push, but avoids a function call.\n    queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n    while (index < queue.length) {\n        var currentIndex = index;\n        // Advance the index before calling the task. This ensures that we will\n        // begin flushing on the next task the task throws an error.\n        index = index + 1;\n        queue[currentIndex].call();\n        // Prevent leaking memory for long chains of recursive calls to `asap`.\n        // If we call `asap` within tasks scheduled by `asap`, the queue will\n        // grow, but to avoid an O(n) walk for every task we execute, we don't\n        // shift tasks off the queue after they have been executed.\n        // Instead, we periodically shift 1024 tasks off the queue.\n        if (index > capacity) {\n            // Manually shift all values starting at the index back to the\n            // beginning of the queue.\n            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n                queue[scan] = queue[scan + index];\n            }\n            queue.length -= index;\n            index = 0;\n        }\n    }\n    queue.length = 0;\n    index = 0;\n    flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n    requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n    requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n    var toggle = 1;\n    var observer = new BrowserMutationObserver(callback);\n    var node = document.createTextNode(\"\");\n    observer.observe(node, {characterData: true});\n    return function requestCall() {\n        toggle = -toggle;\n        node.data = toggle;\n    };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n    return function requestCall() {\n        // We dispatch a timeout with a specified delay of 0 for engines that\n        // can reliably accommodate that request. This will usually be snapped\n        // to a 4 milisecond delay, but once we're flushing, there's no delay\n        // between events.\n        var timeoutHandle = setTimeout(handleTimer, 0);\n        // However, since this timer gets frequently dropped in Firefox\n        // workers, we enlist an interval handle that will try to fire\n        // an event 20 times per second until it succeeds.\n        var intervalHandle = setInterval(handleTimer, 50);\n\n        function handleTimer() {\n            // Whichever timer succeeds will cancel both timers and\n            // execute the callback.\n            clearTimeout(timeoutHandle);\n            clearInterval(intervalHandle);\n            callback();\n        }\n    };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(49)))\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = __webpack_require__(30);\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n  var p = new Promise(Promise._44);\n  p._83 = 1;\n  p._18 = value;\n  return p;\n}\nPromise.resolve = function (value) {\n  if (value instanceof Promise) return value;\n\n  if (value === null) return NULL;\n  if (value === undefined) return UNDEFINED;\n  if (value === true) return TRUE;\n  if (value === false) return FALSE;\n  if (value === 0) return ZERO;\n  if (value === '') return EMPTYSTRING;\n\n  if (typeof value === 'object' || typeof value === 'function') {\n    try {\n      var then = value.then;\n      if (typeof then === 'function') {\n        return new Promise(then.bind(value));\n      }\n    } catch (ex) {\n      return new Promise(function (resolve, reject) {\n        reject(ex);\n      });\n    }\n  }\n  return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n    function res(i, val) {\n      if (val && (typeof val === 'object' || typeof val === 'function')) {\n        if (val instanceof Promise && val.then === Promise.prototype.then) {\n          while (val._83 === 3) {\n            val = val._18;\n          }\n          if (val._83 === 1) return res(i, val._18);\n          if (val._83 === 2) reject(val._18);\n          val.then(function (val) {\n            res(i, val);\n          }, reject);\n          return;\n        } else {\n          var then = val.then;\n          if (typeof then === 'function') {\n            var p = new Promise(then.bind(val));\n            p.then(function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n      }\n      args[i] = val;\n      if (--remaining === 0) {\n        resolve(args);\n      }\n    }\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    values.forEach(function(value){\n      Promise.resolve(value).then(resolve, reject);\n    });\n  });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = 'status' in options ? options.status : 200\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_app_App__ = __webpack_require__(93);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reset_css__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reset_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__reset_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__app_css__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__app_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__app_css__);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The entry point of the application.\n */__WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"a\" /* BrowserRouter */],{basename:\"/workflow\"||''},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__components_app_App__[\"a\" /* App */],null)),document.getElementById('root'));\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar m=__webpack_require__(22),n=__webpack_require__(31),p=__webpack_require__(18),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;c<b;c++)e+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[c+1]);b=Error(e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}\nvar z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};function A(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}A.prototype.isReactComponent={};A.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?y(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};A.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction B(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}function C(){}C.prototype=A.prototype;var D=B.prototype=new C;D.constructor=B;m(D,A.prototype);D.isPureReactComponent=!0;function E(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}var F=E.prototype=new C;F.constructor=E;m(F,A.prototype);F.unstable_isAsyncReactComponent=!0;F.render=function(){return this.props.children};var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,e){var c,d={},g=null,k=null;if(null!=b)for(c in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)H.call(b,c)&&!I.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var h=Array(f),l=0;l<f;l++)h[l]=arguments[l+2];d.children=h}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:k,props:d,_owner:G.current}}function K(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===r}\nfunction escape(a){var b={\"\\x3d\":\"\\x3d0\",\":\":\"\\x3d2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var L=/\\/+/g,M=[];function N(a,b,e,c){if(M.length){var d=M.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function O(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>M.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+Q(d,k);g+=P(d,f,e,c)}else if(null===a||\"undefined\"===typeof a?f=null:(f=x&&a[x]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=\nf.call(a),k=0;!(d=a.next()).done;)d=d.value,f=b+Q(d,k++),g+=P(d,f,e,c);else\"object\"===d&&(e=\"\"+a,y(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function R(a,b){a.func.call(a.context,b,a.count++)}\nfunction S(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?T(a,c,e,p.thatReturnsArgument):null!=a&&(K(a)&&(b=d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(L,\"$\\x26/\")+\"/\")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function T(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(L,\"$\\x26/\")+\"/\");b=N(b,g,c,d);null==a||P(a,\"\",S,b);O(b)}\nvar U={Children:{map:function(a,b,e){if(null==a)return a;var c=[];T(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=N(null,null,b,e);null==a||P(a,\"\",R,b);O(b)},count:function(a){return null==a?0:P(a,\"\",p.thatReturnsNull,null)},toArray:function(a){var b=[];T(a,b,null,p.thatReturnsArgument);return b},only:function(a){K(a)?void 0:y(\"143\");return a}},Component:A,PureComponent:B,unstable_AsyncComponent:E,Fragment:w,createElement:J,cloneElement:function(a,b,e){var c=m({},a.props),\nd=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)H.call(b,h)&&!I.hasOwnProperty(h)&&(c[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)c.children=e;else if(1<h){f=Array(h);for(var l=0;l<h;l++)f[l]=arguments[l+2];c.children=f}return{$$typeof:r,type:a.type,key:d,ref:g,props:c,_owner:k}},createFactory:function(a){var b=J.bind(null,a);b.type=a;return b},\nisValidElement:K,version:\"16.2.0\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:G,assign:m}},V=Object.freeze({default:U}),W=V&&U||V;module.exports=W[\"default\"]?W[\"default\"]:W;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (false) {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (true) {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = __webpack_require__(55);\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.2.0\n * react-dom.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\nvar aa=__webpack_require__(0),l=__webpack_require__(56),B=__webpack_require__(22),C=__webpack_require__(18),ba=__webpack_require__(57),da=__webpack_require__(58),ea=__webpack_require__(59),fa=__webpack_require__(60),ia=__webpack_require__(63),D=__webpack_require__(31);\nfunction E(a){for(var b=arguments.length-1,c=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,d=0;d<b;d++)c+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[d+1]);b=Error(c+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}aa?void 0:E(\"227\");\nvar oa={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0};function pa(a,b){return(a&b)===b}\nvar ta={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=ta,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ua.hasOwnProperty(f)?E(\"48\",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:pa(h,b.MUST_USE_PROPERTY),\nhasBooleanValue:pa(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:pa(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:pa(h,b.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:pa(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:pa(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2<a.length&&(\"o\"===a[0]||\"O\"===a[0])&&(\"n\"===a[1]||\"N\"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case \"boolean\":return oa.hasOwnProperty(a)?a=!0:(b=wa(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a=\"data-\"===a||\"aria-\"===a),a;case \"undefined\":case \"number\":case \"string\":case \"object\":return!0;default:return!1}}function wa(a){return ua.hasOwnProperty(a)?ua[a]:null}\nvar xa=ta,ya=xa.MUST_USE_PROPERTY,K=xa.HAS_BOOLEAN_VALUE,za=xa.HAS_NUMERIC_VALUE,Aa=xa.HAS_POSITIVE_NUMERIC_VALUE,Ba=xa.HAS_OVERLOADED_BOOLEAN_VALUE,Ca=xa.HAS_STRING_BOOLEAN_VALUE,Da={Properties:{allowFullScreen:K,async:K,autoFocus:K,autoPlay:K,capture:Ba,checked:ya|K,cols:Aa,contentEditable:Ca,controls:K,\"default\":K,defer:K,disabled:K,download:Ba,draggable:Ca,formNoValidate:K,hidden:K,loop:K,multiple:ya|K,muted:ya|K,noValidate:K,open:K,playsInline:K,readOnly:K,required:K,reversed:K,rows:Aa,rowSpan:za,\nscoped:K,seamless:K,selected:ya|K,size:Aa,start:za,span:Aa,spellCheck:Ca,style:0,tabIndex:0,itemScope:K,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ca},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute(\"value\");\"number\"!==a.type||!1===a.hasAttribute(\"value\")?a.setAttribute(\"value\",\"\"+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&\na.setAttribute(\"value\",\"\"+b)}}},Ea=xa.HAS_STRING_BOOLEAN_VALUE,M={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},Ga={Properties:{autoReverse:Ea,externalResourcesRequired:Ea,preserveAlpha:Ea},DOMAttributeNames:{autoReverse:\"autoReverse\",externalResourcesRequired:\"externalResourcesRequired\",preserveAlpha:\"preserveAlpha\"},DOMAttributeNamespaces:{xlinkActuate:M.xlink,xlinkArcrole:M.xlink,xlinkHref:M.xlink,xlinkRole:M.xlink,xlinkShow:M.xlink,xlinkTitle:M.xlink,xlinkType:M.xlink,\nxmlBase:M.xml,xmlLang:M.xml,xmlSpace:M.xml}},Ha=/[\\-\\:]([a-z])/g;function Ia(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space\".split(\" \").forEach(function(a){var b=a.replace(Ha,\nIa);Ga.Properties[b]=0;Ga.DOMAttributeNames[b]=a});xa.injectDOMPropertyConfig(Da);xa.injectDOMPropertyConfig(Ga);\nvar P={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){\"function\"!==typeof a.invokeGuardedCallback?E(\"197\"):void 0;Ja=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Ja.apply(P,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){P.invokeGuardedCallback.apply(this,arguments);if(P.hasCaughtError()){var q=P.clearCaughtError();P._hasRethrowError||(P._hasRethrowError=!0,P._rethrowError=\nq)}},rethrowCaughtError:function(){return Ka.apply(P,arguments)},hasCaughtError:function(){return P._hasCaughtError},clearCaughtError:function(){if(P._hasCaughtError){var a=P._caughtError;P._caughtError=null;P._hasCaughtError=!1;return a}E(\"198\")}};function Ja(a,b,c,d,e,f,g,h,k){P._hasCaughtError=!1;P._caughtError=null;var q=Array.prototype.slice.call(arguments,3);try{b.apply(c,q)}catch(v){P._caughtError=v,P._hasCaughtError=!0}}\nfunction Ka(){if(P._hasRethrowError){var a=P._rethrowError;P._rethrowError=null;P._hasRethrowError=!1;throw a;}}var La=null,Ma={};\nfunction Na(){if(La)for(var a in Ma){var b=Ma[a],c=La.indexOf(a);-1<c?void 0:E(\"96\",a);if(!Oa[c]){b.extractEvents?void 0:E(\"97\",a);Oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Pa.hasOwnProperty(h)?E(\"99\",h):void 0;Pa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&Qa(k[e],g,h);e=!0}else f.registrationName?(Qa(f.registrationName,g,h),e=!0):e=!1;e?void 0:E(\"98\",d,a)}}}}\nfunction Qa(a,b,c){Ra[a]?E(\"100\",a):void 0;Ra[a]=b;Sa[a]=b.eventTypes[c].dependencies}var Oa=[],Pa={},Ra={},Sa={};function Ta(a){La?E(\"101\"):void 0;La=Array.prototype.slice.call(a);Na()}function Ua(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];Ma.hasOwnProperty(c)&&Ma[c]===d||(Ma[c]?E(\"102\",c):void 0,Ma[c]=d,b=!0)}b&&Na()}\nvar Va=Object.freeze({plugins:Oa,eventNameDispatchConfigs:Pa,registrationNameModules:Ra,registrationNameDependencies:Sa,possibleRegistrationNames:null,injectEventPluginOrder:Ta,injectEventPluginsByName:Ua}),Wa=null,Xa=null,Ya=null;function Za(a,b,c,d){b=a.type||\"unknown-event\";a.currentTarget=Ya(d);P.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}\nfunction $a(a,b){null==b?E(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function ab(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var bb=null;\nfunction cb(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Za(a,b,c[e],d[e]);else c&&Za(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function db(a){return cb(a,!0)}function gb(a){return cb(a,!1)}var hb={injectEventPluginOrder:Ta,injectEventPluginsByName:Ua};\nfunction ib(a,b){var c=a.stateNode;if(!c)return null;var d=Wa(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?E(\"231\",b,typeof c):void 0;\nreturn c}function jb(a,b,c,d){for(var e,f=0;f<Oa.length;f++){var g=Oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=$a(e,g))}return e}function kb(a){a&&(bb=$a(bb,a))}function lb(a){var b=bb;bb=null;b&&(a?ab(b,db):ab(b,gb),bb?E(\"95\"):void 0,P.rethrowCaughtError())}var mb=Object.freeze({injection:hb,getListener:ib,extractEvents:jb,enqueueEvents:kb,processEventQueue:lb}),nb=Math.random().toString(36).slice(2),Q=\"__reactInternalInstance$\"+nb,ob=\"__reactEventHandlers$\"+nb;\nfunction pb(a){if(a[Q])return a[Q];for(var b=[];!a[Q];)if(b.push(a),a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[Q];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[Q]);a=b.pop())c=d;return c}function qb(a){if(5===a.tag||6===a.tag)return a.stateNode;E(\"33\")}function rb(a){return a[ob]||null}\nvar sb=Object.freeze({precacheFiberNode:function(a,b){b[Q]=a},getClosestInstanceFromNode:pb,getInstanceFromNode:function(a){a=a[Q];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:qb,getFiberCurrentPropsFromNode:rb,updateFiberProps:function(a,b){a[ob]=b}});function tb(a){do a=a[\"return\"];while(a&&5!==a.tag);return a?a:null}function ub(a,b,c){for(var d=[];a;)d.push(a),a=tb(a);for(a=d.length;0<a--;)b(d[a],\"captured\",c);for(a=0;a<d.length;a++)b(d[a],\"bubbled\",c)}\nfunction vb(a,b,c){if(b=ib(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a)}function wb(a){a&&a.dispatchConfig.phasedRegistrationNames&&ub(a._targetInst,vb,a)}function xb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?tb(b):null;ub(b,vb,a)}}\nfunction yb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=ib(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a))}function zb(a){a&&a.dispatchConfig.registrationName&&yb(a._targetInst,null,a)}function Ab(a){ab(a,wb)}\nfunction Bb(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=tb(h))g++;h=0;for(var k=f;k;k=tb(k))h++;for(;0<g-h;)e=tb(e),g--;for(;0<h-g;)f=tb(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=tb(e);f=tb(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=tb(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=tb(d)}for(d=0;d<e.length;d++)yb(e[d],\"bubbled\",a);for(a=c.length;0<a--;)yb(c[a],\"captured\",b)}\nvar Cb=Object.freeze({accumulateTwoPhaseDispatches:Ab,accumulateTwoPhaseDispatchesSkipTarget:function(a){ab(a,xb)},accumulateEnterLeaveDispatches:Bb,accumulateDirectDispatches:function(a){ab(a,zb)}}),Db=null;function Eb(){!Db&&l.canUseDOM&&(Db=\"textContent\"in document.documentElement?\"textContent\":\"innerText\");return Db}var S={_root:null,_startText:null,_fallbackText:null};\nfunction Fb(){if(S._fallbackText)return S._fallbackText;var a,b=S._startText,c=b.length,d,e=Gb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);S._fallbackText=e.slice(a,1<d?1-d:void 0);return S._fallbackText}function Gb(){return\"value\"in S._root?S._root.value:S._root[Eb()]}\nvar Hb=\"dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances\".split(\" \"),Ib={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nfunction T(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?C.thatReturnsTrue:C.thatReturnsFalse;this.isPropagationStopped=C.thatReturnsFalse;return this}\nB(T.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,\ndestructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Hb.length;a++)this[Hb[a]]=null}});T.Interface=Ib;T.augmentClass=function(a,b){function c(){}c.prototype=this.prototype;var d=new c;B(d,a.prototype);a.prototype=d;a.prototype.constructor=a;a.Interface=B({},this.Interface,b);a.augmentClass=this.augmentClass;Jb(a)};Jb(T);function Kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction Lb(a){a instanceof this?void 0:E(\"223\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8<Wb&&11>=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"topCompositionEnd\":return $b?null:b.data;default:return null}}\nvar ic={eventTypes:bc,extractEvents:function(a,b,c,d){var e;if(Vb)b:{switch(a){case \"topCompositionStart\":var f=bc.compositionStart;break b;case \"topCompositionEnd\":f=bc.compositionEnd;break b;case \"topCompositionUpdate\":f=bc.compositionUpdate;break b}f=void 0}else fc?dc(a,c)&&(f=bc.compositionEnd):\"topKeyDown\"===a&&229===c.keyCode&&(f=bc.compositionStart);f?($b&&(fc||f!==bc.compositionStart?f===bc.compositionEnd&&fc&&(e=Fb()):(S._root=d,S._startText=Gb(),fc=!0)),f=Mb.getPooled(f,b,c,d),e?f.data=\ne:(e=ec(c),null!==e&&(f.data=e)),Ab(f),e=f):e=null;(a=Zb?gc(a,c):hc(a,c))?(b=Nb.getPooled(bc.beforeInput,b,c,d),b.data=a,Ab(b)):b=null;return[e,b]}},jc=null,kc=null,lc=null;function mc(a){if(a=Xa(a)){jc&&\"function\"===typeof jc.restoreControlledState?void 0:E(\"194\");var b=Wa(a.stateNode);jc.restoreControlledState(a.stateNode,a.type,b)}}var nc={injectFiberControlledHostComponent:function(a){jc=a}};function oc(a){kc?lc?lc.push(a):lc=[a]:kc=a}\nfunction pc(){if(kc){var a=kc,b=lc;lc=kc=null;mc(a);if(b)for(a=0;a<b.length;a++)mc(b[a])}}var qc=Object.freeze({injection:nc,enqueueStateRestore:oc,restoreStateIfNeeded:pc});function rc(a,b){return a(b)}var sc=!1;function tc(a,b){if(sc)return rc(a,b);sc=!0;try{return rc(a,b)}finally{sc=!1,pc()}}var uc={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};\nfunction vc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!uc[a.type]:\"textarea\"===b?!0:!1}function wc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xc;l.canUseDOM&&(xc=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\"));\nfunction yc(a,b){if(!l.canUseDOM||b&&!(\"addEventListener\"in document))return!1;b=\"on\"+a;var c=b in document;c||(c=document.createElement(\"div\"),c.setAttribute(b,\"return;\"),c=\"function\"===typeof c[b]);!c&&xc&&\"wheel\"===a&&(c=document.implementation.hasFeature(\"Events.wheel\",\"3.0\"));return c}function zc(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ac(a){var b=zc(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"function\"===typeof c.get&&\"function\"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=\"\"+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}\nfunction Bc(a){a._valueTracker||(a._valueTracker=Ac(a))}function Cc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=zc(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}var Dc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange\".split(\" \")}};\nfunction Ec(a,b,c){a=T.getPooled(Dc.change,a,b,c);a.type=\"change\";oc(c);Ab(a);return a}var Fc=null,Gc=null;function Hc(a){kb(a);lb(!1)}function Ic(a){var b=qb(a);if(Cc(b))return a}function Jc(a,b){if(\"topChange\"===a)return b}var Kc=!1;l.canUseDOM&&(Kc=yc(\"input\")&&(!document.documentMode||9<document.documentMode));function Lc(){Fc&&(Fc.detachEvent(\"onpropertychange\",Mc),Gc=Fc=null)}function Mc(a){\"value\"===a.propertyName&&Ic(Gc)&&(a=Ec(Gc,a,wc(a)),tc(Hc,a))}\nfunction Nc(a,b,c){\"topFocus\"===a?(Lc(),Fc=b,Gc=c,Fc.attachEvent(\"onpropertychange\",Mc)):\"topBlur\"===a&&Lc()}function Oc(a){if(\"topSelectionChange\"===a||\"topKeyUp\"===a||\"topKeyDown\"===a)return Ic(Gc)}function Pc(a,b){if(\"topClick\"===a)return Ic(b)}function $c(a,b){if(\"topInput\"===a||\"topChange\"===a)return Ic(b)}\nvar ad={eventTypes:Dc,_isInputEventSupported:Kc,extractEvents:function(a,b,c,d){var e=b?qb(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Jc;else if(vc(e))if(Kc)g=$c;else{g=Oc;var h=Nc}else f=e.nodeName,!f||\"input\"!==f.toLowerCase()||\"checkbox\"!==e.type&&\"radio\"!==e.type||(g=Pc);if(g&&(g=g(a,b)))return Ec(g,c,d);h&&h(a,e,b);\"topBlur\"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&\"number\"===e.type&&(a=\"\"+e.value,e.getAttribute(\"value\")!==\na&&e.setAttribute(\"value\",a))}};function bd(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(bd,{view:null,detail:null});var cd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}function fd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(fd,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});\nvar gd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},hd={eventTypes:gd,extractEvents:function(a,b,c,d){if(\"topMouseOver\"===a&&(c.relatedTarget||c.fromElement)||\"topMouseOut\"!==a&&\"topMouseOver\"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;\"topMouseOut\"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?pb(b):null):a=null;if(a===\nb)return null;var f=null==a?e:qb(a);e=null==b?e:qb(b);var g=fd.getPooled(gd.mouseLeave,a,c,d);g.type=\"mouseleave\";g.target=f;g.relatedTarget=e;c=fd.getPooled(gd.mouseEnter,b,c,d);c.type=\"mouseenter\";c.target=e;c.relatedTarget=f;Bb(g,c,a,b);return[g,c]}},id=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;function jd(a){a=a.type;return\"string\"===typeof a?a:\"function\"===typeof a?a.displayName||a.name:null}\nfunction kd(a){var b=a;if(a.alternate)for(;b[\"return\"];)b=b[\"return\"];else{if(0!==(b.effectTag&2))return 1;for(;b[\"return\"];)if(b=b[\"return\"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){return(a=a._reactInternalFiber)?2===kd(a):!1}function md(a){2!==kd(a)?E(\"188\"):void 0}\nfunction nd(a){var b=a.alternate;if(!b)return b=kd(a),3===b?E(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c[\"return\"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return md(e),a;if(g===d)return md(e),b;g=g.sibling}E(\"188\")}if(c[\"return\"]!==d[\"return\"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:E(\"189\")}}c.alternate!==d?E(\"190\"):void 0}3!==c.tag?E(\"188\"):void 0;return c.stateNode.current===c?a:b}function od(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}\nfunction pd(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}var qd=[];\nfunction rd(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c[\"return\"];)c=c[\"return\"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);b=pb(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],sd(a.topLevelType,b,a.nativeEvent,wc(a.nativeEvent))}var td=!0,sd=void 0;function ud(a){td=!!a}function U(a,b,c){return c?ba.listen(c,b,vd.bind(null,a)):null}function wd(a,b,c){return c?ba.capture(c,b,vd.bind(null,a)):null}\nfunction vd(a,b){if(td){var c=wc(b);c=pb(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(qd.length){var d=qd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{tc(rd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?qb(b):window;switch(a){case \"topFocus\":if(vc(e)||\"true\"===e.contentEditable)Nd=e,Od=b,Pd=null;break;case \"topBlur\":Pd=Od=Nd=null;break;case \"topMouseDown\":Qd=!0;break;case \"topContextMenu\":case \"topMouseUp\":return Qd=!1,Rd(c,d);case \"topSelectionChange\":if(Ld)break;\ncase \"topKeyDown\":case \"topKeyUp\":return Rd(c,d)}return null}};function Td(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});function Ud(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Ud,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}});function Vd(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(Vd,{relatedTarget:null});\nfunction Wd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}\nvar Xd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Yd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};function Zd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(Zd,{key:function(a){if(a.key){var b=Xd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=Wd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Yd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ed,charCode:function(a){return\"keypress\"===a.type?Wd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?Wd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}});function $d(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass($d,{dataTransfer:null});function ae(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(ae,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ed});function be(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(be,{propertyName:null,elapsedTime:null,pseudoElement:null});\nfunction ce(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass(ce,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null});var de={},ee={};\n\"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel\".split(\" \").forEach(function(a){var b=a[0].toUpperCase()+\na.slice(1),c=\"on\"+b;b=\"top\"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+\"Capture\"},dependencies:[b]};de[a]=c;ee[b]=c});\nvar fe={eventTypes:de,extractEvents:function(a,b,c,d){var e=ee[a];if(!e)return null;switch(a){case \"topKeyPress\":if(0===Wd(c))return null;case \"topKeyDown\":case \"topKeyUp\":a=Zd;break;case \"topBlur\":case \"topFocus\":a=Vd;break;case \"topClick\":if(2===c.button)return null;case \"topDoubleClick\":case \"topMouseDown\":case \"topMouseMove\":case \"topMouseUp\":case \"topMouseOut\":case \"topMouseOver\":case \"topContextMenu\":a=fd;break;case \"topDrag\":case \"topDragEnd\":case \"topDragEnter\":case \"topDragExit\":case \"topDragLeave\":case \"topDragOver\":case \"topDragStart\":case \"topDrop\":a=\n$d;break;case \"topTouchCancel\":case \"topTouchEnd\":case \"topTouchMove\":case \"topTouchStart\":a=ae;break;case \"topAnimationEnd\":case \"topAnimationIteration\":case \"topAnimationStart\":a=Td;break;case \"topTransitionEnd\":a=be;break;case \"topScroll\":a=bd;break;case \"topWheel\":a=ce;break;case \"topCopy\":case \"topCut\":case \"topPaste\":a=Ud;break;default:a=T}b=a.getPooled(e,b,c,d);Ab(b);return b}};sd=function(a,b,c,d){a=jb(a,b,c,d);kb(a);lb(!1)};hb.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nWa=sb.getFiberCurrentPropsFromNode;Xa=sb.getInstanceFromNode;Ya=sb.getNodeFromInstance;hb.injectEventPluginsByName({SimpleEventPlugin:fe,EnterLeaveEventPlugin:hd,ChangeEventPlugin:ad,SelectEventPlugin:Sd,BeforeInputEventPlugin:ic});var ge=[],he=-1;function V(a){0>he||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;\"function\"!==typeof e?E(\"191\",e):void 0;e.call(b)}}\nfunction Le(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:ld,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,g)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});\na(c,g)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);He(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=ke(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?me(a,d):D;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,\nb){var c=a.alternate,d=a.stateNode,e=d.state||null,g=a.pendingProps;g?void 0:E(\"158\");var h=ke(a);d.props=g;d.state=a.memoizedState=e;d.refs=D;d.context=me(a,h);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);\"function\"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,null!==e&&(d.state=Je(c,a,e,d,g,b)));\"function\"===typeof d.componentDidMount&&(a.effectTag|=\n4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?E(\"159\"):void 0);var u=g.context,z=ke(b);z=me(b,z);\"function\"!==typeof g.componentWillReceiveProps||h===k&&u===z||(u=g.state,g.componentWillReceiveProps(k,z),g.state!==u&&f.enqueueReplaceState(g,g.state,null));u=b.memoizedState;e=null!==b.updateQueue?Je(a,b,b.updateQueue,g,k,e):u;if(!(h!==k||u!==e||X.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return\"function\"!==\ntypeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),!1;var G=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)G=!0;else{var I=b.stateNode,L=b.type;G=\"function\"===typeof I.shouldComponentUpdate?I.shouldComponentUpdate(G,e,z):L.prototype&&L.prototype.isPureReactComponent?!ea(h,G)||!ea(u,e):!0}G?(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(k,e,z),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4)):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=z;return G}}}var Qe=\"function\"===typeof Symbol&&Symbol[\"for\"],Re=Qe?Symbol[\"for\"](\"react.element\"):60103,Se=Qe?Symbol[\"for\"](\"react.call\"):60104,Te=Qe?Symbol[\"for\"](\"react.return\"):60105,Ue=Qe?Symbol[\"for\"](\"react.portal\"):60106,Ve=Qe?Symbol[\"for\"](\"react.fragment\"):60107,We=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction Xe(a){if(null===a||\"undefined\"===typeof a)return null;a=We&&a[We]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ye=Array.isArray;\nfunction Ze(a,b){var c=b.ref;if(null!==c&&\"function\"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?E(\"110\"):void 0,d=b.stateNode);d?void 0:E(\"147\",c);var e=\"\"+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===D?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}\"string\"!==typeof c?E(\"148\"):void 0;b._owner?void 0:E(\"149\",c)}return c}\nfunction $e(a,b){\"textarea\"!==a.type&&E(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction af(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=se(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=ve(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Ze(b,c),d[\"return\"]=a,d;d=te(c,a.internalContextTag,d);d.ref=Ze(b,c);d[\"return\"]=a;return d}function q(a,b,c,d){if(null===b||7!==b.tag)return b=we(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);\nb[\"return\"]=a;return b}function v(a,b,c,d){if(null===b||9!==b.tag)return b=xe(c,a.internalContextTag,d),b.type=c.value,b[\"return\"]=a,b;b=e(b,null,d);b.type=c.value;b[\"return\"]=a;return b}function y(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ye(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c.children||[],d);b[\"return\"]=a;return b}function u(a,b,c,d,f){if(null===b||10!==b.tag)return b=ue(c,a.internalContextTag,\nd,f),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function z(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=ve(\"\"+b,a.internalContextTag,c),b[\"return\"]=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Re:if(b.type===Ve)return b=ue(b.props.children,a.internalContextTag,c,b.key),b[\"return\"]=a,b;c=te(b,a.internalContextTag,c);c.ref=Ze(null,b);c[\"return\"]=a;return c;case Se:return b=we(b,a.internalContextTag,c),b[\"return\"]=a,b;case Te:return c=xe(b,a.internalContextTag,\nc),c.type=b.value,c[\"return\"]=a,c;case Ue:return b=ye(b,a.internalContextTag,c),b[\"return\"]=a,b}if(Ye(b)||Xe(b))return b=ue(b,a.internalContextTag,c,null),b[\"return\"]=a,b;$e(a,b)}return null}function G(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Re:return c.key===e?c.type===Ve?u(a,b,c.props.children,d,e):k(a,b,c,d):null;case Se:return c.key===e?q(a,b,c,d):null;case Te:return null===\ne?v(a,b,c,d):null;case Ue:return c.key===e?y(a,b,c,d):null}if(Ye(c)||Xe(c))return null!==e?null:u(a,b,c,d,null);$e(a,c)}return null}function I(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Re:return a=a.get(null===d.key?c:d.key)||null,d.type===Ve?u(b,a,d.props.children,e,d.key):k(b,a,d,e);case Se:return a=a.get(null===d.key?c:d.key)||null,q(b,a,d,e);case Te:return a=a.get(c)||null,v(b,a,d,e);case Ue:return a=\na.get(null===d.key?c:d.key)||null,y(b,a,d,e)}if(Ye(d)||Xe(d))return a=a.get(c)||null,u(b,a,d,e,null);$e(b,d)}return null}function L(e,g,m,A){for(var h=null,r=null,n=g,w=g=0,k=null;null!==n&&w<m.length;w++){n.index>w?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;w<m.length;w++)if(n=z(e,m[w],A))g=f(n,g,w),null===r?h=n:r.sibling=n,r=n;return h}for(n=\nd(e,n);w<m.length;w++)if(k=I(n,e,w,m[w],A)){if(a&&null!==k.alternate)n[\"delete\"](null===k.key?w:k.key);g=f(k,g,w);null===r?h=k:r.sibling=k;r=k}a&&n.forEach(function(a){return b(e,a)});return h}function N(e,g,m,A){var h=Xe(m);\"function\"!==typeof h?E(\"150\"):void 0;m=h.call(m);null==m?E(\"151\"):void 0;for(var r=h=null,n=g,w=g=0,k=null,x=m.next();null!==n&&!x.done;w++,x=m.next()){n.index>w?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=a;var c=a.firstEffect}else c=a;else c=a.firstEffect;yg();for(t=c;null!==t;){var d=!1,e=void 0;try{for(;null!==t;){var f=t.effectTag;f&16&&zg(t);if(f&128){var g=t.alternate;null!==g&&Ag(g)}switch(f&-242){case 2:Ne(t);t.effectTag&=-3;break;case 6:Ne(t);t.effectTag&=-3;Oe(t.alternate,t);break;case 4:Oe(t.alternate,\nt);break;case 8:Sc=!0,Bg(t),Sc=!1}t=t.nextEffect}}catch(Tc){d=!0,e=Tc}d&&(null===t?E(\"178\"):void 0,h(t,e),null!==t&&(t=t.nextEffect))}Cg();b.current=a;for(t=c;null!==t;){c=!1;d=void 0;try{for(;null!==t;){var k=t.effectTag;k&36&&Dg(t.alternate,t);k&128&&Eg(t);if(k&64)switch(e=t,f=void 0,null!==R&&(f=R.get(e),R[\"delete\"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=R.get(e),R[\"delete\"](e))),null==f?E(\"184\"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});\nbreak;case 3:null===ca&&(ca=f.error);break;default:E(\"157\")}var Qc=t.nextEffect;t.nextEffect=null;t=Qc}}catch(Tc){c=!0,d=Tc}c&&(null===t?E(\"178\"):void 0,h(t,d),null!==t&&(t=t.nextEffect))}ja=Qb=!1;\"function\"===typeof De&&De(a.stateNode);ha&&(ha.forEach(G),ha=null);null!==ca&&(a=ca,ca=null,Ob(a));b=b.current.expirationTime;0===b&&(qa=R=null);return b}function c(a){for(;;){var b=Fg(a.alternate,a,H),c=a[\"return\"],d=a.sibling;var e=a;if(2147483647===H||2147483647!==e.expirationTime){if(2!==e.tag&&3!==\ne.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;\nif(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=rg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function e(a){var b=Gg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function f(a){if(null!==R){if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1<he;)ge[he]=null,he--;je=D;ie.current=D;X.current=!1;x();ra=a;H=b;F=se(ra.current,null,b)}var c=!1,d=null;try{f(b)}catch(Rc){c=!0,d=Rc}for(;c;){if(eb){ca=d;break}var g=F;if(null===g)eb=!0;else{var k=h(g,d);null===k?E(\"183\"):void 0;if(!eb){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ne(g);break;case 5:qg(g);break;case 3:p(g);break;case 4:p(g)}if(g===k||g.alternate===k)break;g=g[\"return\"]}F=e(c);f(d)}catch(Rc){c=!0;d=Rc;continue}break}}}b=ca;eb=ja=!1;ca=\nnull;null!==b&&Ob(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=id.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,q(a)&&(eb=!0);else for(var g=a[\"return\"];null!==g&&null===c;){2===g.tag?\"function\"===typeof g.stateNode.componentDidCatch&&(d=!0,f=jd(g),c=g,e=!0):3===g.tag&&(c=g);if(q(g)){if(Sc||null!==ha&&(ha.has(g)||null!==g.alternate&&ha.has(g.alternate)))return null;c=null;e=!1}g=g[\"return\"]}if(null!==c){null===qa&&(qa=new Set);qa.add(c);var h=\"\";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=\ng._debugOwner,Qc=g._debugSource;var m=jd(g);var n=null;k&&(n=jd(k));k=Qc;m=\"\\n    in \"+(m||\"Unknown\")+(k?\" (at \"+k.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+k.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\");break a;default:m=\"\"}h+=m;g=g[\"return\"]}while(g);g=h;a=jd(a);null===R&&(R=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};R.set(c,b);try{var p=b.error;p&&p.suppressReactErrorLogging||console.error(p)}catch(Vc){Vc&&\nVc.suppressReactErrorLogging||console.error(Vc)}Qb?(null===ha&&(ha=new Set),ha.add(c)):G(c);return c}null===ca&&(ca=b);return null}function k(a){return null!==R&&(R.has(a)||null!==a.alternate&&R.has(a.alternate))}function q(a){return null!==qa&&(qa.has(a)||null!==a.alternate&&qa.has(a.alternate))}function v(){return 20*(((I()+100)/20|0)+1)}function y(a){return 0!==ka?ka:ja?Qb?1:H:!Hg||a.internalContextTag&1?v():1}function u(a,b){return z(a,b,!1)}function z(a,b){for(;null!==a;){if(0===a.expirationTime||\na.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&b<H&&(F=ra=null,H=0);var d=c,e=b;Rb>Ig&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Fa||(la?\nSb&&(ma=d,na=1,m(ma,na)):1===e?w(1,null):L(e));!ja&&c===ra&&b<H&&(F=ra=null,H=0)}else break;a=a[\"return\"]}}function G(a){z(a,1,!0)}function I(){return Uc=((Wc()-Pe)/10|0)+2}function L(a){if(0!==Tb){if(a>Tb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===O)break;c=d;d=d.nextScheduledRoot}}c=ma;null!==c&&c===b?Rb++:Rb=0;ma=b;na=a}function J(a){w(0,a)}function w(a,b){fb=b;for(N();null!==ma&&0!==na&&(0===a||na<=a)&&!Yc;)m(ma,na),N();null!==fb&&(Tb=0,Xc=-1);0!==na&&L(na);fb=null;Yc=!1;Rb=0;if(Ub)throw a=Zc,Zc=\nnull,Ub=!1,a;}function m(a,c){Fa?E(\"245\"):void 0;Fa=!0;if(c<=I()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(A()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Fa=!1}function A(){return null===fb||fb.timeRemaining()>Lg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ue,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}var qf=\"object\"===typeof performance&&\"function\"===typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};\nvar sf=void 0,tf=void 0;\nif(l.canUseDOM)if(\"function\"!==typeof requestIdleCallback||\"function\"!==typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);window.addEventListener(\"message\",function(a){if(a.source===window&&a.data===Cf){vf=!1;a=rf();if(0>=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b;yf=a+Af;vf||(vf=!0,window.postMessage(Cf,\"*\"))};sf=function(a,b){uf=a;null!=b&&\"number\"===typeof b.timeout&&(wf=rf()+b.timeout);xf||(xf=!0,requestAnimationFrame(Df));return 0};tf=function(){uf=null;vf=!1;wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},\ntf=function(a){clearTimeout(a)};var Ef=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Ff={},Gf={};\nfunction Hf(a){if(Gf.hasOwnProperty(a))return!0;if(Ff.hasOwnProperty(a))return!1;if(Ef.test(a))return Gf[a]=!0;Ff[a]=!0;return!1}\nfunction If(a,b,c){var d=wa(b);if(d&&va(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Tf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Uf(a,b){null!=b.dangerouslySetInnerHTML?E(\"91\"):void 0;return B({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Vf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?E(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Zf(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||(\"topScroll\"===e?wd(\"topScroll\",\"scroll\",a):\"topFocus\"===e||\"topBlur\"===e?(wd(\"topFocus\",\"focus\",a),wd(\"topBlur\",\"blur\",a),c.topBlur=!0,c.topFocus=!0):\"topCancel\"===e?(yc(\"cancel\",!0)&&wd(\"topCancel\",\"cancel\",a),c.topCancel=!0):\"topClose\"===e?(yc(\"close\",!0)&&wd(\"topClose\",\"close\",a),c.topClose=!0):Dd.hasOwnProperty(e)&&U(e,Dd[e],a),c[e]=!0)}}\nvar mg={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",\ntopWaiting:\"waiting\"};function ng(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;d===jg&&(d=Zf(a));d===jg?\"script\"===a?(a=c.createElement(\"div\"),a.innerHTML=\"\\x3cscript\\x3e\\x3c/script\\x3e\",a=a.removeChild(a.firstChild)):a=\"string\"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function og(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}\nfunction pg(a,b,c,d){var e=ig(b,c);switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);var f=c;break;case \"video\":case \"audio\":for(f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);f=c;break;case \"source\":U(\"topError\",\"error\",a);f=c;break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);f=c;break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);f=c;break;case \"details\":U(\"topToggle\",\"toggle\",a);f=c;break;case \"input\":Mf(a,c);f=Lf(a,c);U(\"topInvalid\",\"invalid\",a);\nlg(d,\"onChange\");break;case \"option\":f=Rf(a,c);break;case \"select\":Tf(a,c);f=B({},c,{value:void 0});U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;case \"textarea\":Vf(a,c);f=Uf(a,c);U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;default:f=c}hg(b,f,kg);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];\"style\"===h?fg(a,k,kg):\"dangerouslySetInnerHTML\"===h?(k=k?k.__html:void 0,null!=k&&bg(a,k)):\"children\"===h?\"string\"===typeof k?(\"textarea\"!==b||\"\"!==k)&&cg(a,k):\"number\"===typeof k&&cg(a,\n\"\"+k):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(Ra.hasOwnProperty(h)?null!=k&&lg(d,h):e?Kf(a,h,k):null!=k&&If(a,h,k))}switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"option\":null!=c.value&&a.setAttribute(\"value\",c.value);break;case \"select\":a.multiple=!!c.multiple;b=c.value;null!=b?Sf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Sf(a,!!c.multiple,c.defaultValue,!0);break;default:\"function\"===typeof f.onClick&&(a.onclick=\nC)}}\nfunction sg(a,b,c,d,e){var f=null;switch(b){case \"input\":c=Lf(a,c);d=Lf(a,d);f=[];break;case \"option\":c=Rf(a,c);d=Rf(a,d);f=[];break;case \"select\":c=B({},c,{value:void 0});d=B({},d,{value:void 0});f=[];break;case \"textarea\":c=Uf(a,c);d=Uf(a,d);f=[];break;default:\"function\"!==typeof c.onClick&&\"function\"===typeof d.onClick&&(a.onclick=C)}hg(b,d,kg);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if(\"style\"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]=\n\"\");else\"dangerouslySetInnerHTML\"!==g&&\"children\"!==g&&\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&\"autoFocus\"!==g&&(Ra.hasOwnProperty(g)?f||(f=[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if(\"style\"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]=\"\");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else\"dangerouslySetInnerHTML\"===\ng?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,\"\"+k)):\"children\"===g?b===k||\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(g,\"\"+k):\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&(Ra.hasOwnProperty(g)?(null!=k&&lg(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push(\"style\",a);return f}\nfunction tg(a,b,c,d,e){\"input\"===c&&\"radio\"===e.type&&null!=e.name&&Nf(a,e);ig(c,d);d=ig(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];\"style\"===g?fg(a,h,kg):\"dangerouslySetInnerHTML\"===g?bg(a,h):\"children\"===g?cg(a,h):d?null!=h?Kf(a,g,h):a.removeAttribute(g):null!=h?If(a,g,h):Jf(a,g)}switch(c){case \"input\":Of(a,e);break;case \"textarea\":Wf(a,e);break;case \"select\":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Sf(a,\n!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Sf(a,!!e.multiple,e.defaultValue,!0):Sf(a,!!e.multiple,e.multiple?[]:\"\",!1))}}\nfunction ug(a,b,c,d,e){switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);break;case \"video\":case \"audio\":for(var f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);break;case \"source\":U(\"topError\",\"error\",a);break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);break;case \"details\":U(\"topToggle\",\"toggle\",a);break;case \"input\":Mf(a,c);U(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"select\":Tf(a,c);\nU(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"textarea\":Vf(a,c),U(\"topInvalid\",\"invalid\",a),lg(e,\"onChange\")}hg(b,c,kg);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],\"children\"===g?\"string\"===typeof f?a.textContent!==f&&(d=[\"children\",f]):\"number\"===typeof f&&a.textContent!==\"\"+f&&(d=[\"children\",\"\"+f]):Ra.hasOwnProperty(g)&&null!=f&&lg(e,g));switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"select\":case \"option\":break;default:\"function\"===typeof c.onClick&&\n(a.onclick=C)}return d}function vg(a,b){return a.nodeValue!==b}\nvar wg=Object.freeze({createElement:ng,createTextNode:og,setInitialProperties:pg,diffProperties:sg,updateProperties:tg,diffHydratedProperties:ug,diffHydratedText:vg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(a,b,c){switch(b){case \"input\":Of(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=\nc.parentNode;c=c.querySelectorAll(\"input[name\\x3d\"+JSON.stringify(\"\"+b)+'][type\\x3d\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=rb(d);e?void 0:E(\"90\");Cc(d);Of(d,e)}}}break;case \"textarea\":Wf(a,c);break;case \"select\":b=c.value,null!=b&&Sf(a,!!c.multiple,b,!1)}}});nc.injectFiberControlledHostComponent(wg);var xg=null,Mg=null;function Ng(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction Og(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute(\"data-reactroot\"))}\nvar Z=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:$f(null,\"\");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=$f(a,b)}return a},getChildHostContext:function(a,b){return $f(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){xg=td;var a=da();if(Kd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();\nif(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(z){b=null;break a}var f=0,g=-1,h=-1,k=0,q=0,v=a,y=null;b:for(;;){for(var u;;){v!==b||0!==d&&3!==v.nodeType||(g=f+d);v!==e||0!==c&&3!==v.nodeType||(h=f+c);3===v.nodeType&&(f+=v.nodeValue.length);if(null===(u=v.firstChild))break;y=v;v=u}for(;;){if(v===a)break b;y===b&&++k===d&&(g=f);y===e&&++q===c&&(h=f);if(null!==(u=v.nextSibling))break;v=y;y=v.parentNode}v=u}b=-1===g||-1===h?null:\n{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Mg={focusedElem:a,selectionRange:b};ud(!1)},resetAfterCommit:function(){var a=Mg,b=da(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&fa(document.documentElement,c)){if(Kd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[Eb()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=\na.top}Mg=null;ud(xg);xg=null},createInstance:function(a,b,c,d,e){a=ng(a,b,c,d);a[Q]=e;a[ob]=b;return a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){pg(a,b,c,d);a:{switch(b){case \"button\":case \"input\":case \"select\":case \"textarea\":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e){return sg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return\"textarea\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===\ntypeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&\"string\"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=og(a,b);a[Q]=d;return a},now:rf,mutation:{commitMount:function(a){a.focus()},commitUpdate:function(a,b,c,d,e){a[ob]=e;tg(a,b,c,d,e)},resetTextContent:function(a){a.textContent=\"\"},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,\nb){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,\nb){return\"\"===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[Q]=f;a[ob]=c;return ug(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[Q]=c;return vg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},\ndidNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf,useSyncScheduling:!0});rc=Z.batchedUpdates;\nfunction Pg(a,b,c,d,e){Ng(c)?void 0:E(\"200\");var f=c._reactRootContainer;if(f)Z.updateContainer(b,f,a,e);else{d=d||Og(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=Z.createContainer(c,d);f=c._reactRootContainer=g;Z.unbatchedUpdates(function(){Z.updateContainer(b,g,a,e)})}return Z.getPublicRootInstance(f)}function Qg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Ng(b)?void 0:E(\"200\");return pf(a,b,null,c)}\nfunction Rg(a,b){this._reactRootContainer=Z.createContainer(a,b)}Rg.prototype.render=function(a,b){Z.updateContainer(a,this._reactRootContainer,null,b)};Rg.prototype.unmount=function(a){Z.updateContainer(null,this._reactRootContainer,null,a)};\nvar Sg={createPortal:Qg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return Z.findHostInstance(b);\"function\"===typeof a.render?E(\"188\"):E(\"213\",Object.keys(a))},hydrate:function(a,b,c){return Pg(null,a,b,!0,c)},render:function(a,b,c){return Pg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?E(\"38\"):void 0;return Pg(a,b,c,!1,d)},unmountComponentAtNode:function(a){Ng(a)?void 0:\nE(\"40\");return a._reactRootContainer?(Z.unbatchedUpdates(function(){Pg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Qg,unstable_batchedUpdates:tc,unstable_deferredUpdates:Z.deferredUpdates,flushSync:Z.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:mb,EventPluginRegistry:Va,EventPropagators:Cb,ReactControlledComponent:qc,ReactDOMComponentTree:sb,ReactDOMEventListener:xd}};\nZ.injectIntoDevTools({findFiberByHostInstance:pb,bundleType:0,version:\"16.2.0\",rendererPackageName:\"react-dom\"});var Tg=Object.freeze({default:Sg}),Ug=Tg&&Sg||Tg;module.exports=Ug[\"default\"]?Ug[\"default\"]:Ug;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(18);\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function listen(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function remove() {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function capture(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (false) {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(61);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = containsNode;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = __webpack_require__(62);\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n  var doc = object ? object.ownerDocument || object : document;\n  var defaultView = doc.defaultView || window;\n  return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(25);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n  _inherits(BrowserRouter, _React$Component);\n\n  function BrowserRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, BrowserRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<BrowserRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');\n  };\n\n  BrowserRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return BrowserRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nBrowserRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n  forceRefresh: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (BrowserRouter);\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar emptyFunction = __webpack_require__(18);\nvar invariant = __webpack_require__(66);\nvar ReactPropTypesSecret = __webpack_require__(67);\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (false) {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(8);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(34);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = (0, _DOMUtils.supportsHistory)();\n  var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + (0, _PathUtils.createPath)(location);\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createBrowserHistory;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(25);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = function (_React$Component) {\n  _inherits(HashRouter, _React$Component);\n\n  function HashRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, HashRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  HashRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<HashRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');\n  };\n\n  HashRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return HashRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nHashRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  hashType: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['hashbang', 'noslash', 'slash']),\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (HashRouter);\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(8);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(34);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: _PathUtils.stripLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  },\n  slash: {\n    encodePath: _PathUtils.addLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createHashHistory;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__ = __webpack_require__(72);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(26);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n  _inherits(MemoryRouter, _React$Component);\n\n  function MemoryRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, MemoryRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<MemoryRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');\n  };\n\n  MemoryRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return MemoryRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nMemoryRouter.propTypes = {\n  initialEntries: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,\n  initialIndex: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MemoryRouter);\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = _PathUtils.createPath;\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createMemoryHistory;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Route__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Link__ = __webpack_require__(35);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\n\n\n\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nvar NavLink = function NavLink(_ref) {\n  var to = _ref.to,\n      exact = _ref.exact,\n      strict = _ref.strict,\n      location = _ref.location,\n      activeClassName = _ref.activeClassName,\n      className = _ref.className,\n      activeStyle = _ref.activeStyle,\n      style = _ref.style,\n      getIsActive = _ref.isActive,\n      ariaCurrent = _ref.ariaCurrent,\n      rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);\n\n  return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Route__[\"a\" /* default */], {\n    path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,\n    exact: exact,\n    strict: strict,\n    location: location,\n    children: function children(_ref2) {\n      var location = _ref2.location,\n          match = _ref2.match;\n\n      var isActive = !!(getIsActive ? getIsActive(match, location) : match);\n\n      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Link__[\"a\" /* default */], _extends({\n        to: to,\n        className: isActive ? [className, activeClassName].filter(function (i) {\n          return i;\n        }).join(' ') : className,\n        style: isActive ? _extends({}, style, activeStyle) : style,\n        'aria-current': isActive && ariaCurrent\n      }, rest));\n    }\n  });\n};\n\nNavLink.propTypes = {\n  to: __WEBPACK_IMPORTED_MODULE_3__Link__[\"a\" /* default */].propTypes.to,\n  exact: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  strict: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  activeClassName: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  activeStyle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  style: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  isActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n  ariaCurrent: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['page', 'step', 'location', 'true'])\n};\n\nNavLink.defaultProps = {\n  activeClassName: 'active',\n  ariaCurrent: 'true'\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (NavLink);\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isarray = __webpack_require__(76)\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__ = __webpack_require__(78);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__[\"a\" /* default */]);\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n  _inherits(Prompt, _React$Component);\n\n  function Prompt() {\n    _classCallCheck(this, Prompt);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Prompt.prototype.enable = function enable(message) {\n    if (this.unblock) this.unblock();\n\n    this.unblock = this.context.router.history.block(message);\n  };\n\n  Prompt.prototype.disable = function disable() {\n    if (this.unblock) {\n      this.unblock();\n      this.unblock = null;\n    }\n  };\n\n  Prompt.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Prompt> outside a <Router>');\n\n    if (this.props.when) this.enable(this.props.message);\n  };\n\n  Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (nextProps.when) {\n      if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n    } else {\n      this.disable();\n    }\n  };\n\n  Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.disable();\n  };\n\n  Prompt.prototype.render = function render() {\n    return null;\n  };\n\n  return Prompt;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nPrompt.propTypes = {\n  when: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  message: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]).isRequired\n};\nPrompt.defaultProps = {\n  when: true\n};\nPrompt.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      block: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Prompt);\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__ = __webpack_require__(80);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__[\"a\" /* default */]);\n\n/***/ }),\n/* 80 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history__ = __webpack_require__(81);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n  _inherits(Redirect, _React$Component);\n\n  function Redirect() {\n    _classCallCheck(this, Redirect);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Redirect.prototype.isStatic = function isStatic() {\n    return this.context.router && this.context.router.staticContext;\n  };\n\n  Redirect.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Redirect> outside a <Router>');\n\n    if (this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidMount = function componentDidMount() {\n    if (!this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var prevTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"a\" /* createLocation */])(prevProps.to);\n    var nextTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"a\" /* createLocation */])(this.props.to);\n\n    if (Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"b\" /* locationsAreEqual */])(prevTo, nextTo)) {\n      __WEBPACK_IMPORTED_MODULE_2_warning___default()(false, 'You tried to redirect to the same route you\\'re currently on: ' + ('\"' + nextTo.pathname + nextTo.search + '\"'));\n      return;\n    }\n\n    this.perform();\n  };\n\n  Redirect.prototype.perform = function perform() {\n    var history = this.context.router.history;\n    var _props = this.props,\n        push = _props.push,\n        to = _props.to;\n\n\n    if (push) {\n      history.push(to);\n    } else {\n      history.replace(to);\n    }\n  };\n\n  Redirect.prototype.render = function render() {\n    return null;\n  };\n\n  return Redirect;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nRedirect.propTypes = {\n  push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  from: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired\n};\nRedirect.defaultProps = {\n  push: false\n};\nRedirect.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired,\n    staticContext: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Redirect);\n\n/***/ }),\n/* 81 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createBrowserHistory__ = __webpack_require__(82);\n/* unused harmony reexport createBrowserHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__createHashHistory__ = __webpack_require__(83);\n/* unused harmony reexport createHashHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__createMemoryHistory__ = __webpack_require__(84);\n/* unused harmony reexport createMemoryHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__LocationUtils__ = __webpack_require__(19);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PathUtils__ = __webpack_require__(15);\n/* unused harmony reexport parsePath */\n/* unused harmony reexport createPath */\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(38);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"b\" /* canUseDOM */], 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"g\" /* supportsHistory */])();\n  var needsHashChangeListener = !Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"h\" /* supportsPopStateOnHashChange */])();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"c\" /* getConfirmation */] : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"g\" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */])(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"c\" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"e\" /* stripBasename */])(path, basename);\n\n    return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"d\" /* isExtraneousPopstateEvent */])(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n  };\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createBrowserHistory);\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(38);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"f\" /* stripLeadingSlash */])(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"f\" /* stripLeadingSlash */],\n    decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */]\n  },\n  slash: {\n    encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */],\n    decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */]\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"b\" /* canUseDOM */], 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"f\" /* supportsGoWithoutReloadUsingHash */])();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"c\" /* getConfirmation */] : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"g\" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */])(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"c\" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"e\" /* stripBasename */])(path, basename);\n\n    return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path);\n  };\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"b\" /* locationsAreEqual */])(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location));\n  };\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createHashHistory);\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__createTransitionManager__ = __webpack_require__(28);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_3__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(entry, undefined, createKey()) : Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = __WEBPACK_IMPORTED_MODULE_1__PathUtils__[\"b\" /* createPath */];\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createMemoryHistory);\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__ = __webpack_require__(86);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Router__ = __webpack_require__(26);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\nvar normalizeLocation = function normalizeLocation(object) {\n  var _object$pathname = object.pathname,\n      pathname = _object$pathname === undefined ? '/' : _object$pathname,\n      _object$search = object.search,\n      search = _object$search === undefined ? '' : _object$search,\n      _object$hash = object.hash,\n      hash = _object$hash === undefined ? '' : _object$hash;\n\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar addBasename = function addBasename(basename, location) {\n  if (!basename) return location;\n\n  return _extends({}, location, {\n    pathname: Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(basename) + location.pathname\n  });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n  if (!basename) return location;\n\n  var base = Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return _extends({}, location, {\n    pathname: location.pathname.substr(base.length)\n  });\n};\n\nvar createLocation = function createLocation(location) {\n  return typeof location === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"parsePath\"])(location) : normalizeLocation(location);\n};\n\nvar createURL = function createURL(location) {\n  return typeof location === 'string' ? location : Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"createPath\"])(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n  return function () {\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(false, 'You cannot %s with <StaticRouter>', methodName);\n  };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n  _inherits(StaticRouter, _React$Component);\n\n  function StaticRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, StaticRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n      return Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(_this.props.basename + createURL(path));\n    }, _this.handlePush = function (location) {\n      var _this$props = _this.props,\n          basename = _this$props.basename,\n          context = _this$props.context;\n\n      context.action = 'PUSH';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleReplace = function (location) {\n      var _this$props2 = _this.props,\n          basename = _this$props2.basename,\n          context = _this$props2.context;\n\n      context.action = 'REPLACE';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleListen = function () {\n      return noop;\n    }, _this.handleBlock = function () {\n      return noop;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  StaticRouter.prototype.getChildContext = function getChildContext() {\n    return {\n      router: {\n        staticContext: this.props.context\n      }\n    };\n  };\n\n  StaticRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<StaticRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');\n  };\n\n  StaticRouter.prototype.render = function render() {\n    var _props = this.props,\n        basename = _props.basename,\n        context = _props.context,\n        location = _props.location,\n        props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);\n\n    var history = {\n      createHref: this.createHref,\n      action: 'POP',\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler('go'),\n      goBack: staticHandler('goBack'),\n      goForward: staticHandler('goForward'),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Router__[\"a\" /* default */], _extends({}, props, { history: history }));\n  };\n\n  return StaticRouter;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nStaticRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n  context: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n  location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])\n};\nStaticRouter.defaultProps = {\n  basename: '',\n  location: '/'\n};\nStaticRouter.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (StaticRouter);\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__ = __webpack_require__(88);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__[\"a\" /* default */]);\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(27);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = function (_React$Component) {\n  _inherits(Switch, _React$Component);\n\n  function Switch() {\n    _classCallCheck(this, Switch);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Switch.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Switch> outside a <Router>');\n  };\n\n  Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n  };\n\n  Switch.prototype.render = function render() {\n    var route = this.context.router.route;\n    var children = this.props.children;\n\n    var location = this.props.location || route.location;\n\n    var match = void 0,\n        child = void 0;\n    __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (element) {\n      if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element)) return;\n\n      var _element$props = element.props,\n          pathProp = _element$props.path,\n          exact = _element$props.exact,\n          strict = _element$props.strict,\n          sensitive = _element$props.sensitive,\n          from = _element$props.from;\n\n      var path = pathProp || from;\n\n      if (match == null) {\n        child = element;\n        match = path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }) : route.match;\n      }\n    });\n\n    return match ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { location: location, computedMatch: match }) : null;\n  };\n\n  return Switch;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nSwitch.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    route: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object.isRequired\n  }).isRequired\n};\nSwitch.propTypes = {\n  children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node,\n  location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Switch);\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__ = __webpack_require__(27);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__[\"a\" /* default */]);\n\n/***/ }),\n/* 90 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__ = __webpack_require__(91);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 91 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__ = __webpack_require__(92);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Route__ = __webpack_require__(37);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\n\n\n\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n  var C = function C(props) {\n    var wrappedComponentRef = props.wrappedComponentRef,\n        remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);\n\n    return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Route__[\"a\" /* default */], { render: function render(routeComponentProps) {\n        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Component, _extends({}, remainingProps, routeComponentProps, { ref: wrappedComponentRef }));\n      } });\n  };\n\n  C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';\n  C.WrappedComponent = Component;\n  C.propTypes = {\n    wrappedComponentRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func\n  };\n\n  return __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default()(C, Component);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (withRouter);\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n(function (global, factory) {\n     true ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.hoistNonReactStatics = factory());\n}(this, (function () {\n    'use strict';\n    \n    var REACT_STATICS = {\n        childContextTypes: true,\n        contextTypes: true,\n        defaultProps: true,\n        displayName: true,\n        getDefaultProps: true,\n        getDerivedStateFromProps: true,\n        mixins: true,\n        propTypes: true,\n        type: true\n    };\n    \n    var KNOWN_STATICS = {\n        name: true,\n        length: true,\n        prototype: true,\n        caller: true,\n        callee: true,\n        arguments: true,\n        arity: true\n    };\n    \n    var defineProperty = Object.defineProperty;\n    var getOwnPropertyNames = Object.getOwnPropertyNames;\n    var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var getPrototypeOf = Object.getPrototypeOf;\n    var objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n    \n    return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n        if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n            \n            if (objectPrototype) {\n                var inheritedComponent = getPrototypeOf(sourceComponent);\n                if (inheritedComponent && inheritedComponent !== objectPrototype) {\n                    hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n                }\n            }\n            \n            var keys = getOwnPropertyNames(sourceComponent);\n            \n            if (getOwnPropertySymbols) {\n                keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n            }\n            \n            for (var i = 0; i < keys.length; ++i) {\n                var key = keys[i];\n                if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n                    var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n                    try { // Avoid failures from read-only properties\n                        defineProperty(targetComponent, key, descriptor);\n                    } catch (e) {}\n                }\n            }\n            \n            return targetComponent;\n        }\n        \n        return targetComponent;\n    };\n})));\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return App; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__aside_Aside__ = __webpack_require__(94);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__main_Main__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__ = __webpack_require__(147);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__App_css__ = __webpack_require__(149);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__App_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__App_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ie11_css__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ie11_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__ie11_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var APP__CLASS_NAMES='app';var APP_NAVBAR__CLASS_NAMES='app-navbar';var APP_CONTAINER__CLASS_NAMES='app-container';var APP_ASIDE__CLASS_NAMES='app-aside';var APP_MAIN__CLASS_NAMES='app-main';var FULLSCREEN__CLASS_NAMES='fullscreen';var FULLSCREEN_PARAMETER_NAME='fullscreen';var IE11__CLASS_NAMES='ie11';/**\n * The App component is the entry point of the user interface of the application.\n *\n * It defines the global layout with a Narvab on top to display the name of the\n * application along with some additional actions. Under the Navbar, two columns\n * are used to display side by side the Aside component and the Main component.\n */var AppWithoutRouter=function AppWithoutRouter(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var location=props.location;var query=location.search;if(query[0]==='?'){query=query.substring(1);}var segments=query.split('&');var parameters={};for(var i=0;i<segments.length;i++){var entry=segments[i].split('=');parameters[decodeURIComponent(entry[0])]=decodeURIComponent(entry[1]);}var isFullScreen=parameters[FULLSCREEN_PARAMETER_NAME];var appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(APP__CLASS_NAMES,className);var container=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:APP_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__aside_Aside__[\"a\" /* Aside */],{className:APP_ASIDE__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__main_Main__[\"a\" /* Main */],{className:APP_MAIN__CLASS_NAMES}));if(isFullScreen){appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(APP__CLASS_NAMES,FULLSCREEN__CLASS_NAMES,className);container=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:APP_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__main_Main__[\"a\" /* Main */],{className:APP_MAIN__CLASS_NAMES}));}var isIE11=!!window.MSInputMethodContext&&!!document.documentMode;if(isIE11){appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(appClassNames,IE11__CLASS_NAMES);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:appClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__[\"a\" /* Navbar */],{className:APP_NAVBAR__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"d\" /* XL */],left:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */]},container));};var App=Object(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"f\" /* withRouter */])(AppWithoutRouter);\n\n/***/ }),\n/* 94 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Aside; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Aside_css__ = __webpack_require__(95);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Aside_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__Aside_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var ASIDE__CLASS_NAMES='aside';var ASIDE_MAIN_LINKS__CLASS_NAMES='aside-mainlinks';var MAIN_LINKS__CLASS_NAMES='title-s';var ASIDE_ADDITIONAL_LINKS__CLASS_NAMES='aside-additionallinks';var ADDITIONAL_LINKS__CLASS_NAMES='caption-s';/**\n * The Aside component is used to display the navigation links to move from one\n * page to another.\n *\n * It contains two different kinds of links. One the top, we will have the main\n * links which are used to navigate to the major parts of the application. Under\n * those, we will display the additional links which will mainly be links to\n * external websites for help and support.\n */var Aside=function Aside(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var asideClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(ASIDE__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('aside',Object.assign({className:asideClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ASIDE_MAIN_LINKS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{className:MAIN_LINKS__CLASS_NAMES,to:'/'},'Dashboard')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{className:MAIN_LINKS__CLASS_NAMES,to:'/projects'},'Projects')))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ASIDE_ADDITIONAL_LINKS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a',{className:ADDITIONAL_LINKS__CLASS_NAMES,href:'https://github.com/eclipse/sirius-components/issues',target:'_blank',rel:'noopener noreferrer'},'Report an issue')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a',{className:ADDITIONAL_LINKS__CLASS_NAMES,href:'https://stackoverflow.com/questions/tagged/sirius',target:'_blank',rel:'noopener noreferrer'},'Help')))));};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Main; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__ = __webpack_require__(106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__ = __webpack_require__(107);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__ = __webpack_require__(113);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__ = __webpack_require__(145);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var MAIN__CLASS_NAMES='main';/**\n * The Main is used to define the content of the main area of the application.\n *\n * This component will define the routing strategy of the application with the\n * list of views and their associated URLs.\n */var Main=function Main(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var mainClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(MAIN__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('main',Object.assign({className:mainClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__[\"a\" /* ErrorBoundary */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"e\" /* Switch */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/',render:renderDashboardViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/projects',render:renderListProjectsViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/projects/:projectName',render:renderProjectViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/newproject',render:renderNewProjectViewStateContainer})))));};var renderDashboardViewStateContainer=function renderDashboardViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__[\"a\" /* DashboardViewStateContainer */],null,function(stateId,error,dashboard){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__[\"a\" /* DashboardView */],{stateId:stateId,error:error,dashboard:dashboard});});};var renderListProjectsViewStateContainer=function renderListProjectsViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__[\"a\" /* ListProjectsViewStateContainer */],null,function(stateId,error,projects){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__[\"a\" /* ListProjectsView */],{stateId:stateId,error:error,projects:projects});});};var renderProjectViewStateContainer=function renderProjectViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__[\"a\" /* ProjectViewStateContainer */],null,function(stateId,error,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__[\"a\" /* ProjectView */],{stateId:stateId,error:error,project:project,pageIdentifier:pageIdentifier,onTabClick:onTabClick,onActivityClick:onActivityClick,onNewDescription:onNewDescription});});};var renderNewProjectViewStateContainer=function renderNewProjectViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__[\"a\" /* NewProjectViewStateContainer */],null,function(stateId,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__[\"a\" /* NewProjectView */],{stateId:stateId,errors:errors,isValid:isValid,onSubmit:onSubmit,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors,onNameChange:onNameChange});});};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DashboardView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__info_InfoCard__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__ = __webpack_require__(103);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__DashboardView_css__ = __webpack_require__(105);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__DashboardView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__DashboardView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string.isRequired};/**\n * The DashboardView component is used as the main component in the dashboard page.\n * It will render a bird eye view of the state of the data of the user starting\n * with the list of the projects available.\n */var DashboardView=function DashboardView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,dashboard=_ref.dashboard,props=_objectWithoutProperties(_ref,['className','stateId','error','dashboard']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"h\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"b\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"a\" /* DASHBOARD_LOADED__STATE */]:return renderDashboardLoadedState(className,dashboard,props);default:var undefinedStateError={title:'The dashboard is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_4__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};DashboardView.propTypes=propTypes;/**\n * Renders the loading state of the dashboard.\n * @param {*} className The class name of the dashboard.\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"a\" /* Loading */],Object.assign({className:className},props));};/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:className},error,props));};var DASHBOARD_VIEW__CLASS_NAMES='dashboardview';var INFO__CLASS_NAMES='info';var PROJECTS_INFO__CLASS_NAMES='projectsinfo';var VIEWPOINTS_INFO__CLASS_NAMES='viewpointsinfo';var METAMODELS_INFO__CLASS_NAMES='metamodelsinfo';var NEWPROJECT_INFO__CLASS_NAMES='newprojectinfo';var PROJECTS__CLASS_NAMES='projects';var PROJECTS_BODY__CLASS_NAMES='projects-body';/**\n * Renders the dashboard.\n * @param {*} className The class name of the dashboard\n * @param {*} dashboard The dashboard to display\n * @param {*} props The properties of the component\n */var renderDashboardLoadedState=function renderDashboardLoadedState(className,dashboard,props){var dashboardViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(DASHBOARD_VIEW__CLASS_NAMES,className);var projectsCount=dashboard.projectsCount,viewpointsCount=dashboard.viewpointsCount,metamodelsCount=dashboard.metamodelsCount;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:dashboardViewClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:INFO__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:PROJECTS_INFO__CLASS_NAMES,title:projectsCount.toString(),message:'Projects'}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:VIEWPOINTS_INFO__CLASS_NAMES,title:viewpointsCount.toString(),message:'Viewpoints'}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:METAMODELS_INFO__CLASS_NAMES,title:metamodelsCount.toString(),message:'Metamodels'})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECTS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECTS_BODY__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'/newproject'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:NEWPROJECT_INFO__CLASS_NAMES,title:'+',message:'New Project',to:''})),dashboard.projects.map(function(project){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__[\"a\" /* ProjectSummaryCard */],{key:project.name,project:project});}))));};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return InfoCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InfoCard_css__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InfoCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__InfoCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};var INFOCARD__CLASS_NAMES='infocard';var INFOCARD_CONTAINER__CLASS_NAMES='infocard-container';var INFOCARD_TITLE__CLASS_NAMES='infocard-title';var INFOCARD_MESSAGE__CLASS_NAMES='infocard-message';/**\n * The InfoCard component is used to display some information with a catchy card.\n */var InfoCard=function InfoCard(_ref){var className=_ref.className,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','title','message']);var infoCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(INFOCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:infoCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:INFOCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:INFOCARD_TITLE__CLASS_NAMES},title),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',{className:INFOCARD_MESSAGE__CLASS_NAMES},message))));};InfoCard.propTypes=propTypes;\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectSummaryCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_SUMMARY_CARD__CLASS_NAMES='projectsummarycard';var propTypes={project:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object.isRequired};/**\n * The ProjectSummaryCard is used to display a bird eye view of the project. It\n * displays the small amount of relevant properties of a project.\n */var ProjectSummaryCard=function ProjectSummaryCard(_ref){var project=_ref.project,props=_objectWithoutProperties(_ref,['project']);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:PROJECT_SUMMARY_CARD__CLASS_NAMES},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'/projects/'+project.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"f\" /* LARGE */],hideOverflow:true},project.name))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],null,project.description||'No description provided')));};ProjectSummaryCard.propTypes=propTypes;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 106 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ErrorBoundary; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ErrorCard__ = __webpack_require__(16);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ErrorBoundary is a component used to intercept uncaught exceptions\n * during the rendering.\n */var ErrorBoundary=function(_Component){_inherits(ErrorBoundary,_Component);function ErrorBoundary(props){_classCallCheck(this,ErrorBoundary);var _this=_possibleConstructorReturn(this,(ErrorBoundary.__proto__||Object.getPrototypeOf(ErrorBoundary)).call(this,props));_this.state={error:null};return _this;}_createClass(ErrorBoundary,[{key:'componentDidCatch',value:function componentDidCatch(error,info){this.setState({error:error});}},{key:'render',value:function render(){var error=this.state.error;var title='An unexpected error has appeared during the rendering';if(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__ErrorCard__[\"a\" /* ErrorCard */],{code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"a\" /* RENDERING_ERROR */],title:title,message:error.message});}return this.props.children;}}]);return ErrorBoundary;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);\n\n/***/ }),\n/* 107 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ListProjectsView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__ = __webpack_require__(110);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__ = __webpack_require__(40);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};/**\n * The ListProjectsView component is used to display the list of all the projects.\n */var ListProjectsView=function ListProjectsView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,projects=_ref.projects,props=_objectWithoutProperties(_ref,['className','stateId','error','projects']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"g\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"a\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"h\" /* NO_PROJECTS_LOADED__STATE */]:return renderEmptyState(className,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"i\" /* PROJECTS_LOADED__STATE */]:return renderProjectsLoadedState(className,projects,props);default:var undefinedStateError={title:'The projects list is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_3__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};ListProjectsView.propTypes=propTypes;/**\n * Renders the loading state of the projects list.\n * @param {*} className The class name of the projects list\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){var listProjectsViewLoadingClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"a\" /* Loading */],Object.assign({className:listProjectsViewLoadingClassNames},props));};/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var listProjectsViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:listProjectsViewErrorClassNames},error,props));};/**\n * Renders the empty state.\n * @param {*} className The class name of the project list\n * @param {*} props The properties of the component\n */var renderEmptyState=function renderEmptyState(className,props){var listProjectsViewEmptyClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__[\"a\" /* BlankCard */],Object.assign({title:'You haven\\'t created any projects yet',message:'Once you start creating new projects, you will be able to see them here',className:listProjectsViewEmptyClassNames},props));};var LIST_PROJECTS_VIEW__CLASS_NAMES='listprojectsview';/**\n * Renders the projects loaded.\n * @param {*} className The class name of the projects list\n * @param {*} projects The projects to be displayed\n * @param {*} props The properties of the component\n */var renderProjectsLoadedState=function renderProjectsLoadedState(className,projects,props){var listProjectsViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(LIST_PROJECTS_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:listProjectsViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__[\"a\" /* ProjectsListCard */],Object.assign({projects:projects},props)));};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BlankCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlankCard_css__ = __webpack_require__(109);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlankCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__BlankCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};var BLANKCARD__CLASS_NAMES='blankcard';var BLANKCARD_CONTAINER__CLASS_NAMES='blankcard-container';var BLANKCARD_TITLE__CLASS_NAMES='title-l';/**\n * The BlankCard component is used to render the empty state of a page.\n */var BlankCard=function BlankCard(_ref){var className=_ref.className,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','title','message']);var blankCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(BLANKCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:blankCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:BLANKCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:BLANKCARD_TITLE__CLASS_NAMES},title)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',null,message))));};BlankCard.propTypes=propTypes;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 110 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectsListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__ = __webpack_require__(112);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECTS_LIST_CARD__CLASS_NAMES='projectslistcard';var propTypes={projects:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array.isRequired};var defaultProps={projects:[]};/**\n * The ProjectsListCard is used to display a list of projects as a card.\n */var ProjectsListCard=function ProjectsListCard(_ref){var className=_ref.className,projects=_ref.projects,props=_objectWithoutProperties(_ref,['className','projects']);var projectsListCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(PROJECTS_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"a\" /* Card */],Object.assign({className:projectsListCardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */]},'Projects')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},projects.map(function(project){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'projects/'+project.name,key:project.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"d\" /* TWO_LINES */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"d\" /* MainText */],null,project.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"b\" /* AdditionalText */],null,project.description||'No description provided'))));})));};ProjectsListCard.propTypes=propTypes;ProjectsListCard.defaultProps=defaultProps;\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 113 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NewProjectCard__ = __webpack_require__(114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__NewProjectView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,errors:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string).isRequired,isValid:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,onSubmit:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,name:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,nameIsValid:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,nameErrors:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string).isRequired,onNameChange:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var defaultProps={errors:[],isValid:false,onSubmit:function onSubmit(){},name:'',nameIsValid:false,nameErrors:[],onNameChange:function onNameChange(){}};/**\n * The NewProjectView component is used to display a new project form.\n */var NewProjectView=function NewProjectView(_ref){var className=_ref.className,stateId=_ref.stateId,errors=_ref.errors,isValid=_ref.isValid,onSubmit=_ref.onSubmit,name=_ref.name,nameIsValid=_ref.nameIsValid,nameErrors=_ref.nameErrors,onNameChange=_ref.onNameChange,props=_objectWithoutProperties(_ref,['className','stateId','errors','isValid','onSubmit','name','nameIsValid','nameErrors','onNameChange']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"h\" /* PRISTINE__STATE */]:case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */]:return renderForm(className,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange);case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"i\" /* REDIRECT__STATE */]:return renderRedirectState(name);default:var undefinedStateError={title:'The new project page is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_4__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};NewProjectView.propTypes=propTypes;NewProjectView.defaultProps=defaultProps;var NEW_PROJECT_VIEW__CLASS_NAMES='newprojectview';/**\n * Renders the form used to create a new project.\n */var renderForm=function renderForm(className,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange){var newProjectViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(NEW_PROJECT_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:newProjectViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__NewProjectCard__[\"a\" /* NewProjectCard */],{errors:errors,isValid:isValid,onSubmit:onSubmit,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors,onNameChange:onNameChange}));};/**\n * Renders a redirect component used to redirect the router to the page of the\n * newly created project.\n *\n * @param {*} name The name of the project\n */var renderRedirectState=function renderRedirectState(name){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"c\" /* Redirect */],{to:'/projects/'+name});};/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var newProjectViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:newProjectViewErrorClassNames},error,props));};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_Form__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var NEWPROJECT_CARD__CLASS_NAMES='newprojectcard';var propTypes={};/**\n * The NewProjectCard is used to create a new project.\n */var NewProjectCard=function NewProjectCard(_ref){var className=_ref.className,errors=_ref.errors,isValid=_ref.isValid,onSubmit=_ref.onSubmit,name=_ref.name,nameIsValid=_ref.nameIsValid,nameErrors=_ref.nameErrors,onNameChange=_ref.onNameChange,props=_objectWithoutProperties(_ref,['className','errors','isValid','onSubmit','name','nameIsValid','nameErrors','onNameChange']);var newProjectCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(NEWPROJECT_CARD__CLASS_NAMES,className);var nameClassName='';if(!nameIsValid&&nameErrors.length>0){nameClassName='fielderror';}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"a\" /* Card */],Object.assign({className:newProjectCardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__[\"f\" /* LARGE */],hideOverflow:true},'New Project')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"b\" /* Divider */],null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"f\" /* Form */],{onSubmit:onSubmit},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"d\" /* ErrorGroup */],null,errors.map(function(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"c\" /* Error */],{key:error},error);})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"e\" /* Field */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"g\" /* Label */],{htmlFor:'name'},'Name'),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"b\" /* Description */],null,'The name of the project can only contain letters and numbers separated by dots, dashes or underscores.'),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"h\" /* TextField */],{id:'name',name:'name',className:nameClassName,placeholder:'Enter the name',value:name,onChange:onNameChange}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"d\" /* ErrorGroup */],null,nameErrors.map(function(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"c\" /* Error */],{key:error},error);}))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"a\" /* ActionGroup */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__buttons_Button__[\"a\" /* Button */],{kind:__WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */],disabled:!isValid},'Create Project'))));};NewProjectCard.propTypes=propTypes;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectView_css__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__ProjectView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The ProjectView is used to display and manipulate a project.\n */var ProjectView=function ProjectView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,project=_ref.project,pageIdentifier=_ref.pageIdentifier,onTabClick=_ref.onTabClick,onActivityClick=_ref.onActivityClick,onNewDescription=_ref.onNewDescription,props=_objectWithoutProperties(_ref,['className','stateId','error','project','pageIdentifier','onTabClick','onActivityClick','onNewDescription']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"i\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"a\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */]:return renderProjectLoadedState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,props);default:var undefinedStateError={title:'The project is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_3__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};ProjectView.propTypes=propTypes;/**\n * Renders the loading state of the project.\n * @param {*} className The class name of the project\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){var project={};var pageIdentifier=undefined;var onTabClick=function onTabClick(){};var onActivityClick=function onActivityClick(){};var onNewDescription=function onNewDescription(){};return renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,true,props);};/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var projectViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:projectViewErrorClassNames},error,props));};var renderProjectLoadedState=function renderProjectLoadedState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,props){return renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,false,props);};var PROJECT_VIEW__CLASS_NAMES='projectview';var PROJECT_VIEW_MAIN__CLASS_NAMES='projectview-main';var PROJECT_VIEW_DETAILS__CLASS_NAMES='projectview-details';var PROJECT_VIEW_WORKFLOW__CLASS_NAMES='projectview-workflow';/**\n * Renders the project.\n * @param {*} className The class name of the project\n * @param {*} project The project to be displayed\n * @param {*} pageIdentifier The identifier of the page displayed in the workflow\n * @param {*} onTabClick The callback executed when a tab is clicked\n * @param {*} onActivityClick The callback executed when an activity is clicked\n * @param {*} onNewDescription The callback executed when the description is updated\n * @param {*} loading Indicates if the page is being loaded\n * @param {*} props The properties of the component\n */var renderProjectState=function renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,loading,props){var projectViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__loading_Loading__[\"c\" /* LoadingProvider */],{loading:loading},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:projectViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__[\"a\" /* ProjectHeaderCard */],{name:project.name,description:project.description,onNewDescription:onNewDescription}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_MAIN__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_DETAILS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__[\"a\" /* ProjectSemanticResourcesListCard */],{semanticResources:project.semanticResources}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__[\"a\" /* ProjectRepresentationsListCard */],{projectName:project.name,representations:project.representations})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_WORKFLOW__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__[\"a\" /* WorkflowCard */],{projectName:project.name,pageIdentifier:pageIdentifier,pages:project.pages,sections:project.currentPageSections,onTabClick:onTabClick,onActivityClick:onActivityClick})))));};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return WorkflowCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__icons_IconRun__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__ = __webpack_require__(128);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={projectName:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,pageIdentifier:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,pages:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,sections:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,onTabClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,onActivityClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func};var defaultProps={projectName:'',pageIdentifier:'',pages:[],sections:[],onTabClick:function onTabClick(){},onActivityClick:function onActivityClick(){}};var WORKFLOWCARD__CLASS_NAMES='workflowcard';/**\n * The WorkflowCard component is used to render the workflow of the page.\n */var WorkflowCard=function WorkflowCard(_ref){var className=_ref.className,projectName=_ref.projectName,pageIdentifier=_ref.pageIdentifier,pages=_ref.pages,sections=_ref.sections,onTabClick=_ref.onTabClick,onActivityClick=_ref.onActivityClick,props=_objectWithoutProperties(_ref,['className','projectName','pageIdentifier','pages','sections','onTabClick','onActivityClick']);var selectedTabIndex=0;for(var index=0;index<pages.length;index++){var page=pages[index];if(page.identifier===pageIdentifier){selectedTabIndex=index;}}var sectionsElement=void 0;if(pages.length>0){sectionsElement=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Sections,{sections:sections,projectName:projectName,pageIdentifier:pageIdentifier,onActivityClick:onActivityClick});}var workflowCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(WORKFLOWCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:workflowCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Workflow');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(WorkflowTabBar,{pages:pages,selectedTabIndex:selectedTabIndex,onTabClick:onTabClick}),sectionsElement);};WorkflowCard.propTypes=propTypes;WorkflowCard.defaultProps=defaultProps;var WorkflowTabBar=function WorkflowTabBar(_ref2){var pages=_ref2.pages,selectedTabIndex=_ref2.selectedTabIndex,onTabClick=_ref2.onTabClick;if(pages.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{loading:loading},'No workflow pages found');}));}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__[\"a\" /* TabBar */],{selectedTabIndex:selectedTabIndex,tabs:pages.map(function(page){return page.name;}),onTabClick:onTabClick});};var Sections=function Sections(_ref3){var sections=_ref3.sections,projectName=_ref3.projectName,pageIdentifier=_ref3.pageIdentifier,onActivityClick=_ref3.onActivityClick;if(sections.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptySections,null);}return sections.map(function(section,index){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react__[\"Fragment\"],{key:section.identifier},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Section,{key:section.identifier,projectName:projectName,pageIdentifier:pageIdentifier,section:section,onActivityClick:onActivityClick}),index+1<sections.length?__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"b\" /* Divider */],null):null);});};var EmptySections=function EmptySections(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],null,'No sections found in the workflow.'));};var SECTION__CLASS_NAMES='section';var Section=function Section(_ref4){var className=_ref4.className,projectName=_ref4.projectName,pageIdentifier=_ref4.pageIdentifier,section=_ref4.section,onActivityClick=_ref4.onActivityClick,props=_objectWithoutProperties(_ref4,['className','projectName','pageIdentifier','section','onActivityClick']);var sectionClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(SECTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:sectionClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"h\" /* MEDIUM */],hideOverflow:true},section.name)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Activities,{activities:section.activities,onActivityClick:onActivityClick,projectName:projectName,pageIdentifier:pageIdentifier,sectionIdentifier:section.identifier}));};var Activities=function Activities(_ref5){var activities=_ref5.activities,onActivityClick=_ref5.onActivityClick,projectName=_ref5.projectName,pageIdentifier=_ref5.pageIdentifier,sectionIdentifier=_ref5.sectionIdentifier;if(activities.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptyActivities,null);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(ActivitiesList,{activities:activities,onActivityClick:onActivityClick,projectName:projectName,pageIdentifier:pageIdentifier,sectionIdentifier:sectionIdentifier});};var ActivitiesList=function ActivitiesList(_ref6){var activities=_ref6.activities,onActivityClick=_ref6.onActivityClick,projectName=_ref6.projectName,pageIdentifier=_ref6.pageIdentifier,sectionIdentifier=_ref6.sectionIdentifier;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},activities.map(function(activity){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"b\" /* SINGLE_LINE */],key:activity.identifier},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"d\" /* MainText */],null,activity.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"a\" /* AdditionalIcon */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__icons_IconRun__[\"a\" /* IconRun */],{onClick:function onClick(){return onActivityClick(projectName,pageIdentifier,sectionIdentifier,activity.identifier);}})));}));};var EmptyActivities=function EmptyActivities(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],null,'No activities in the section.'));};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return IconRun; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__IconRun_css__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__IconRun_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__IconRun_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var ICONRUN__CLASS_NAMES='iconrun';/**\n * The run SVG icon.\n */var IconRun=function IconRun(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var iconRunClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ICONRUN__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('svg',Object.assign({xmlns:'http://www.w3.org/2000/svg',className:iconRunClassNames,height:'16',width:'16'},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('polygon',{points:'0,0 16,8 0,16'}));};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 122 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TabBar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__TabBar_css__ = __webpack_require__(127);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__TabBar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__TabBar_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TABBAR__CLASS_NAMES='tabbar';var TABBAR_NAV__CLASS_NAMES='tabbar-nav';var TABBAR_NAV__DISABLED__CLASS_NAMES='tabbar-nav--disabled';var TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES='tabbar-nav--contain-selection';var TABBAR_TABS__CLASS_NAMES='tabbar-tabs';var propTypes={tabs:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,onTabClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,selectedTabIndex:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,numberOfTabsDisplayed:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired};var defaultProps={tabs:[],onTabClick:function onTabClick(){},selectedTabIndex:0,numberOfTabsDisplayed:3};/**\n * The TabBar component is used to display horizontally a list of elements with\n * two buttons to navigate into the list to the previous or next elements. It\n * also allows the selection of one specific element in the list.\n */var TabBar=function(_Component){_inherits(TabBar,_Component);function TabBar(props){_classCallCheck(this,TabBar);var _this=_possibleConstructorReturn(this,(TabBar.__proto__||Object.getPrototypeOf(TabBar)).call(this,props));_this.handleTabBarNavClick=_this.handleTabBarNavClick.bind(_this);_this.handleTabClick=_this.handleTabClick.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(TabBar,[{key:'dispatch',value:function dispatch(action,callback){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);},callback);}},{key:'handleTabBarNavClick',value:function handleTabBarNavClick(_ref){var target=_ref.target;var side=target.getAttribute('data-side');if(side==='previous'&&this.state.isPreviousAvailable){var action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandlePreviousAction();this.dispatch(action);}else if(side==='next'&&this.state.isNextAvailable){var _action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandleNextAction();this.dispatch(_action);}}},{key:'handleTabClick',value:function handleTabClick(event,index){var onTabClick=this.props.onTabClick;var action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandleTabSelectedAction(index);this.dispatch(action,function(){return onTabClick(index);});}},{key:'getTabBarNavClassNames',value:function getTabBarNavClassNames(isAvailable,containsSelection){var tabBarNavClassNames=TABBAR_NAV__CLASS_NAMES;if(!isAvailable){tabBarNavClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR_NAV__CLASS_NAMES,TABBAR_NAV__DISABLED__CLASS_NAMES);}else if(containsSelection){tabBarNavClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR_NAV__CLASS_NAMES,TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES);}return tabBarNavClassNames;}},{key:'renderTabs',value:function renderTabs(tabs,startIndex,selectedTabIndex,numberOfTabsDisplayed){var tabsToDisplay=[];var endIndex=Math.min(tabs.length,startIndex+numberOfTabsDisplayed);for(var index=startIndex;index<endIndex;index++){var tab=tabs[index];tabsToDisplay.push(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Tab__[\"a\" /* Tab */],{key:tab,index:index,onClick:this.handleTabClick,selected:index===selectedTabIndex},tab));}return tabsToDisplay;}},{key:'render',value:function render(){var _props=this.props,className=_props.className,tabs=_props.tabs,numberOfTabsDisplayed=_props.numberOfTabsDisplayed;var _state=this.state,index=_state.index,isPreviousAvailable=_state.isPreviousAvailable,isNextAvailable=_state.isNextAvailable,selectedTabIndex=_state.selectedTabIndex;var previousContainsSelection=selectedTabIndex<index;var nextContainsSelection=index+numberOfTabsDisplayed<selectedTabIndex+1;var tabBarClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR__CLASS_NAMES,className);var previousClassNames=this.getTabBarNavClassNames(isPreviousAvailable,previousContainsSelection);var nextClassNames=this.getTabBarNavClassNames(isNextAvailable,nextContainsSelection);var tabsToDisplay=this.renderTabs(tabs,index,selectedTabIndex,numberOfTabsDisplayed);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:tabBarClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:previousClassNames,onClick:this.handleTabBarNavClick,'data-side':'previous'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */]},'<')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:TABBAR_TABS__CLASS_NAMES},tabsToDisplay),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:nextClassNames,onClick:this.handleTabBarNavClick,'data-side':'next'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */]},'>')));}}]);return TabBar;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);TabBar.propTypes=propTypes;TabBar.defaultProps=defaultProps;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Tab; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab_css__ = __webpack_require__(124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__Tab_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TAB__CLASS_NAMES='tab';var TAB_SELECTED__CLASS_NAMES='tab--selected';var propTypes={selected:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,index:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,onClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var defaultProps={selected:false,onClick:function onClick(){}};/**\n * The Tab component is used to display one tab in a TabBar.\n */var Tab=function(_Component){_inherits(Tab,_Component);function Tab(props){_classCallCheck(this,Tab);var _this=_possibleConstructorReturn(this,(Tab.__proto__||Object.getPrototypeOf(Tab)).call(this,props));_this.handleTabClick=_this.handleTabClick.bind(_this);return _this;}_createClass(Tab,[{key:'handleTabClick',value:function handleTabClick(event){var _props=this.props,index=_props.index,onClick=_props.onClick;onClick(event,index);}},{key:'render',value:function render(){var _props2=this.props,className=_props2.className,children=_props2.children,selected=_props2.selected;var tabClassNames=TAB__CLASS_NAMES;if(selected){tabClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(tabClassNames,TAB_SELECTED__CLASS_NAMES);}tabClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(tabClassNames,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:tabClassNames,onClick:this.handleTabClick},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"h\" /* MEDIUM */],hideOverflow:true},children));}}]);return Tab;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);Tab.propTypes=propTypes;Tab.defaultProps=defaultProps;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__ = __webpack_require__(126);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the tab bar.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the tab bar.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]:var initializedState=computeState(props.tabs,0,props.selectedTabIndex,props.numberOfTabsDisplayed);initializedState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"h\" /* PRISTINE__STATE */];return initializedState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"b\" /* HANDLE_NEXT__ACTION */]:var handleNextState=computeState(props.tabs,state.index+1,state.selectedTabIndex,props.numberOfTabsDisplayed);handleNextState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handleNextState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"c\" /* HANDLE_PREVIOUS__ACTION */]:var handlePreviousState=computeState(props.tabs,state.index-1,state.selectedTabIndex,props.numberOfTabsDisplayed);handlePreviousState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handlePreviousState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"d\" /* HANDLE_TAB_SELECTED__ACTION */]:var handleTabSelectedState=computeState(props.tabs,state.index,action.selectedTabIndex,props.numberOfTabsDisplayed);handleTabSelectedState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handleTabSelectedState;default:return state;}};var computeState=function computeState(tabs,index,selectedTabIndex,numberOfTabsDisplayed){var isPreviousAvailable=index>0;var isNextAvailable=tabs.length>index+numberOfTabsDisplayed;return{index:index,isPreviousAvailable:isPreviousAvailable,isNextAvailable:isNextAvailable,selectedTabIndex:selectedTabIndex};};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle next action used to navigate to the next tabs in the tab bar.\n */var newHandleNextAction=function newHandleNextAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"b\" /* HANDLE_NEXT__ACTION */]};};/**\n * Returns an handle previous action used to navigate to the next tabs in the tab bar.\n */var newHandlePreviousAction=function newHandlePreviousAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"c\" /* HANDLE_PREVIOUS__ACTION */]};};/**\n * Returns an handle tab selected action used to select a specific tab in the tab bar.\n *\n * @param {*} selectedTabIndex The index of the selected tab\n */var newHandleTabSelectedAction=function newHandleTabSelectedAction(selectedTabIndex){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"d\" /* HANDLE_TAB_SELECTED__ACTION */],selectedTabIndex:selectedTabIndex};};var actionCreator={newInitializeAction:newInitializeAction,newHandleNextAction:newHandleNextAction,newHandlePreviousAction:newHandlePreviousAction,newHandleTabSelectedAction:newHandleTabSelectedAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"a\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"f\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return PRISTINE__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return MOVED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return HANDLE_NEXT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_PREVIOUS__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_TAB_SELECTED__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var PRISTINE__STATE='PRISTINE__STATE';var MOVED__STATE='MOVED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_NEXT__ACTION='HANDLE_NEXT__ACTION';var HANDLE_PREVIOUS__ACTION='HANDLE_PREVIOUS__ACTION';var HANDLE_TAB_SELECTED__ACTION='HANDLE_TAB_SELECTED__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[PRISTINE__STATE]},PRISTINE__STATE:{HANDLE_NEXT__ACTION:[MOVED__STATE],HANDLE_PREVIOUS__ACTION:[MOVED__STATE],HANDLE_TAB_SELECTED__ACTION:[MOVED__STATE]},MOVED__STATE:{HANDLE_NEXT__ACTION:[MOVED__STATE],HANDLE_PREVIOUS__ACTION:[MOVED__STATE],HANDLE_TAB_SELECTED__ACTION:[MOVED__STATE]}};\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 129 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectHeaderCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__EditDescription__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ViewDescription__ = __webpack_require__(132);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECTHEADERCARD__CLASS_NAMES='projectheadercard';var projectHeaderCardPropTypes={name:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,onNewDescription:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var projectHeaderCardDefaultProps={name:'',onNewDescription:function onNewDescription(){}};/**\n * The ProjectHeaderCard is used to contain the most important properties of a\n * project and the main actions used to interact with it.\n */var ProjectHeaderCard=function(_Component){_inherits(ProjectHeaderCard,_Component);function ProjectHeaderCard(props){_classCallCheck(this,ProjectHeaderCard);var _this=_possibleConstructorReturn(this,(ProjectHeaderCard.__proto__||Object.getPrototypeOf(ProjectHeaderCard)).call(this,props));_this.handleEditClick=_this.handleEditClick.bind(_this);_this.handleNewDescription=_this.handleNewDescription.bind(_this);_this.state={isViewingDescription:true};return _this;}_createClass(ProjectHeaderCard,[{key:'handleEditClick',value:function handleEditClick(){this.setState({isViewingDescription:false});}},{key:'handleNewDescription',value:function handleNewDescription(description){var _this2=this;this.setState({isViewingDescription:true},function(){var onNewDescription=_this2.props.onNewDescription;onNewDescription(description);});}},{key:'render',value:function render(){var _props=this.props,className=_props.className,name=_props.name,description=_props.description,onNewDescription=_props.onNewDescription,props=_objectWithoutProperties(_props,['className','name','description','onNewDescription']);var isViewingDescription=this.state.isViewingDescription;var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECTHEADERCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"d\" /* EXTRA_LARGE */],hideOverflow:true,loading:loading},name);})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"c\" /* S */],left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},isViewingDescription?__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__ViewDescription__[\"a\" /* ViewDescription */],{description:description||'No description provided',onEditClick:this.handleEditClick}):__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__EditDescription__[\"a\" /* EditDescription */],{description:description,onNewDescription:this.handleNewDescription})));}}]);return ProjectHeaderCard;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);ProjectHeaderCard.propTypes=projectHeaderCardPropTypes;ProjectHeaderCard.defaultProps=projectHeaderCardDefaultProps;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EditDescription; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_Form__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__EditDescription_css__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__EditDescription_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__EditDescription_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var EDITDESCRIPTION__CLASS_NAMES='editdescription';var editDescriptionPropTypes={description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,onNewDescription:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var editDescriptionDefaultProps={description:''};/**\n * The EditDescription component is used to edit the description of the project.\n */var EditDescription=function(_Component){_inherits(EditDescription,_Component);function EditDescription(props){_classCallCheck(this,EditDescription);var _this=_possibleConstructorReturn(this,(EditDescription.__proto__||Object.getPrototypeOf(EditDescription)).call(this,props));_this.handleDescriptionChange=_this.handleDescriptionChange.bind(_this);_this.handleDoneClick=_this.handleDoneClick.bind(_this);_this.state={description:props.description};return _this;}_createClass(EditDescription,[{key:'handleDescriptionChange',value:function handleDescriptionChange(_ref){var value=_ref.target.value;this.setState({description:value});}},{key:'handleDoneClick',value:function handleDoneClick(){var onNewDescription=this.props.onNewDescription;var description=this.state.description;onNewDescription(description);}},{key:'render',value:function render(){var description=this.state.description;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:EDITDESCRIPTION__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__form_Form__[\"h\" /* TextField */],{value:description,onChange:this.handleDescriptionChange}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__buttons_Button__[\"a\" /* Button */],{onClick:this.handleDoneClick},'Done')));}}]);return EditDescription;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);EditDescription.propTypes=editDescriptionPropTypes;EditDescription.defaultProps=editDescriptionDefaultProps;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 132 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ViewDescription; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ViewDescription_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var VIEWDESCRIPTION__CLASS_NAMES='viewdescription';var VIEWDESCRIPTION_TEXT__CLASS_NAMES='viewdescription-text';var viewDescriptionPropTypes={description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,onEditClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};/**\n * The ViewDescription component is used to display the description of the\n * project with a button used to edit it.\n */var ViewDescription=function ViewDescription(_ref){var className=_ref.className,description=_ref.description,onEditClick=_ref.onEditClick,props=_objectWithoutProperties(_ref,['className','description','onEditClick']);var viewDescriptionClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(VIEWDESCRIPTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:viewDescriptionClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Fragment,null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__text_Text__[\"a\" /* Text */],{className:VIEWDESCRIPTION_TEXT__CLASS_NAMES,loading:loading},description),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__buttons_Button__[\"a\" /* Button */],{onClick:onEditClick,loading:loading},'Edit')));}));};ViewDescription.propTypes=viewDescriptionPropTypes;\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 134 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectRepresentationsListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES='projectrepresentationslistcard';var propTypes={representations:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired};var defaultProps={representations:[]};/**\n * The ProjectRepresentationsListCard is a Card listing all the representations\n * of a project.\n */var ProjectRepresentationsListCard=function ProjectRepresentationsListCard(_ref){var className=_ref.className,projectName=_ref.projectName,representations=_ref.representations,props=_objectWithoutProperties(_ref,['className','projectName','representations']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Representations');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Representations,{projectName:projectName,representations:representations}));};ProjectRepresentationsListCard.propTypes=propTypes;ProjectRepresentationsListCard.defaultProps=defaultProps;/**\n * Renders the representations of the card or a text indicating the lack of\n * representations.\n */var Representations=function Representations(_ref2){var projectName=_ref2.projectName,representations=_ref2.representations;if(representations.length>0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(RepresentationsList,{projectName:projectName,representations:representations});}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptyRepresentations,null);};/**\n * Renders the list of representations.\n */var RepresentationsList=function RepresentationsList(_ref3){var projectName=_ref3.projectName,representations=_ref3.representations;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},representations.map(function(representation){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"d\" /* TWO_LINES */],key:representation.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"d\" /* MainText */],null,representation.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"b\" /* AdditionalText */],null,representation.descriptionName)));}));};/**\n * Renders a text indicating the lack of representations.\n */var EmptyRepresentations=function EmptyRepresentations(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{loading:loading},'No representation has been found on the project.');}));};\n\n/***/ }),\n/* 135 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectSemanticResourcesListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES='projectsemanticresourceslistcard';var propTypes={semanticResources:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired};var defaultProps={semanticResources:[]};/**\n * The ProjectSemanticResourcesListCard is a Card displaying all the semantic\n * resources of a project.\n */var ProjectSemanticResourcesListCard=function ProjectSemanticResourcesListCard(_ref){var className=_ref.className,semanticResources=_ref.semanticResources,props=_objectWithoutProperties(_ref,['className','semanticResources']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Semantic Resources');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(SemanticResources,{semanticResources:semanticResources}));};ProjectSemanticResourcesListCard.propTypes=propTypes;ProjectSemanticResourcesListCard.defaultProps=defaultProps;/**\n * Renders the semantic resources of the card or a text indicating the lack of\n * semantic resources.\n */var SemanticResources=function SemanticResources(_ref2){var semanticResources=_ref2.semanticResources;if(semanticResources.length>0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(SemanticResourcesList,{semanticResources:semanticResources});}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptySemanticResources,null);};/**\n * Renders the list of semantic resources.\n */var SemanticResourcesList=function SemanticResourcesList(_ref3){var semanticResources=_ref3.semanticResources;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},semanticResources.map(function(resource){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"b\" /* SINGLE_LINE */],key:resource.path},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"d\" /* MainText */],null,resource.path),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"k\" /* SMALL */]},resource.size));}));};/**\n * Renders a text indicating the lack of semantic resources.\n */var EmptySemanticResources=function EmptySemanticResources(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{loading:loading},'No semantic resource has been found on the project.');}));};\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DashboardViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__ = __webpack_require__(140);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The DashboardViewStateContainer is the stateful component used to manipulate\n * the state of the dashboard.\n */var DashboardViewStateContainer=function(_Component){_inherits(DashboardViewStateContainer,_Component);function DashboardViewStateContainer(props){_classCallCheck(this,DashboardViewStateContainer);var _this=_possibleConstructorReturn(this,(DashboardViewStateContainer.__proto__||Object.getPrototypeOf(DashboardViewStateContainer)).call(this,props));_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(DashboardViewStateContainer,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){var jsonDashboardResponse,action,dashboardResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return fetch('/api/dashboard');case 3:jsonDashboardResponse=_context.sent;action=void 0;if(!jsonDashboardResponse.ok){_context.next=12;break;}_context.next=8;return jsonDashboardResponse.json();case 8:dashboardResponse=_context.sent;action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newHandleDashboardFetchedAction(dashboardResponse);_context.next=14;break;case 12:statusText=jsonDashboardResponse.statusText,status=jsonDashboardResponse.status;action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 14:this.dispatch(action);_context.next=21;break;case 17:_context.prev=17;_context.t0=_context['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0);this.dispatch(_action);case 21:case'end':return _context.stop();}}},_callee,this,[[0,17]]);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,dashboard=_state.dashboard;return render(stateId,error,dashboard);}}]);return DashboardViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = __webpack_require__(139);\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__ = __webpack_require__(39);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the dashboard view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the dashboard.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"f\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"h\" /* LOADING__STATE */],dashboard:{projects:[]},error:null};case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_DASHBOARD__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"a\" /* DASHBOARD_LOADED__STATE */],dashboard:action.dashboard,error:null};case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"b\" /* ERROR__STATE */],dashboard:state.dashboard,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"f\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle dashboard fetched action used to go from the loading state\n * to the dashboard loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleDashboardFetchedAction=function newHandleDashboardFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_DASHBOARD__ACTION */],dashboard:response};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the dashboard',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the dashboard',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleDashboardFetchedAction:newHandleDashboardFetchedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"c\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"g\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 141 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ListProjectsViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__ = __webpack_require__(142);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ListProjectsViewStateContainer is the stateful component used to manipulate\n * the list of the projects.\n */var ListProjectsViewStateContainer=function(_Component){_inherits(ListProjectsViewStateContainer,_Component);function ListProjectsViewStateContainer(props){_classCallCheck(this,ListProjectsViewStateContainer);var _this=_possibleConstructorReturn(this,(ListProjectsViewStateContainer.__proto__||Object.getPrototypeOf(ListProjectsViewStateContainer)).call(this,props));_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(ListProjectsViewStateContainer,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){var jsonProjectsResponse,action,projectsResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return fetch('/api/projects');case 3:jsonProjectsResponse=_context.sent;action=void 0;if(!jsonProjectsResponse.ok){_context.next=12;break;}_context.next=8;return jsonProjectsResponse.json();case 8:projectsResponse=_context.sent;action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newHandleProjectsFetchedAction(projectsResponse);_context.next=14;break;case 12:statusText=jsonProjectsResponse.statusText,status=jsonProjectsResponse.status;action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 14:this.dispatch(action);_context.next=21;break;case 17:_context.prev=17;_context.t0=_context['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0);this.dispatch(_action);case 21:case'end':return _context.stop();}}},_callee,this,[[0,17]]);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,projects=_state.projects;return render(stateId,error,projects);}}]);return ListProjectsViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__ = __webpack_require__(40);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the list projects view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the list projects view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"g\" /* LOADING__STATE */],projects:[],error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"d\" /* HANDLE_FETCHED_PROJECTS__ACTION */]:if(action.projects.length===0){return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"h\" /* NO_PROJECTS_LOADED__STATE */],projects:[],error:undefined};}return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"i\" /* PROJECTS_LOADED__STATE */],projects:action.projects,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"a\" /* ERROR__STATE */],projects:state.projects,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle projects fetched action used to go from the loading state\n * to the projects loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleProjectsFetchedAction=function newHandleProjectsFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"d\" /* HANDLE_FETCHED_PROJECTS__ACTION */],projects:response.projects};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the list of projects',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the projects list',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleProjectsFetchedAction:newHandleProjectsFetchedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"b\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"f\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__ = __webpack_require__(144);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The NewProjectViewStateContainer is the stateful component used to manipulate\n * the state of the NewProjectView.\n */var NewProjectViewStateContainer=function(_Component){_inherits(NewProjectViewStateContainer,_Component);function NewProjectViewStateContainer(props){_classCallCheck(this,NewProjectViewStateContainer);var _this=_possibleConstructorReturn(this,(NewProjectViewStateContainer.__proto__||Object.getPrototypeOf(NewProjectViewStateContainer)).call(this,props));_this.handleNameChange=_this.handleNameChange.bind(_this);_this.handleSubmit=_this.handleSubmit.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(NewProjectViewStateContainer,[{key:'handleNameChange',value:function handleNameChange(event){var name=event.target.value;this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newModifyNameAction(name));}},{key:'handleSubmit',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(event){var name,body,request,jsonResponse,ok,statusText,message,response;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:name=this.state.name;event.preventDefault();_context.prev=2;body={name:name};request=new Request('/api/projects',{method:'POST',body:JSON.stringify(body)});_context.next=7;return fetch(request);case 7:jsonResponse=_context.sent;ok=jsonResponse.ok,statusText=jsonResponse.statusText;if(!ok){_context.next=13;break;}this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newCreatedProjectAction());_context.next=19;break;case 13:message=statusText;_context.next=16;return jsonResponse.json();case 16:response=_context.sent;if(response){message=response.message;}this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(message));case 19:_context.next=24;break;case 21:_context.prev=21;_context.t0=_context['catch'](2);this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0.message));case 24:case'end':return _context.stop();}}},_callee,this,[[2,21]]);}));function handleSubmit(_x){return _ref.apply(this,arguments);}return handleSubmit;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,errors=_state.errors,isValid=_state.isValid,name=_state.name,nameIsValid=_state.nameIsValid,nameErrors=_state.nameErrors;return render(stateId,errors,isValid,this.handleSubmit,name,nameIsValid,nameErrors,this.handleNameChange);}}]);return NewProjectViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 144 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__ = __webpack_require__(43);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the new project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the new project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"d\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"h\" /* PRISTINE__STATE */],errors:[],isValid:false,name:'',nameIsValid:false,nameErrors:[]};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"g\" /* MODIFY_NAME__ACTION */]:var name=action.name;var nameErrors=validateName(name);var nameIsValid=nameErrors.length===0;var isValid=nameIsValid;return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */],errors:[],isValid:isValid,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */]:var errors=[].concat(state.errors);errors.push(action.message);return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */],errors:errors,isValid:false};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"b\" /* HANDLE_CREATED_PROJECT__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"i\" /* REDIRECT__STATE */]};default:return state;}};/**\n * Validates the given name and returns the errors found.\n * @param {*} name\n * @returns An array of string describing the errors found\n */var validateName=function validateName(name){var errors=[];if(name.trim().length===0){errors.push('The name is required');}var invalidCharacters=['\\\\','/',':','*','?','\"','<','>','|'];invalidCharacters.forEach(function(invalidCharacter){if(name.indexOf(invalidCharacter)!==-1){errors.push('The character '+invalidCharacter+' cannot be used in the name');}});if(name.trim()==='.'||name.trim()==='..'){errors.push('The name cannot have the value . or ..');}if(name.length>0&&name.charAt(name.length-1)==='.'){errors.push('The name cannot end with a dot');}if(name.length>0&&name.trim().length===0){errors.push('The name cannot be composed of whitespaces');}else if(name.length!==name.trim().length){errors.push('Remove any whitespace at the beginning or the end');}return errors;};/**\n * Returns an initialize action used to go from the initial state to the\n * pristine state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"d\" /* INITIALIZE__ACTION */]};};/**\n * Returns a new modify name action used to change the value of the name and\n * trigger the various validation rules.\n *\n * @param {*} name The name\n */var newModifyNameAction=function newModifyNameAction(name){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"g\" /* MODIFY_NAME__ACTION */],name:name};};/**\n * Returns a new unexpected error action used to handle an unexpected error in\n * our code.\n *\n * @param {*} message The message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],message:'An error has occured during the processing of the response'};};/**\n * Returns a new handle created project action used to redirect the user interface\n * to the new project created.\n */var newCreatedProjectAction=function newCreatedProjectAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"b\" /* HANDLE_CREATED_PROJECT__ACTION */]};};/**\n * Returns a new invalid error action used to handle an invalid response from\n * the server.\n *\n * @param {*} message The message\n */var newInvalidResponseAction=function newInvalidResponseAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],message:message};};var actionCreator={newInitializeAction:newInitializeAction,newModifyNameAction:newModifyNameAction,newUnexpectedErrorAction:newUnexpectedErrorAction,newCreatedProjectAction:newCreatedProjectAction,newInvalidResponseAction:newInvalidResponseAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"a\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"e\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 145 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__ = __webpack_require__(146);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ProjectViewStateContainerWithoutRouter is the stateful component used to\n * manipulate the state of the ProjectView.\n *\n * It leverages the router API in order to retrieve the name of the project to\n * display from the URL.\n */var ProjectViewStateContainerWithoutRouter=function(_Component){_inherits(ProjectViewStateContainerWithoutRouter,_Component);function ProjectViewStateContainerWithoutRouter(props){_classCallCheck(this,ProjectViewStateContainerWithoutRouter);var _this=_possibleConstructorReturn(this,(ProjectViewStateContainerWithoutRouter.__proto__||Object.getPrototypeOf(ProjectViewStateContainerWithoutRouter)).call(this,props));_this.handleActivityClick=_this.handleActivityClick.bind(_this);_this.handleTabClick=_this.handleTabClick.bind(_this);_this.handleNewDescription=_this.handleNewDescription.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(ProjectViewStateContainerWithoutRouter,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return this.updateData();case 2:case'end':return _context.stop();}}},_callee,this);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'updateData',value:function(){var _ref2=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee2(){var projectName,jsonProjectResponse,action,projectResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.prev=0;projectName=this.props.match.params.projectName;_context2.next=4;return fetch('/api/projects/'+projectName);case 4:jsonProjectResponse=_context2.sent;action=void 0;if(!jsonProjectResponse.ok){_context2.next=13;break;}_context2.next=9;return jsonProjectResponse.json();case 9:projectResponse=_context2.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandleProjectFetchedAction(projectResponse);_context2.next=15;break;case 13:statusText=jsonProjectResponse.statusText,status=jsonProjectResponse.status;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 15:this.dispatch(action);_context2.next=22;break;case 18:_context2.prev=18;_context2.t0=_context2['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context2.t0);this.dispatch(_action);case 22:case'end':return _context2.stop();}}},_callee2,this,[[0,18]]);}));function updateData(){return _ref2.apply(this,arguments);}return updateData;}()},{key:'handleTabClick',value:function(){var _ref3=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee3(index){var pages,pageIdentifier,projectName,jsonPageResponse,pageResponse,action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:pages=this.state.project.pages;pageIdentifier=pages[index].identifier;projectName=this.props.match.params.projectName;_context3.prev=3;_context3.next=6;return fetch('/api/projects/'+projectName+'/pages/'+pageIdentifier);case 6:jsonPageResponse=_context3.sent;_context3.next=9;return jsonPageResponse.json();case 9:pageResponse=_context3.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandlePageFetchedAction(pageResponse);this.dispatch(action);_context3.next=16;break;case 14:_context3.prev=14;_context3.t0=_context3['catch'](3);case 16:case'end':return _context3.stop();}}},_callee3,this,[[3,14]]);}));function handleTabClick(_x){return _ref3.apply(this,arguments);}return handleTabClick;}()},{key:'handleActivityClick',value:function(){var _ref4=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee4(projectName,pageIdentifier,sectionIdentifier,activityIdentifier){var request,jsonResponse,ok;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee4$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:_context4.prev=0;request=new Request('/api/projects/'+projectName+'/pages/'+pageIdentifier+'/sections/'+sectionIdentifier+'/activities/'+activityIdentifier+'/execute',{method:'POST'});_context4.next=4;return fetch(request);case 4:jsonResponse=_context4.sent;ok=jsonResponse.ok;if(!ok){// To be handled\n}_context4.next=9;return this.updateData();case 9:_context4.next=13;break;case 11:_context4.prev=11;_context4.t0=_context4['catch'](0);case 13:case'end':return _context4.stop();}}},_callee4,this,[[0,11]]);}));function handleActivityClick(_x2,_x3,_x4,_x5){return _ref4.apply(this,arguments);}return handleActivityClick;}()},{key:'handleNewDescription',value:function(){var _ref5=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee5(description){var project,oldDescription,projectName,body,request,jsonResponse,response,action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee5$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:project=this.state.project;oldDescription=project.description;if(oldDescription===undefined){oldDescription='';}if(!(description!==oldDescription)){_context5.next=20;break;}projectName=this.props.match.params.projectName;_context5.prev=5;body=JSON.stringify({description:description});request=new Request('/api/projects/'+projectName,{method:'PUT',body:body});_context5.next=10;return fetch(request);case 10:jsonResponse=_context5.sent;_context5.next=13;return jsonResponse.json();case 13:response=_context5.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandleDescriptionUpdatedAction(response);this.dispatch(action);_context5.next=20;break;case 18:_context5.prev=18;_context5.t0=_context5['catch'](5);case 20:case'end':return _context5.stop();}}},_callee5,this,[[5,18]]);}));function handleNewDescription(_x6){return _ref5.apply(this,arguments);}return handleNewDescription;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,project=_state.project,pageIdentifier=_state.pageIdentifier;return render(stateId,error,project,pageIdentifier,this.handleTabClick,this.handleActivityClick,this.handleNewDescription);}}]);return ProjectViewStateContainerWithoutRouter;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);var ProjectViewStateContainer=Object(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"f\" /* withRouter */])(ProjectViewStateContainerWithoutRouter);\n\n/***/ }),\n/* 146 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__ = __webpack_require__(44);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"g\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"i\" /* LOADING__STATE */],project:undefined,pageIdentifier:undefined,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"f\" /* HANDLE_FETCHED_PROJECT__ACTION */]:var pageIdentifier=void 0;if(action.project.pages.length>0){pageIdentifier=action.project.pages[0].identifier;}return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:action.project,pageIdentifier:pageIdentifier,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_PAGE__ACTION */]:var newFetchedPageState={stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:state.project,pageIdentifier:action.page.identifier,error:undefined};newFetchedPageState.project.currentPageSections=action.page.sections;return newFetchedPageState;case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"c\" /* HANDLE_DESCRIPTION_UPDATED__ACTION */]:var newDescriptionUpdatedState={stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:state.project,pageIdentifier:state.pageIdentifier,error:undefined};newDescriptionUpdatedState.project=Object.assign({},newDescriptionUpdatedState.project,{description:action.description});return newDescriptionUpdatedState;case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"a\" /* ERROR__STATE */],project:state.project,pageIdentifier:state.pageIdentifier,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"g\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle project fetched action used to go from the loading state\n * to the project loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleProjectFetchedAction=function newHandleProjectFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"f\" /* HANDLE_FETCHED_PROJECT__ACTION */],project:response};};/**\n * Returns an handle page fetched action used to change the current workflow\n * page.\n *\n * @param {*} response The HTTP response of the server\n */var newHandlePageFetchedAction=function newHandlePageFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_PAGE__ACTION */],page:response};};/**\n * Returns an handle description updated action used to change the current\n * description of the project.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleDescriptionUpdatedAction=function newHandleDescriptionUpdatedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"c\" /* HANDLE_DESCRIPTION_UPDATED__ACTION */],description:response.description};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the project',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the project',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleProjectFetchedAction:newHandleProjectFetchedAction,newHandlePageFetchedAction:newHandlePageFetchedAction,newHandleDescriptionUpdatedAction:newHandleDescriptionUpdatedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"b\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"h\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 147 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Navbar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Navbar_css__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Navbar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Navbar_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var NAVBAR__CLASS_NAMES='navbar';var NAVBAR_CONTAINER__CLASS_NAMES='navbar-container';var NARBAR_TITLE__CLASS_NAMES='navbar-title title-xxl';/**\n * The Navbar is used to display a navigation bar on top of the user interface.\n * It can contain the title of the application and various actions.\n */var Navbar=function Navbar(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var navClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(NAVBAR__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('nav',Object.assign({className:navClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],left:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:NAVBAR_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:NARBAR_TITLE__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__[\"a\" /* BOLD */],size:__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__[\"c\" /* EXTRA_EXTRA_LARGE */]},'Eclipse Sirius')))));};\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// static/js/main.91885b73.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/workflow/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 45);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9d01bf3247994e1e0954","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/index.js\n// module id = 0\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 1\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n/**\n * Computes the class names of an element from the given static class names\n * along with optional class names which can be null or undefined.\n */\nexport const classNames = (staticClassNames, ...optionalClassNames) => {\n  const classNames = staticClassNames + ' ' + optionalClassNames.filter(n => n).join(' ');\n  return classNames.trim();\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/classnames.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const XS = '4px';\nexport const S = '8px';\nexport const M = '16px';\nexport const L = '32px';\nexport const XL = '64px';\nexport const XXL = '128px';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/spacing/SpacingConstants.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { XS, S, M, L, XL, XXL } from './SpacingConstants';\n\nconst propTypes = {\n  top: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  right: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  bottom: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  left: PropTypes.oneOf([XS, S, M, L, XL, XXL])\n};\n\n/**\n * The Spacing component is used to help manage the layout of the components.\n *\n * It will compute a padding for the div which will encapsulate the children from\n * the given value of top, right, bottom and left.\n */\nexport const Spacing = ({ children, top, right, bottom, left }) => {\n  const style = {\n    paddingTop: top,\n    paddingRight: right,\n    paddingBottom: bottom,\n    paddingLeft: left\n  };\n  return <div style={style}>{children}</div>;\n};\nSpacing.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/spacing/Spacing.js","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/warning/browser.js\n// module id = 5\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport {\n  LIGHT,\n  REGULAR,\n  SEMI_BOLD,\n  BOLD,\n  EXTRA_BOLD,\n  EXTRA_SMALL,\n  SMALL,\n  MEDIUM,\n  LARGE,\n  EXTRA_LARGE,\n  EXTRA_EXTRA_LARGE\n} from './TextConstants';\n\nimport './Text.css';\n\nconst propTypes = {\n  children: PropTypes.string,\n  loading: PropTypes.bool,\n  weight: PropTypes.oneOf([LIGHT, REGULAR, SEMI_BOLD, BOLD, EXTRA_BOLD]).isRequired,\n  size: PropTypes.oneOf([EXTRA_SMALL, SMALL, MEDIUM, LARGE, EXTRA_LARGE, EXTRA_EXTRA_LARGE])\n    .isRequired,\n  hideOverflow: PropTypes.bool\n};\nconst defaultProps = {\n  weight: REGULAR,\n  size: SMALL\n};\n\nexport const Text = ({ children, className, weight, size, hideOverflow, loading, ...props }) => {\n  let textClassNames = classNames('text', size, weight);\n  if (hideOverflow) {\n    textClassNames = classNames(textClassNames, 'hideoverflow');\n  }\n  if (loading) {\n    textClassNames = classNames(textClassNames, 'loading');\n  }\n  textClassNames = classNames(textClassNames, className);\n  return <div className={textClassNames}>{children}</div>;\n};\nText.propTypes = propTypes;\nText.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/Text.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n// Text weights\nexport const LIGHT = 'light';\nexport const REGULAR = 'regular';\nexport const SEMI_BOLD = 'semibold';\nexport const BOLD = 'bold';\nexport const EXTRA_BOLD = 'extrabold';\n\n// Text sizes\nexport const EXTRA_EXTRA_LARGE = 'xxl';\nexport const EXTRA_LARGE = 'xl';\nexport const LARGE = 'l';\nexport const MEDIUM = 'm';\nexport const SMALL = 's';\nexport const EXTRA_SMALL = 'xs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/TextConstants.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/invariant/browser.js\n// module id = 8\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { classNames } from '../../common/classnames';\n\nimport './Card.css';\n\nconst CARD__CLASS_NAMES = 'card';\n\n/**\n * The Card component is used as a common block of the user interface.\n */\nexport const Card = ({ className, ...props }) => {\n  const cardClassNames = classNames(CARD__CLASS_NAMES, className);\n  return (\n    <div className={cardClassNames} {...props}>\n      {props.children}\n    </div>\n  );\n};\n\nconst CARD_DIVIDER__CLASS_NAMES = 'card-divider';\n\n/**\n * The Divider is used to separate two main parts of the Card like the Header\n * and the Body or the Body and the Footer.\n */\nexport const Divider = ({ className, ...props }) => {\n  const dividerClassNames = classNames(CARD_DIVIDER__CLASS_NAMES, className);\n  return <div className={dividerClassNames} {...props} />;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cards/Card.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport './Loading.css';\n\nconst LOADING__CLASS_NAMES = 'loading';\n\n/**\n * The Login component is used to display that we are waiting for some\n * asynchronous process to finish like a request to a server.\n */\nexport const Loading = ({ className, ...props }) => {\n  const loadingClassNames = classNames(LOADING__CLASS_NAMES, className);\n  return (\n    <div className={loadingClassNames} {...props}>\n      <div />\n      <div />\n      <div />\n    </div>\n  );\n};\n\nexport class LoadingProvider extends Component {\n  getChildContext() {\n    return {\n      LoadingProvider_LOADING: this.props.loading\n    };\n  }\n  render() {\n    return this.props.children;\n  }\n}\nLoadingProvider.childContextTypes = {\n  LoadingProvider_LOADING: PropTypes.bool.isRequired\n};\n\nexport const LoadingConsumer = (props, context) => {\n  const { render, children = render } = props;\n  const loading = context.LoadingProvider_LOADING;\n  return children(loading);\n};\nLoadingConsumer.contextTypes = {\n  LoadingProvider_LOADING: PropTypes.bool\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loading/Loading.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n// See the knowledge base document for more information regarding errors\n\nexport const UNKNOWN_ERROR = 1000;\nexport const UNSUPPORTED_STATE = 1001;\nexport const RENDERING_ERROR = 1002;\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/errors.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const SINGLE_LINE = 'SINGLE_LINE';\nexport const TWO_LINES = 'TWO_LINES';\nexport const THREE_LINES = 'THREE_LINES';\n\nexport const LIST_WITH_SEPARATOR__KIND = 'list--separated';\nexport const LIST_WITH_HIGHLIGHT__KIND = 'list--highlighted';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/ListConstants.js","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/PathUtils.js\n// module id = 14\n// module chunks = 0","export var addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nexport var createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/PathUtils.js\n// module id = 15\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L } from '../spacing/SpacingConstants';\n\nimport './ErrorCard.css';\n\nconst propTypes = {\n  code: PropTypes.number.isRequired,\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string.isRequired\n};\n\nconst ERRORCARD__CLASS_NAMES = 'errorcard';\nconst ERRORCARD_CONTAINER__CLASS_NAMES = 'errorcard-container';\nconst ERRORCARD_TITLE__CLASS_NAMES = 'title-l';\n\n/**\n * The ErrorCard component is used to display errors.\n */\nexport const ErrorCard = ({ className, code, title, message, ...props }) => {\n  const errorCardClassNames = classNames(ERRORCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={errorCardClassNames}>\n      <Spacing top={L} right={L} bottom={L} left={L}>\n        <div className={ERRORCARD_CONTAINER__CLASS_NAMES}>\n          <Spacing top={M} right={M} bottom={M} left={M}>\n            <h1 className={ERRORCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          </Spacing>\n          <p>{`${message} (code: ${code})`}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nErrorCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n/**\n * The dispatcher creator is a function which will create a new dispatcher\n * initialized thanks to the following parameters:\n *\n * First, the finite state machine defining all the states and transitions in\n * the stateful component. Second, the reducer used to define the behavior of\n * each transition, allowing the stateful component to move from one state to\n * another and finally, the initial state of the finite state machine.\n *\n * It will then return a dispatcher which will ensure that the reducer cannot\n * be called to execute an action which is not defined on the current state\n * starting with the initial state. It will also make sure that the new state\n * computed by the reducer is accessible from the current state with the action\n * that the reducer had to execute.\n *\n * Failure to comply with those requirements will result in an error logged in\n * the console and no change will be applied to the returned state.\n */\nexport const dispatcherCreator = (FSM, reducer, INITIAL__STATE) => (\n  prevState = { stateId: INITIAL__STATE },\n  props,\n  action\n) => {\n  let transitions = FSM[prevState.stateId];\n  const newPotentialState = transitions[action.kind];\n  if (newPotentialState) {\n    const newState = reducer(prevState, props, action);\n    if (newPotentialState.indexOf(newState.stateId) !== -1) {\n      if (FSM[newState.stateId]) {\n        return newState;\n      } else {\n        console.error(`The state ${newState.stateId} does not exist.`);\n      }\n    } else {\n      console.error(\n        `The state '${newState.stateId}' should not be accessible from ${\n          prevState.stateId\n        } with the transition ${action.kind}.`\n      );\n    }\n  } else {\n    console.error(\n      `The state '${prevState.stateId}' does not support the transition '${action.kind}'.`\n    );\n  }\n  return prevState;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/dispatcherCreator.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 18\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/LocationUtils.js\n// module id = 19\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\n\nimport { SINGLE_LINE, TWO_LINES, THREE_LINES } from './ListConstants';\n\nimport './List.css';\nimport { LIGHT, EXTRA_SMALL } from '../text/TextConstants';\n\nconst TILE_MAINICON__CLASS_NAMES = 'tile-mainicon';\n\nconst mainIconPropTypes = {};\n\n/**\n * The main icon is used to display an image before the main text.\n */\nexport const MainIcon = ({ className, ...props }) => {\n  const mainIconClassNames = classNames(TILE_MAINICON__CLASS_NAMES, className);\n  return <div className={mainIconClassNames} {...props} />;\n};\nMainIcon.propTypes = mainIconPropTypes;\n\nconst TILE_ADDITIONALICON__CLASS_NAMES = 'tile-additionalicon';\n\nconst additionalIconPropTypes = {};\n\n/**\n * The additional icon is used to display images after the main text.\n */\nexport const AdditionalIcon = ({ className, ...props }) => {\n  const additionalIconClassNames = classNames(TILE_ADDITIONALICON__CLASS_NAMES, className);\n  return <div className={additionalIconClassNames} {...props} />;\n};\nAdditionalIcon.propTypes = additionalIconPropTypes;\n\nconst TILE_MAINTEXT__CLASS_NAMES = 'tile-maintext';\n\nconst mainTextPropTypes = {\n  children: PropTypes.string\n};\n\n/**\n * The MainText component is used as the main text content of a tile.\n */\nexport const MainText = ({ className, children, ...props }) => {\n  const mainTextClassNames = classNames(TILE_MAINTEXT__CLASS_NAMES, className);\n  return (\n    <Text className={mainTextClassNames} {...props}>\n      {children}\n    </Text>\n  );\n};\nMainText.propTypes = mainTextPropTypes;\n\nconst TILE_ADDITIONALTEXT__CLASS_NAMES = 'tile-additionaltext';\n\nconst additionalTextPropTypes = {\n  children: PropTypes.string\n};\n\n/**\n * The AdditionalText component is used as the additional text content of a tile.\n */\nexport const AdditionalText = ({ className, children, ...props }) => {\n  const additionalTextClassNames = classNames(TILE_ADDITIONALTEXT__CLASS_NAMES, className);\n  return (\n    <Text className={additionalTextClassNames} {...props} size={EXTRA_SMALL} weight={LIGHT}>\n      {children}\n    </Text>\n  );\n};\nAdditionalText.propTypes = additionalTextPropTypes;\n\nconst TILE__CLASS_NAMES = 'tile';\nconst TILE__SINGLELINE__CLASS_NAMES = 'tile--singleline';\nconst TILE__TWOLINE__CLASS_NAMES = 'tile--twoline';\nconst TILE__THREELINE__CLASS_NAMES = 'tile--threeline';\n\nconst tilePropTypes = {\n  kind: PropTypes.oneOf([SINGLE_LINE, TWO_LINES, THREE_LINES]).isRequired\n};\n\n/**\n * The SingleLineTile is used to represent one line of the list component. It\n * can display a main icon, some text and additional icons. The text displayed\n * can only use one line for the main text.\n */\nexport const Tile = ({ className, kind, ...props }) => {\n  let kindClassName = TILE__SINGLELINE__CLASS_NAMES;\n  if (kind === TWO_LINES) {\n    kindClassName = TILE__TWOLINE__CLASS_NAMES;\n  } else if (kind === THREE_LINES) {\n    kindClassName = TILE__THREELINE__CLASS_NAMES;\n  }\n  const tileClassNames = classNames(TILE__CLASS_NAMES, kindClassName, className);\n  return <li className={tileClassNames} {...props} />;\n};\nTile.propTypes = tilePropTypes;\n\nconst LIST__CLASS_NAMES = 'list';\n\nconst listPropTypes = {\n  kind: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n  children: PropTypes.oneOfType([PropTypes.arrayOf(Tile), PropTypes.objectOf(Tile)])\n};\nconst listDefaultProps = {\n  kind: ''\n};\n\n/**\n * The List component is used to display a list of elements.\n *\n * Those elements can be separated by a line by using LIST_WITH_SEPARATOR__KIND\n * in the property kind. You can also add some highlight to the element over\n * which the mouse is located with LIST_WITH_HIGHLIGHT__KIND. Both properties\n * can be used at the same time.\n *\n * The List component can only have ListItem children.\n */\nexport const List = ({ children, className, kind, ...props }) => {\n  const kinds = computeKinds(kind);\n  const listClassNames = classNames(LIST__CLASS_NAMES, ...kinds, className);\n  return (\n    <ul className={listClassNames} {...props}>\n      <Spacing top={S} bottom={S}>\n        {children}\n      </Spacing>\n    </ul>\n  );\n};\nList.propTypes = listPropTypes;\nList.defaultProps = listDefaultProps;\n\n/**\n * Computes the kind ot the link.\n * @param kind The kind (which can be an array or a string)\n * @return The computed kind\n */\nconst computeKinds = kind => {\n  let kinds = [];\n  if (Array.isArray(kind)) {\n    kinds = kind;\n  } else if (typeof kind === 'string') {\n    kinds.push(kind);\n  }\n  return kinds;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/List.js","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/regenerator/index.js\n// module id = 21\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 22\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = (0, _PathUtils.parsePath)(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/LocationUtils.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createTransitionManager.js\n// module id = 24\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Router from 'react-router/es/Router';\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Router.js\n// module id = 25\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n  _inherits(Router, _React$Component);\n\n  function Router() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Router);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props.history.location.pathname)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Router.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        history: this.props.history,\n        route: {\n          location: this.props.history.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Router.prototype.computeMatch = function computeMatch(pathname) {\n    return {\n      path: '/',\n      url: '/',\n      params: {},\n      isExact: pathname === '/'\n    };\n  };\n\n  Router.prototype.componentWillMount = function componentWillMount() {\n    var _this2 = this;\n\n    var _props = this.props,\n        children = _props.children,\n        history = _props.history;\n\n\n    invariant(children == null || React.Children.count(children) === 1, 'A <Router> may have only one child element');\n\n    // Do this here so we can setState when a <Redirect> changes the\n    // location in componentWillMount. This happens e.g. when doing\n    // server rendering using a <StaticRouter>.\n    this.unlisten = history.listen(function () {\n      _this2.setState({\n        match: _this2.computeMatch(history.location.pathname)\n      });\n    });\n  };\n\n  Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    warning(this.props.history === nextProps.history, 'You cannot change <Router history>');\n  };\n\n  Router.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.unlisten();\n  };\n\n  Router.prototype.render = function render() {\n    var children = this.props.children;\n\n    return children ? React.Children.only(children) : null;\n  };\n\n  return Router;\n}(React.Component);\n\nRouter.propTypes = {\n  history: PropTypes.object.isRequired,\n  children: PropTypes.node\n};\nRouter.contextTypes = {\n  router: PropTypes.object\n};\nRouter.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Router.js\n// module id = 26\n// module chunks = 0","import pathToRegexp from 'path-to-regexp';\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n  var cacheKey = '' + options.end + options.strict + options.sensitive;\n  var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n  if (cache[pattern]) return cache[pattern];\n\n  var keys = [];\n  var re = pathToRegexp(pattern, keys, options);\n  var compiledPattern = { re: re, keys: keys };\n\n  if (cacheCount < cacheLimit) {\n    cache[pattern] = compiledPattern;\n    cacheCount++;\n  }\n\n  return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (typeof options === 'string') options = { path: options };\n\n  var _options = options,\n      _options$path = _options.path,\n      path = _options$path === undefined ? '/' : _options$path,\n      _options$exact = _options.exact,\n      exact = _options$exact === undefined ? false : _options$exact,\n      _options$strict = _options.strict,\n      strict = _options$strict === undefined ? false : _options$strict,\n      _options$sensitive = _options.sensitive,\n      sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n  var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n      re = _compilePath.re,\n      keys = _compilePath.keys;\n\n  var match = re.exec(pathname);\n\n  if (!match) return null;\n\n  var url = match[0],\n      values = match.slice(1);\n\n  var isExact = pathname === url;\n\n  if (exact && !isExact) return null;\n\n  return {\n    path: path, // the path pattern used to match\n    url: path === '/' && url === '' ? '/' : url, // the matched portion of the URL\n    isExact: isExact, // whether or not we matched exactly\n    params: keys.reduce(function (memo, key, index) {\n      memo[key.name] = values[index];\n      return memo;\n    }, {})\n  };\n};\n\nexport default matchPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/matchPath.js\n// module id = 27\n// module chunks = 0","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    warning(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexport default createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createTransitionManager.js\n// module id = 28\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Loading } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD } from '../text/TextConstants';\n\nimport {\n  BUTTON_DANGER__KIND,\n  BUTTON_DEFAULT__KIND,\n  BUTTON_PRIMARY__KIND,\n  BUTTON_SUCCESS__KIND,\n  BUTTON_WARNING__KIND\n} from './ButtonConstants';\n\nimport './Button.css';\n\nconst propTypes = {\n  kind: PropTypes.oneOf([\n    BUTTON_DANGER__KIND,\n    BUTTON_DEFAULT__KIND,\n    BUTTON_PRIMARY__KIND,\n    BUTTON_SUCCESS__KIND,\n    BUTTON_WARNING__KIND\n  ]),\n  loading: PropTypes.bool\n};\nconst defaultProps = {\n  kind: BUTTON_DEFAULT__KIND\n};\n\nconst BUTTON__CLASS_NAMES = 'button';\nconst BUTTON__LOADING__CLASS_NAMES = 'button--loading';\nconst BUTTON_CONTAINER__CLASS_NAMES = 'button-container';\nconst BUTTON_LOADINGINDICATOR__CLASS_NAMES = 'button-loadingindicator';\nconst BUTTON_LABEL__CLASS_NAMES = 'button-label';\n\n/**\n * The button component.\n */\nexport const Button = ({ className, kind, loading, ...props }) => {\n  let buttonClassNames = classNames(BUTTON__CLASS_NAMES, className);\n  if (loading) {\n    buttonClassNames = classNames(buttonClassNames, BUTTON__LOADING__CLASS_NAMES);\n  } else {\n    const kindClassNames = getKindClassNames(kind);\n    buttonClassNames = classNames(buttonClassNames, kindClassNames);\n  }\n\n  return (\n    <button className={buttonClassNames} {...props} disabled={loading}>\n      <Spacing right={M} left={M}>\n        <div className={BUTTON_CONTAINER__CLASS_NAMES}>\n          <Loading className={BUTTON_LOADINGINDICATOR__CLASS_NAMES} />\n          <Text className={BUTTON_LABEL__CLASS_NAMES} weight={SEMI_BOLD}>\n            {props.children}\n          </Text>\n        </div>\n      </Spacing>\n    </button>\n  );\n};\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nconst BUTTON_DEFAULT_KIND__CLASS_NAMES = 'button--default';\nconst BUTTON_PRIMARY_KIND__CLASS_NAMES = 'button--primary';\nconst BUTTON_SUCCESS_KIND__CLASS_NAMES = 'button--success';\nconst BUTTON_WARNING_KIND__CLASS_NAMES = 'button--warning';\nconst BUTTON_DANGER_KIND__CLASS_NAMES = 'button--danger';\n\n/**\n * Computes the name of the kind class from the given kind.\n * @param kind The kind of the button\n * @returns The class names for the given kind\n */\nconst getKindClassNames = kind => {\n  let kindClassNames;\n  switch (kind) {\n    case BUTTON_DEFAULT__KIND:\n      kindClassNames = BUTTON_DEFAULT_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_PRIMARY__KIND:\n      kindClassNames = BUTTON_PRIMARY_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_SUCCESS__KIND:\n      kindClassNames = BUTTON_SUCCESS_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_WARNING__KIND:\n      kindClassNames = BUTTON_WARNING_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_DANGER__KIND:\n      kindClassNames = BUTTON_DANGER_KIND__CLASS_NAMES;\n      break;\n    default:\n      kindClassNames = BUTTON_DEFAULT_KIND__CLASS_NAMES;\n      break;\n  }\n  return kindClassNames;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/Button.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n  try {\n    return obj.then;\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nfunction tryCallOne(fn, a) {\n  try {\n    return fn(a);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\nfunction tryCallTwo(fn, a, b) {\n  try {\n    fn(a, b);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n  if (typeof this !== 'object') {\n    throw new TypeError('Promises must be constructed via new');\n  }\n  if (typeof fn !== 'function') {\n    throw new TypeError('Promise constructor\\'s argument is not a function');\n  }\n  this._75 = 0;\n  this._83 = 0;\n  this._18 = null;\n  this._38 = null;\n  if (fn === noop) return;\n  doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  if (this.constructor !== Promise) {\n    return safeThen(this, onFulfilled, onRejected);\n  }\n  var res = new Promise(noop);\n  handle(this, new Handler(onFulfilled, onRejected, res));\n  return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n  return new self.constructor(function (resolve, reject) {\n    var res = new Promise(noop);\n    res.then(resolve, reject);\n    handle(self, new Handler(onFulfilled, onRejected, res));\n  });\n}\nfunction handle(self, deferred) {\n  while (self._83 === 3) {\n    self = self._18;\n  }\n  if (Promise._47) {\n    Promise._47(self);\n  }\n  if (self._83 === 0) {\n    if (self._75 === 0) {\n      self._75 = 1;\n      self._38 = deferred;\n      return;\n    }\n    if (self._75 === 1) {\n      self._75 = 2;\n      self._38 = [self._38, deferred];\n      return;\n    }\n    self._38.push(deferred);\n    return;\n  }\n  handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n  asap(function() {\n    var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      if (self._83 === 1) {\n        resolve(deferred.promise, self._18);\n      } else {\n        reject(deferred.promise, self._18);\n      }\n      return;\n    }\n    var ret = tryCallOne(cb, self._18);\n    if (ret === IS_ERROR) {\n      reject(deferred.promise, LAST_ERROR);\n    } else {\n      resolve(deferred.promise, ret);\n    }\n  });\n}\nfunction resolve(self, newValue) {\n  // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n  if (newValue === self) {\n    return reject(\n      self,\n      new TypeError('A promise cannot be resolved with itself.')\n    );\n  }\n  if (\n    newValue &&\n    (typeof newValue === 'object' || typeof newValue === 'function')\n  ) {\n    var then = getThen(newValue);\n    if (then === IS_ERROR) {\n      return reject(self, LAST_ERROR);\n    }\n    if (\n      then === self.then &&\n      newValue instanceof Promise\n    ) {\n      self._83 = 3;\n      self._18 = newValue;\n      finale(self);\n      return;\n    } else if (typeof then === 'function') {\n      doResolve(then.bind(newValue), self);\n      return;\n    }\n  }\n  self._83 = 1;\n  self._18 = newValue;\n  finale(self);\n}\n\nfunction reject(self, newValue) {\n  self._83 = 2;\n  self._18 = newValue;\n  if (Promise._71) {\n    Promise._71(self, newValue);\n  }\n  finale(self);\n}\nfunction finale(self) {\n  if (self._75 === 1) {\n    handle(self, self._38);\n    self._38 = null;\n  }\n  if (self._75 === 2) {\n    for (var i = 0; i < self._38.length; i++) {\n      handle(self, self._38[i]);\n    }\n    self._38 = null;\n  }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n  var done = false;\n  var res = tryCallTwo(fn, function (value) {\n    if (done) return;\n    done = true;\n    resolve(promise, value);\n  }, function (reason) {\n    if (done) return;\n    done = true;\n    reject(promise, reason);\n  });\n  if (!done && res === IS_ERROR) {\n    done = true;\n    reject(promise, LAST_ERROR);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/core.js\n// module id = 30\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyObject.js\n// module id = 31\n// module chunks = 0","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/resolve-pathname/index.js\n// module id = 32\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/value-equal/index.js\n// module id = 33\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/DOMUtils.js\n// module id = 34\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware <a>.\n */\n\nvar Link = function (_React$Component) {\n  _inherits(Link, _React$Component);\n\n  function Link() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Link);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n      if (_this.props.onClick) _this.props.onClick(event);\n\n      if (!event.defaultPrevented && // onClick prevented default\n      event.button === 0 && // ignore right clicks\n      !_this.props.target && // let browser handle \"target=_blank\" etc.\n      !isModifiedEvent(event) // ignore clicks with modifier keys\n      ) {\n          event.preventDefault();\n\n          var history = _this.context.router.history;\n          var _this$props = _this.props,\n              replace = _this$props.replace,\n              to = _this$props.to;\n\n\n          if (replace) {\n            history.replace(to);\n          } else {\n            history.push(to);\n          }\n        }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Link.prototype.render = function render() {\n    var _props = this.props,\n        replace = _props.replace,\n        to = _props.to,\n        innerRef = _props.innerRef,\n        props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars\n\n    invariant(this.context.router, 'You should not use <Link> outside a <Router>');\n\n    var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);\n\n    return React.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n  };\n\n  return Link;\n}(React.Component);\n\nLink.propTypes = {\n  onClick: PropTypes.func,\n  target: PropTypes.string,\n  replace: PropTypes.bool,\n  to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n  innerRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n};\nLink.defaultProps = {\n  replace: false\n};\nLink.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      push: PropTypes.func.isRequired,\n      replace: PropTypes.func.isRequired,\n      createHref: PropTypes.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\nexport default Link;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Link.js\n// module id = 35\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Route from 'react-router/es/Route';\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Route.js\n// module id = 36\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport matchPath from './matchPath';\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n  return React.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n  _inherits(Route, _React$Component);\n\n  function Route() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Route);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props, _this.context.router)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Route.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        route: {\n          location: this.props.location || this.context.router.route.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Route.prototype.computeMatch = function computeMatch(_ref, router) {\n    var computedMatch = _ref.computedMatch,\n        location = _ref.location,\n        path = _ref.path,\n        strict = _ref.strict,\n        exact = _ref.exact,\n        sensitive = _ref.sensitive;\n\n    if (computedMatch) return computedMatch; // <Switch> already computed the match for us\n\n    invariant(router, 'You should not use <Route> or withRouter() outside a <Router>');\n\n    var route = router.route;\n\n    var pathname = (location || route.location).pathname;\n\n    return path ? matchPath(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }) : route.match;\n  };\n\n  Route.prototype.componentWillMount = function componentWillMount() {\n    warning(!(this.props.component && this.props.render), 'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored');\n\n    warning(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored');\n\n    warning(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored');\n  };\n\n  Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n    warning(!(nextProps.location && !this.props.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    warning(!(!nextProps.location && this.props.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n    this.setState({\n      match: this.computeMatch(nextProps, nextContext.router)\n    });\n  };\n\n  Route.prototype.render = function render() {\n    var match = this.state.match;\n    var _props = this.props,\n        children = _props.children,\n        component = _props.component,\n        render = _props.render;\n    var _context$router = this.context.router,\n        history = _context$router.history,\n        route = _context$router.route,\n        staticContext = _context$router.staticContext;\n\n    var location = this.props.location || route.location;\n    var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n    return component ? // component prop gets first priority, only called if there's a match\n    match ? React.createElement(component, props) : null : render ? // render prop is next, only called if there's a match\n    match ? render(props) : null : children ? // children come last, always called\n    typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? React.Children.only(children) : null : null;\n  };\n\n  return Route;\n}(React.Component);\n\nRoute.propTypes = {\n  computedMatch: PropTypes.object, // private, from <Switch>\n  path: PropTypes.string,\n  exact: PropTypes.bool,\n  strict: PropTypes.bool,\n  sensitive: PropTypes.bool,\n  component: PropTypes.func,\n  render: PropTypes.func,\n  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n  location: PropTypes.object\n};\nRoute.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.object.isRequired,\n    route: PropTypes.object.isRequired,\n    staticContext: PropTypes.object\n  })\n};\nRoute.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Route.js\n// module id = 37\n// module chunks = 0","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/DOMUtils.js\n// module id = 38\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const DASHBOARD_LOADED__STATE = 'DASHBOARD_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_DASHBOARD__ACTION = 'HANDLE_FETCHED_DASHBOARD__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_DASHBOARD__ACTION: [DASHBOARD_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  DASHBOARD_LOADED__STATE: {},\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const NO_PROJECTS_LOADED__STATE = 'NO_PROJECTS_LOADED__STATE';\nexport const PROJECTS_LOADED__STATE = 'PROJECTS_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_PROJECTS__ACTION = 'HANDLE_FETCHED_PROJECTS__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_PROJECTS__ACTION: [NO_PROJECTS_LOADED__STATE, PROJECTS_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  NO_PROJECTS_LOADED__STATE: {},\n  PROJECTS_LOADED__STATE: {},\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const BUTTON_DEFAULT__KIND = 'default';\nexport const BUTTON_PRIMARY__KIND = 'primary';\nexport const BUTTON_SUCCESS__KIND = 'success';\nexport const BUTTON_WARNING__KIND = 'warning';\nexport const BUTTON_DANGER__KIND = 'danger';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/ButtonConstants.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\n\nimport './Form.css';\n\nconst FORM__CLASS_NAMES = 'form';\n\n/**\n * The Form component.\n */\nexport const Form = ({ children, className, ...props }) => {\n  const formClassNames = classNames(FORM__CLASS_NAMES, className);\n  return (\n    <form className={formClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        {children}\n      </Spacing>\n    </form>\n  );\n};\n\nconst FIELD__CLASS_NAMES = 'field';\n\n/**\n * The Field component used to contain the label, the description and the widget.\n */\nexport const Field = ({ children, className, ...props }) => {\n  const fieldClassNames = classNames(FIELD__CLASS_NAMES, className);\n  return (\n    <div className={fieldClassNames} {...props}>\n      <Spacing bottom={M}>{children}</Spacing>\n    </div>\n  );\n};\n\nconst LABEL__CLASS_NAMES = 'label body-l';\n\n/**\n * The Label component.\n */\nexport const Label = ({ className, ...props }) => {\n  const labelClassNames = classNames(LABEL__CLASS_NAMES, className);\n  return (\n    <Spacing bottom={S}>\n      <label className={labelClassNames} {...props} />\n    </Spacing>\n  );\n};\n\nconst DESCRIPTION__CLASS_NAMES = 'description caption-m';\n\n/**\n * The Description of the widget.\n */\nexport const Description = ({ className, ...props }) => {\n  const descriptionClassNames = classNames(DESCRIPTION__CLASS_NAMES, className);\n  return (\n    <Spacing bottom={S}>\n      <p className={descriptionClassNames} {...props} />\n    </Spacing>\n  );\n};\n\nconst TEXTFIELD__CLASS_NAMES = 'textfield';\n\n/**\n * The Text widget.\n */\nexport const TextField = ({ className, ...props }) => {\n  const textClassNames = classNames(TEXTFIELD__CLASS_NAMES, className);\n  return <input className={textClassNames} type=\"text\" {...props} />;\n};\n\nconst ACTION_GROUP__CLASS_NAMES = 'actiongroup';\n\n/**\n * The group of actions of the form, for example, the submit button.\n */\nexport const ActionGroup = ({ children, className, ...props }) => {\n  const actionGroupClassNames = classNames(ACTION_GROUP__CLASS_NAMES, className);\n  return (\n    <div className={actionGroupClassNames} {...props}>\n      <Spacing top={M}>{children}</Spacing>\n    </div>\n  );\n};\n\nconst ERROR_GROUP__CLASS_NAMES = 'errorgroup';\n\n/**\n * The group of errors of the form.\n */\nexport const ErrorGroup = ({ children, className, ...props }) => {\n  const errorGroupClassNames = classNames(ERROR_GROUP__CLASS_NAMES, className);\n  return (\n    <div className={errorGroupClassNames} {...props}>\n      <Spacing top={S} bottom={S}>\n        {children}\n      </Spacing>\n    </div>\n  );\n};\n\nconst ERROR__CLASS_NAMES = 'error';\n\n/**\n * An error to be displayed in the form.\n */\nexport const Error = ({ children, className, ...props }) => {\n  const errorClassNames = classNames(ERROR__CLASS_NAMES, className);\n  return (\n    <div className={errorClassNames} {...props}>\n      <Spacing top={S}>{children}</Spacing>\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/form/Form.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const PRISTINE__STATE = 'PRISTINE__STATE';\nexport const MODIFIED__STATE = 'MODIFIED__STATE';\nexport const REDIRECT__STATE = 'REDIRECT__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const MODIFY_NAME__ACTION = 'MODIFY_NAME__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\nexport const HANDLE_CREATED_PROJECT__ACTION = 'HANDLE_CREATED_PROJECT__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [PRISTINE__STATE] },\n  PRISTINE__STATE: { MODIFY_NAME__ACTION: [MODIFIED__STATE] },\n  MODIFIED__STATE: {\n    MODIFY_NAME__ACTION: [MODIFIED__STATE],\n    HANDLE_ERROR__ACTION: [MODIFIED__STATE],\n    HANDLE_CREATED_PROJECT__ACTION: [REDIRECT__STATE]\n  },\n  REDIRECT__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const PROJECT_LOADED__STATE = 'PROJECT_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_PROJECT__ACTION = 'HANDLE_FETCHED_PROJECT__ACTION';\nexport const HANDLE_FETCHED_PAGE__ACTION = 'HANDLE_FETCHED_PAGE__ACTION';\nexport const HANDLE_DESCRIPTION_UPDATED__ACTION = 'HANDLE_DESCRIPTION_UPDATED__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_PROJECT__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  PROJECT_LOADED__STATE: {\n    HANDLE_FETCHED_PROJECT__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_FETCHED_PAGE__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_DESCRIPTION_UPDATED__ACTION: [PROJECT_LOADED__STATE]\n  },\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectViewFiniteStateMachine.js","// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n'use strict';\n\nif (typeof Promise === 'undefined') {\n  // Rejection tracking prevents a common issue where React gets into an\n  // inconsistent state due to an error, but it gets swallowed by a Promise,\n  // and the user has no idea what causes React's erratic future behavior.\n  require('promise/lib/rejection-tracking').enable();\n  window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n  require('raf').polyfill(global);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-scripts/config/polyfills.js\n// module id = 46\n// module chunks = 0","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n  ReferenceError,\n  TypeError,\n  RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n  enabled = false;\n  Promise._47 = null;\n  Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n  options = options || {};\n  if (enabled) disable();\n  enabled = true;\n  var id = 0;\n  var displayId = 0;\n  var rejections = {};\n  Promise._47 = function (promise) {\n    if (\n      promise._83 === 2 && // IS REJECTED\n      rejections[promise._56]\n    ) {\n      if (rejections[promise._56].logged) {\n        onHandled(promise._56);\n      } else {\n        clearTimeout(rejections[promise._56].timeout);\n      }\n      delete rejections[promise._56];\n    }\n  };\n  Promise._71 = function (promise, err) {\n    if (promise._75 === 0) { // not yet handled\n      promise._56 = id++;\n      rejections[promise._56] = {\n        displayId: null,\n        error: err,\n        timeout: setTimeout(\n          onUnhandled.bind(null, promise._56),\n          // For reference errors and type errors, this almost always\n          // means the programmer made a mistake, so log them after just\n          // 100ms\n          // otherwise, wait 2 seconds to see if they get handled\n          matchWhitelist(err, DEFAULT_WHITELIST)\n            ? 100\n            : 2000\n        ),\n        logged: false\n      };\n    }\n  };\n  function onUnhandled(id) {\n    if (\n      options.allRejections ||\n      matchWhitelist(\n        rejections[id].error,\n        options.whitelist || DEFAULT_WHITELIST\n      )\n    ) {\n      rejections[id].displayId = displayId++;\n      if (options.onUnhandled) {\n        rejections[id].logged = true;\n        options.onUnhandled(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      } else {\n        rejections[id].logged = true;\n        logError(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      }\n    }\n  }\n  function onHandled(id) {\n    if (rejections[id].logged) {\n      if (options.onHandled) {\n        options.onHandled(rejections[id].displayId, rejections[id].error);\n      } else if (!rejections[id].onUnhandled) {\n        console.warn(\n          'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n        );\n        console.warn(\n          '  This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n          rejections[id].displayId + '.'\n        );\n      }\n    }\n  }\n}\n\nfunction logError(id, error) {\n  console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n  var errStr = (error && (error.stack || error)) + '';\n  errStr.split('\\n').forEach(function (line) {\n    console.warn('  ' + line);\n  });\n}\n\nfunction matchWhitelist(error, list) {\n  return list.some(function (cls) {\n    return error instanceof cls;\n  });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/rejection-tracking.js\n// module id = 47\n// module chunks = 0","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n    if (!queue.length) {\n        requestFlush();\n        flushing = true;\n    }\n    // Equivalent to push, but avoids a function call.\n    queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n    while (index < queue.length) {\n        var currentIndex = index;\n        // Advance the index before calling the task. This ensures that we will\n        // begin flushing on the next task the task throws an error.\n        index = index + 1;\n        queue[currentIndex].call();\n        // Prevent leaking memory for long chains of recursive calls to `asap`.\n        // If we call `asap` within tasks scheduled by `asap`, the queue will\n        // grow, but to avoid an O(n) walk for every task we execute, we don't\n        // shift tasks off the queue after they have been executed.\n        // Instead, we periodically shift 1024 tasks off the queue.\n        if (index > capacity) {\n            // Manually shift all values starting at the index back to the\n            // beginning of the queue.\n            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n                queue[scan] = queue[scan + index];\n            }\n            queue.length -= index;\n            index = 0;\n        }\n    }\n    queue.length = 0;\n    index = 0;\n    flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n    requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n    requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n    var toggle = 1;\n    var observer = new BrowserMutationObserver(callback);\n    var node = document.createTextNode(\"\");\n    observer.observe(node, {characterData: true});\n    return function requestCall() {\n        toggle = -toggle;\n        node.data = toggle;\n    };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n    return function requestCall() {\n        // We dispatch a timeout with a specified delay of 0 for engines that\n        // can reliably accommodate that request. This will usually be snapped\n        // to a 4 milisecond delay, but once we're flushing, there's no delay\n        // between events.\n        var timeoutHandle = setTimeout(handleTimer, 0);\n        // However, since this timer gets frequently dropped in Firefox\n        // workers, we enlist an interval handle that will try to fire\n        // an event 20 times per second until it succeeds.\n        var intervalHandle = setInterval(handleTimer, 50);\n\n        function handleTimer() {\n            // Whichever timer succeeds will cancel both timers and\n            // execute the callback.\n            clearTimeout(timeoutHandle);\n            clearInterval(intervalHandle);\n            callback();\n        }\n    };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/asap/browser-raw.js\n// module id = 48\n// module chunks = 0","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 49\n// module chunks = 0","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n  var p = new Promise(Promise._44);\n  p._83 = 1;\n  p._18 = value;\n  return p;\n}\nPromise.resolve = function (value) {\n  if (value instanceof Promise) return value;\n\n  if (value === null) return NULL;\n  if (value === undefined) return UNDEFINED;\n  if (value === true) return TRUE;\n  if (value === false) return FALSE;\n  if (value === 0) return ZERO;\n  if (value === '') return EMPTYSTRING;\n\n  if (typeof value === 'object' || typeof value === 'function') {\n    try {\n      var then = value.then;\n      if (typeof then === 'function') {\n        return new Promise(then.bind(value));\n      }\n    } catch (ex) {\n      return new Promise(function (resolve, reject) {\n        reject(ex);\n      });\n    }\n  }\n  return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n    function res(i, val) {\n      if (val && (typeof val === 'object' || typeof val === 'function')) {\n        if (val instanceof Promise && val.then === Promise.prototype.then) {\n          while (val._83 === 3) {\n            val = val._18;\n          }\n          if (val._83 === 1) return res(i, val._18);\n          if (val._83 === 2) reject(val._18);\n          val.then(function (val) {\n            res(i, val);\n          }, reject);\n          return;\n        } else {\n          var then = val.then;\n          if (typeof then === 'function') {\n            var p = new Promise(then.bind(val));\n            p.then(function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n      }\n      args[i] = val;\n      if (--remaining === 0) {\n        resolve(args);\n      }\n    }\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    values.forEach(function(value){\n      Promise.resolve(value).then(resolve, reject);\n    });\n  });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/es6-extensions.js\n// module id = 50\n// module chunks = 0","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = 'status' in options ? options.status : 200\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 51\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { BrowserRouter } from 'react-router-dom';\n\nimport { App } from './components/app/App';\n\nimport './reset.css';\nimport './app.css';\n\n/**\n * The entry point of the application.\n */\nReactDOM.render(\n  <BrowserRouter basename={process.env.PUBLIC_URL || ''}>\n    <App />\n  </BrowserRouter>,\n  document.getElementById('root')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var m=require(\"object-assign\"),n=require(\"fbjs/lib/emptyObject\"),p=require(\"fbjs/lib/emptyFunction\"),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;c<b;c++)e+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[c+1]);b=Error(e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}\nvar z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};function A(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}A.prototype.isReactComponent={};A.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?y(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};A.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction B(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}function C(){}C.prototype=A.prototype;var D=B.prototype=new C;D.constructor=B;m(D,A.prototype);D.isPureReactComponent=!0;function E(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}var F=E.prototype=new C;F.constructor=E;m(F,A.prototype);F.unstable_isAsyncReactComponent=!0;F.render=function(){return this.props.children};var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,e){var c,d={},g=null,k=null;if(null!=b)for(c in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)H.call(b,c)&&!I.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var h=Array(f),l=0;l<f;l++)h[l]=arguments[l+2];d.children=h}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:k,props:d,_owner:G.current}}function K(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===r}\nfunction escape(a){var b={\"\\x3d\":\"\\x3d0\",\":\":\"\\x3d2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var L=/\\/+/g,M=[];function N(a,b,e,c){if(M.length){var d=M.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function O(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>M.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+Q(d,k);g+=P(d,f,e,c)}else if(null===a||\"undefined\"===typeof a?f=null:(f=x&&a[x]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=\nf.call(a),k=0;!(d=a.next()).done;)d=d.value,f=b+Q(d,k++),g+=P(d,f,e,c);else\"object\"===d&&(e=\"\"+a,y(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function R(a,b){a.func.call(a.context,b,a.count++)}\nfunction S(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?T(a,c,e,p.thatReturnsArgument):null!=a&&(K(a)&&(b=d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(L,\"$\\x26/\")+\"/\")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function T(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(L,\"$\\x26/\")+\"/\");b=N(b,g,c,d);null==a||P(a,\"\",S,b);O(b)}\nvar U={Children:{map:function(a,b,e){if(null==a)return a;var c=[];T(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=N(null,null,b,e);null==a||P(a,\"\",R,b);O(b)},count:function(a){return null==a?0:P(a,\"\",p.thatReturnsNull,null)},toArray:function(a){var b=[];T(a,b,null,p.thatReturnsArgument);return b},only:function(a){K(a)?void 0:y(\"143\");return a}},Component:A,PureComponent:B,unstable_AsyncComponent:E,Fragment:w,createElement:J,cloneElement:function(a,b,e){var c=m({},a.props),\nd=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)H.call(b,h)&&!I.hasOwnProperty(h)&&(c[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)c.children=e;else if(1<h){f=Array(h);for(var l=0;l<h;l++)f[l]=arguments[l+2];c.children=f}return{$$typeof:r,type:a.type,key:d,ref:g,props:c,_owner:k}},createFactory:function(a){var b=J.bind(null,a);b.type=a;return b},\nisValidElement:K,version:\"16.2.0\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:G,assign:m}},V=Object.freeze({default:U}),W=V&&U||V;module.exports=W[\"default\"]?W[\"default\"]:W;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/cjs/react.production.min.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-dom/index.js\n// module id = 54\n// module chunks = 0","/** @license React v16.2.0\n * react-dom.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),l=require(\"fbjs/lib/ExecutionEnvironment\"),B=require(\"object-assign\"),C=require(\"fbjs/lib/emptyFunction\"),ba=require(\"fbjs/lib/EventListener\"),da=require(\"fbjs/lib/getActiveElement\"),ea=require(\"fbjs/lib/shallowEqual\"),fa=require(\"fbjs/lib/containsNode\"),ia=require(\"fbjs/lib/focusNode\"),D=require(\"fbjs/lib/emptyObject\");\nfunction E(a){for(var b=arguments.length-1,c=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,d=0;d<b;d++)c+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[d+1]);b=Error(c+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}aa?void 0:E(\"227\");\nvar oa={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0};function pa(a,b){return(a&b)===b}\nvar ta={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=ta,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ua.hasOwnProperty(f)?E(\"48\",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:pa(h,b.MUST_USE_PROPERTY),\nhasBooleanValue:pa(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:pa(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:pa(h,b.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:pa(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:pa(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2<a.length&&(\"o\"===a[0]||\"O\"===a[0])&&(\"n\"===a[1]||\"N\"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case \"boolean\":return oa.hasOwnProperty(a)?a=!0:(b=wa(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a=\"data-\"===a||\"aria-\"===a),a;case \"undefined\":case \"number\":case \"string\":case \"object\":return!0;default:return!1}}function wa(a){return ua.hasOwnProperty(a)?ua[a]:null}\nvar xa=ta,ya=xa.MUST_USE_PROPERTY,K=xa.HAS_BOOLEAN_VALUE,za=xa.HAS_NUMERIC_VALUE,Aa=xa.HAS_POSITIVE_NUMERIC_VALUE,Ba=xa.HAS_OVERLOADED_BOOLEAN_VALUE,Ca=xa.HAS_STRING_BOOLEAN_VALUE,Da={Properties:{allowFullScreen:K,async:K,autoFocus:K,autoPlay:K,capture:Ba,checked:ya|K,cols:Aa,contentEditable:Ca,controls:K,\"default\":K,defer:K,disabled:K,download:Ba,draggable:Ca,formNoValidate:K,hidden:K,loop:K,multiple:ya|K,muted:ya|K,noValidate:K,open:K,playsInline:K,readOnly:K,required:K,reversed:K,rows:Aa,rowSpan:za,\nscoped:K,seamless:K,selected:ya|K,size:Aa,start:za,span:Aa,spellCheck:Ca,style:0,tabIndex:0,itemScope:K,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ca},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute(\"value\");\"number\"!==a.type||!1===a.hasAttribute(\"value\")?a.setAttribute(\"value\",\"\"+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&\na.setAttribute(\"value\",\"\"+b)}}},Ea=xa.HAS_STRING_BOOLEAN_VALUE,M={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},Ga={Properties:{autoReverse:Ea,externalResourcesRequired:Ea,preserveAlpha:Ea},DOMAttributeNames:{autoReverse:\"autoReverse\",externalResourcesRequired:\"externalResourcesRequired\",preserveAlpha:\"preserveAlpha\"},DOMAttributeNamespaces:{xlinkActuate:M.xlink,xlinkArcrole:M.xlink,xlinkHref:M.xlink,xlinkRole:M.xlink,xlinkShow:M.xlink,xlinkTitle:M.xlink,xlinkType:M.xlink,\nxmlBase:M.xml,xmlLang:M.xml,xmlSpace:M.xml}},Ha=/[\\-\\:]([a-z])/g;function Ia(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space\".split(\" \").forEach(function(a){var b=a.replace(Ha,\nIa);Ga.Properties[b]=0;Ga.DOMAttributeNames[b]=a});xa.injectDOMPropertyConfig(Da);xa.injectDOMPropertyConfig(Ga);\nvar P={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){\"function\"!==typeof a.invokeGuardedCallback?E(\"197\"):void 0;Ja=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Ja.apply(P,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){P.invokeGuardedCallback.apply(this,arguments);if(P.hasCaughtError()){var q=P.clearCaughtError();P._hasRethrowError||(P._hasRethrowError=!0,P._rethrowError=\nq)}},rethrowCaughtError:function(){return Ka.apply(P,arguments)},hasCaughtError:function(){return P._hasCaughtError},clearCaughtError:function(){if(P._hasCaughtError){var a=P._caughtError;P._caughtError=null;P._hasCaughtError=!1;return a}E(\"198\")}};function Ja(a,b,c,d,e,f,g,h,k){P._hasCaughtError=!1;P._caughtError=null;var q=Array.prototype.slice.call(arguments,3);try{b.apply(c,q)}catch(v){P._caughtError=v,P._hasCaughtError=!0}}\nfunction Ka(){if(P._hasRethrowError){var a=P._rethrowError;P._rethrowError=null;P._hasRethrowError=!1;throw a;}}var La=null,Ma={};\nfunction Na(){if(La)for(var a in Ma){var b=Ma[a],c=La.indexOf(a);-1<c?void 0:E(\"96\",a);if(!Oa[c]){b.extractEvents?void 0:E(\"97\",a);Oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Pa.hasOwnProperty(h)?E(\"99\",h):void 0;Pa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&Qa(k[e],g,h);e=!0}else f.registrationName?(Qa(f.registrationName,g,h),e=!0):e=!1;e?void 0:E(\"98\",d,a)}}}}\nfunction Qa(a,b,c){Ra[a]?E(\"100\",a):void 0;Ra[a]=b;Sa[a]=b.eventTypes[c].dependencies}var Oa=[],Pa={},Ra={},Sa={};function Ta(a){La?E(\"101\"):void 0;La=Array.prototype.slice.call(a);Na()}function Ua(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];Ma.hasOwnProperty(c)&&Ma[c]===d||(Ma[c]?E(\"102\",c):void 0,Ma[c]=d,b=!0)}b&&Na()}\nvar Va=Object.freeze({plugins:Oa,eventNameDispatchConfigs:Pa,registrationNameModules:Ra,registrationNameDependencies:Sa,possibleRegistrationNames:null,injectEventPluginOrder:Ta,injectEventPluginsByName:Ua}),Wa=null,Xa=null,Ya=null;function Za(a,b,c,d){b=a.type||\"unknown-event\";a.currentTarget=Ya(d);P.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}\nfunction $a(a,b){null==b?E(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function ab(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var bb=null;\nfunction cb(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Za(a,b,c[e],d[e]);else c&&Za(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function db(a){return cb(a,!0)}function gb(a){return cb(a,!1)}var hb={injectEventPluginOrder:Ta,injectEventPluginsByName:Ua};\nfunction ib(a,b){var c=a.stateNode;if(!c)return null;var d=Wa(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?E(\"231\",b,typeof c):void 0;\nreturn c}function jb(a,b,c,d){for(var e,f=0;f<Oa.length;f++){var g=Oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=$a(e,g))}return e}function kb(a){a&&(bb=$a(bb,a))}function lb(a){var b=bb;bb=null;b&&(a?ab(b,db):ab(b,gb),bb?E(\"95\"):void 0,P.rethrowCaughtError())}var mb=Object.freeze({injection:hb,getListener:ib,extractEvents:jb,enqueueEvents:kb,processEventQueue:lb}),nb=Math.random().toString(36).slice(2),Q=\"__reactInternalInstance$\"+nb,ob=\"__reactEventHandlers$\"+nb;\nfunction pb(a){if(a[Q])return a[Q];for(var b=[];!a[Q];)if(b.push(a),a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[Q];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[Q]);a=b.pop())c=d;return c}function qb(a){if(5===a.tag||6===a.tag)return a.stateNode;E(\"33\")}function rb(a){return a[ob]||null}\nvar sb=Object.freeze({precacheFiberNode:function(a,b){b[Q]=a},getClosestInstanceFromNode:pb,getInstanceFromNode:function(a){a=a[Q];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:qb,getFiberCurrentPropsFromNode:rb,updateFiberProps:function(a,b){a[ob]=b}});function tb(a){do a=a[\"return\"];while(a&&5!==a.tag);return a?a:null}function ub(a,b,c){for(var d=[];a;)d.push(a),a=tb(a);for(a=d.length;0<a--;)b(d[a],\"captured\",c);for(a=0;a<d.length;a++)b(d[a],\"bubbled\",c)}\nfunction vb(a,b,c){if(b=ib(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a)}function wb(a){a&&a.dispatchConfig.phasedRegistrationNames&&ub(a._targetInst,vb,a)}function xb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?tb(b):null;ub(b,vb,a)}}\nfunction yb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=ib(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a))}function zb(a){a&&a.dispatchConfig.registrationName&&yb(a._targetInst,null,a)}function Ab(a){ab(a,wb)}\nfunction Bb(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=tb(h))g++;h=0;for(var k=f;k;k=tb(k))h++;for(;0<g-h;)e=tb(e),g--;for(;0<h-g;)f=tb(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=tb(e);f=tb(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=tb(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=tb(d)}for(d=0;d<e.length;d++)yb(e[d],\"bubbled\",a);for(a=c.length;0<a--;)yb(c[a],\"captured\",b)}\nvar Cb=Object.freeze({accumulateTwoPhaseDispatches:Ab,accumulateTwoPhaseDispatchesSkipTarget:function(a){ab(a,xb)},accumulateEnterLeaveDispatches:Bb,accumulateDirectDispatches:function(a){ab(a,zb)}}),Db=null;function Eb(){!Db&&l.canUseDOM&&(Db=\"textContent\"in document.documentElement?\"textContent\":\"innerText\");return Db}var S={_root:null,_startText:null,_fallbackText:null};\nfunction Fb(){if(S._fallbackText)return S._fallbackText;var a,b=S._startText,c=b.length,d,e=Gb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);S._fallbackText=e.slice(a,1<d?1-d:void 0);return S._fallbackText}function Gb(){return\"value\"in S._root?S._root.value:S._root[Eb()]}\nvar Hb=\"dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances\".split(\" \"),Ib={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nfunction T(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?C.thatReturnsTrue:C.thatReturnsFalse;this.isPropagationStopped=C.thatReturnsFalse;return this}\nB(T.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,\ndestructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Hb.length;a++)this[Hb[a]]=null}});T.Interface=Ib;T.augmentClass=function(a,b){function c(){}c.prototype=this.prototype;var d=new c;B(d,a.prototype);a.prototype=d;a.prototype.constructor=a;a.Interface=B({},this.Interface,b);a.augmentClass=this.augmentClass;Jb(a)};Jb(T);function Kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction Lb(a){a instanceof this?void 0:E(\"223\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8<Wb&&11>=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"topCompositionEnd\":return $b?null:b.data;default:return null}}\nvar ic={eventTypes:bc,extractEvents:function(a,b,c,d){var e;if(Vb)b:{switch(a){case \"topCompositionStart\":var f=bc.compositionStart;break b;case \"topCompositionEnd\":f=bc.compositionEnd;break b;case \"topCompositionUpdate\":f=bc.compositionUpdate;break b}f=void 0}else fc?dc(a,c)&&(f=bc.compositionEnd):\"topKeyDown\"===a&&229===c.keyCode&&(f=bc.compositionStart);f?($b&&(fc||f!==bc.compositionStart?f===bc.compositionEnd&&fc&&(e=Fb()):(S._root=d,S._startText=Gb(),fc=!0)),f=Mb.getPooled(f,b,c,d),e?f.data=\ne:(e=ec(c),null!==e&&(f.data=e)),Ab(f),e=f):e=null;(a=Zb?gc(a,c):hc(a,c))?(b=Nb.getPooled(bc.beforeInput,b,c,d),b.data=a,Ab(b)):b=null;return[e,b]}},jc=null,kc=null,lc=null;function mc(a){if(a=Xa(a)){jc&&\"function\"===typeof jc.restoreControlledState?void 0:E(\"194\");var b=Wa(a.stateNode);jc.restoreControlledState(a.stateNode,a.type,b)}}var nc={injectFiberControlledHostComponent:function(a){jc=a}};function oc(a){kc?lc?lc.push(a):lc=[a]:kc=a}\nfunction pc(){if(kc){var a=kc,b=lc;lc=kc=null;mc(a);if(b)for(a=0;a<b.length;a++)mc(b[a])}}var qc=Object.freeze({injection:nc,enqueueStateRestore:oc,restoreStateIfNeeded:pc});function rc(a,b){return a(b)}var sc=!1;function tc(a,b){if(sc)return rc(a,b);sc=!0;try{return rc(a,b)}finally{sc=!1,pc()}}var uc={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};\nfunction vc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!uc[a.type]:\"textarea\"===b?!0:!1}function wc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xc;l.canUseDOM&&(xc=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\"));\nfunction yc(a,b){if(!l.canUseDOM||b&&!(\"addEventListener\"in document))return!1;b=\"on\"+a;var c=b in document;c||(c=document.createElement(\"div\"),c.setAttribute(b,\"return;\"),c=\"function\"===typeof c[b]);!c&&xc&&\"wheel\"===a&&(c=document.implementation.hasFeature(\"Events.wheel\",\"3.0\"));return c}function zc(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ac(a){var b=zc(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"function\"===typeof c.get&&\"function\"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=\"\"+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}\nfunction Bc(a){a._valueTracker||(a._valueTracker=Ac(a))}function Cc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=zc(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}var Dc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange\".split(\" \")}};\nfunction Ec(a,b,c){a=T.getPooled(Dc.change,a,b,c);a.type=\"change\";oc(c);Ab(a);return a}var Fc=null,Gc=null;function Hc(a){kb(a);lb(!1)}function Ic(a){var b=qb(a);if(Cc(b))return a}function Jc(a,b){if(\"topChange\"===a)return b}var Kc=!1;l.canUseDOM&&(Kc=yc(\"input\")&&(!document.documentMode||9<document.documentMode));function Lc(){Fc&&(Fc.detachEvent(\"onpropertychange\",Mc),Gc=Fc=null)}function Mc(a){\"value\"===a.propertyName&&Ic(Gc)&&(a=Ec(Gc,a,wc(a)),tc(Hc,a))}\nfunction Nc(a,b,c){\"topFocus\"===a?(Lc(),Fc=b,Gc=c,Fc.attachEvent(\"onpropertychange\",Mc)):\"topBlur\"===a&&Lc()}function Oc(a){if(\"topSelectionChange\"===a||\"topKeyUp\"===a||\"topKeyDown\"===a)return Ic(Gc)}function Pc(a,b){if(\"topClick\"===a)return Ic(b)}function $c(a,b){if(\"topInput\"===a||\"topChange\"===a)return Ic(b)}\nvar ad={eventTypes:Dc,_isInputEventSupported:Kc,extractEvents:function(a,b,c,d){var e=b?qb(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Jc;else if(vc(e))if(Kc)g=$c;else{g=Oc;var h=Nc}else f=e.nodeName,!f||\"input\"!==f.toLowerCase()||\"checkbox\"!==e.type&&\"radio\"!==e.type||(g=Pc);if(g&&(g=g(a,b)))return Ec(g,c,d);h&&h(a,e,b);\"topBlur\"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&\"number\"===e.type&&(a=\"\"+e.value,e.getAttribute(\"value\")!==\na&&e.setAttribute(\"value\",a))}};function bd(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(bd,{view:null,detail:null});var cd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}function fd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(fd,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});\nvar gd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},hd={eventTypes:gd,extractEvents:function(a,b,c,d){if(\"topMouseOver\"===a&&(c.relatedTarget||c.fromElement)||\"topMouseOut\"!==a&&\"topMouseOver\"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;\"topMouseOut\"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?pb(b):null):a=null;if(a===\nb)return null;var f=null==a?e:qb(a);e=null==b?e:qb(b);var g=fd.getPooled(gd.mouseLeave,a,c,d);g.type=\"mouseleave\";g.target=f;g.relatedTarget=e;c=fd.getPooled(gd.mouseEnter,b,c,d);c.type=\"mouseenter\";c.target=e;c.relatedTarget=f;Bb(g,c,a,b);return[g,c]}},id=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;function jd(a){a=a.type;return\"string\"===typeof a?a:\"function\"===typeof a?a.displayName||a.name:null}\nfunction kd(a){var b=a;if(a.alternate)for(;b[\"return\"];)b=b[\"return\"];else{if(0!==(b.effectTag&2))return 1;for(;b[\"return\"];)if(b=b[\"return\"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){return(a=a._reactInternalFiber)?2===kd(a):!1}function md(a){2!==kd(a)?E(\"188\"):void 0}\nfunction nd(a){var b=a.alternate;if(!b)return b=kd(a),3===b?E(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c[\"return\"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return md(e),a;if(g===d)return md(e),b;g=g.sibling}E(\"188\")}if(c[\"return\"]!==d[\"return\"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:E(\"189\")}}c.alternate!==d?E(\"190\"):void 0}3!==c.tag?E(\"188\"):void 0;return c.stateNode.current===c?a:b}function od(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}\nfunction pd(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}var qd=[];\nfunction rd(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c[\"return\"];)c=c[\"return\"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);b=pb(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],sd(a.topLevelType,b,a.nativeEvent,wc(a.nativeEvent))}var td=!0,sd=void 0;function ud(a){td=!!a}function U(a,b,c){return c?ba.listen(c,b,vd.bind(null,a)):null}function wd(a,b,c){return c?ba.capture(c,b,vd.bind(null,a)):null}\nfunction vd(a,b){if(td){var c=wc(b);c=pb(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(qd.length){var d=qd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{tc(rd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?qb(b):window;switch(a){case \"topFocus\":if(vc(e)||\"true\"===e.contentEditable)Nd=e,Od=b,Pd=null;break;case \"topBlur\":Pd=Od=Nd=null;break;case \"topMouseDown\":Qd=!0;break;case \"topContextMenu\":case \"topMouseUp\":return Qd=!1,Rd(c,d);case \"topSelectionChange\":if(Ld)break;\ncase \"topKeyDown\":case \"topKeyUp\":return Rd(c,d)}return null}};function Td(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});function Ud(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Ud,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}});function Vd(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(Vd,{relatedTarget:null});\nfunction Wd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}\nvar Xd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Yd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};function Zd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(Zd,{key:function(a){if(a.key){var b=Xd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=Wd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Yd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ed,charCode:function(a){return\"keypress\"===a.type?Wd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?Wd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}});function $d(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass($d,{dataTransfer:null});function ae(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(ae,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ed});function be(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(be,{propertyName:null,elapsedTime:null,pseudoElement:null});\nfunction ce(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass(ce,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null});var de={},ee={};\n\"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel\".split(\" \").forEach(function(a){var b=a[0].toUpperCase()+\na.slice(1),c=\"on\"+b;b=\"top\"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+\"Capture\"},dependencies:[b]};de[a]=c;ee[b]=c});\nvar fe={eventTypes:de,extractEvents:function(a,b,c,d){var e=ee[a];if(!e)return null;switch(a){case \"topKeyPress\":if(0===Wd(c))return null;case \"topKeyDown\":case \"topKeyUp\":a=Zd;break;case \"topBlur\":case \"topFocus\":a=Vd;break;case \"topClick\":if(2===c.button)return null;case \"topDoubleClick\":case \"topMouseDown\":case \"topMouseMove\":case \"topMouseUp\":case \"topMouseOut\":case \"topMouseOver\":case \"topContextMenu\":a=fd;break;case \"topDrag\":case \"topDragEnd\":case \"topDragEnter\":case \"topDragExit\":case \"topDragLeave\":case \"topDragOver\":case \"topDragStart\":case \"topDrop\":a=\n$d;break;case \"topTouchCancel\":case \"topTouchEnd\":case \"topTouchMove\":case \"topTouchStart\":a=ae;break;case \"topAnimationEnd\":case \"topAnimationIteration\":case \"topAnimationStart\":a=Td;break;case \"topTransitionEnd\":a=be;break;case \"topScroll\":a=bd;break;case \"topWheel\":a=ce;break;case \"topCopy\":case \"topCut\":case \"topPaste\":a=Ud;break;default:a=T}b=a.getPooled(e,b,c,d);Ab(b);return b}};sd=function(a,b,c,d){a=jb(a,b,c,d);kb(a);lb(!1)};hb.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nWa=sb.getFiberCurrentPropsFromNode;Xa=sb.getInstanceFromNode;Ya=sb.getNodeFromInstance;hb.injectEventPluginsByName({SimpleEventPlugin:fe,EnterLeaveEventPlugin:hd,ChangeEventPlugin:ad,SelectEventPlugin:Sd,BeforeInputEventPlugin:ic});var ge=[],he=-1;function V(a){0>he||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;\"function\"!==typeof e?E(\"191\",e):void 0;e.call(b)}}\nfunction Le(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:ld,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,g)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});\na(c,g)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);He(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=ke(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?me(a,d):D;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,\nb){var c=a.alternate,d=a.stateNode,e=d.state||null,g=a.pendingProps;g?void 0:E(\"158\");var h=ke(a);d.props=g;d.state=a.memoizedState=e;d.refs=D;d.context=me(a,h);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);\"function\"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,null!==e&&(d.state=Je(c,a,e,d,g,b)));\"function\"===typeof d.componentDidMount&&(a.effectTag|=\n4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?E(\"159\"):void 0);var u=g.context,z=ke(b);z=me(b,z);\"function\"!==typeof g.componentWillReceiveProps||h===k&&u===z||(u=g.state,g.componentWillReceiveProps(k,z),g.state!==u&&f.enqueueReplaceState(g,g.state,null));u=b.memoizedState;e=null!==b.updateQueue?Je(a,b,b.updateQueue,g,k,e):u;if(!(h!==k||u!==e||X.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return\"function\"!==\ntypeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),!1;var G=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)G=!0;else{var I=b.stateNode,L=b.type;G=\"function\"===typeof I.shouldComponentUpdate?I.shouldComponentUpdate(G,e,z):L.prototype&&L.prototype.isPureReactComponent?!ea(h,G)||!ea(u,e):!0}G?(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(k,e,z),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4)):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=z;return G}}}var Qe=\"function\"===typeof Symbol&&Symbol[\"for\"],Re=Qe?Symbol[\"for\"](\"react.element\"):60103,Se=Qe?Symbol[\"for\"](\"react.call\"):60104,Te=Qe?Symbol[\"for\"](\"react.return\"):60105,Ue=Qe?Symbol[\"for\"](\"react.portal\"):60106,Ve=Qe?Symbol[\"for\"](\"react.fragment\"):60107,We=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction Xe(a){if(null===a||\"undefined\"===typeof a)return null;a=We&&a[We]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ye=Array.isArray;\nfunction Ze(a,b){var c=b.ref;if(null!==c&&\"function\"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?E(\"110\"):void 0,d=b.stateNode);d?void 0:E(\"147\",c);var e=\"\"+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===D?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}\"string\"!==typeof c?E(\"148\"):void 0;b._owner?void 0:E(\"149\",c)}return c}\nfunction $e(a,b){\"textarea\"!==a.type&&E(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction af(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=se(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=ve(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Ze(b,c),d[\"return\"]=a,d;d=te(c,a.internalContextTag,d);d.ref=Ze(b,c);d[\"return\"]=a;return d}function q(a,b,c,d){if(null===b||7!==b.tag)return b=we(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);\nb[\"return\"]=a;return b}function v(a,b,c,d){if(null===b||9!==b.tag)return b=xe(c,a.internalContextTag,d),b.type=c.value,b[\"return\"]=a,b;b=e(b,null,d);b.type=c.value;b[\"return\"]=a;return b}function y(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ye(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c.children||[],d);b[\"return\"]=a;return b}function u(a,b,c,d,f){if(null===b||10!==b.tag)return b=ue(c,a.internalContextTag,\nd,f),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function z(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=ve(\"\"+b,a.internalContextTag,c),b[\"return\"]=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Re:if(b.type===Ve)return b=ue(b.props.children,a.internalContextTag,c,b.key),b[\"return\"]=a,b;c=te(b,a.internalContextTag,c);c.ref=Ze(null,b);c[\"return\"]=a;return c;case Se:return b=we(b,a.internalContextTag,c),b[\"return\"]=a,b;case Te:return c=xe(b,a.internalContextTag,\nc),c.type=b.value,c[\"return\"]=a,c;case Ue:return b=ye(b,a.internalContextTag,c),b[\"return\"]=a,b}if(Ye(b)||Xe(b))return b=ue(b,a.internalContextTag,c,null),b[\"return\"]=a,b;$e(a,b)}return null}function G(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Re:return c.key===e?c.type===Ve?u(a,b,c.props.children,d,e):k(a,b,c,d):null;case Se:return c.key===e?q(a,b,c,d):null;case Te:return null===\ne?v(a,b,c,d):null;case Ue:return c.key===e?y(a,b,c,d):null}if(Ye(c)||Xe(c))return null!==e?null:u(a,b,c,d,null);$e(a,c)}return null}function I(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Re:return a=a.get(null===d.key?c:d.key)||null,d.type===Ve?u(b,a,d.props.children,e,d.key):k(b,a,d,e);case Se:return a=a.get(null===d.key?c:d.key)||null,q(b,a,d,e);case Te:return a=a.get(c)||null,v(b,a,d,e);case Ue:return a=\na.get(null===d.key?c:d.key)||null,y(b,a,d,e)}if(Ye(d)||Xe(d))return a=a.get(c)||null,u(b,a,d,e,null);$e(b,d)}return null}function L(e,g,m,A){for(var h=null,r=null,n=g,w=g=0,k=null;null!==n&&w<m.length;w++){n.index>w?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;w<m.length;w++)if(n=z(e,m[w],A))g=f(n,g,w),null===r?h=n:r.sibling=n,r=n;return h}for(n=\nd(e,n);w<m.length;w++)if(k=I(n,e,w,m[w],A)){if(a&&null!==k.alternate)n[\"delete\"](null===k.key?w:k.key);g=f(k,g,w);null===r?h=k:r.sibling=k;r=k}a&&n.forEach(function(a){return b(e,a)});return h}function N(e,g,m,A){var h=Xe(m);\"function\"!==typeof h?E(\"150\"):void 0;m=h.call(m);null==m?E(\"151\"):void 0;for(var r=h=null,n=g,w=g=0,k=null,x=m.next();null!==n&&!x.done;w++,x=m.next()){n.index>w?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=a;var c=a.firstEffect}else c=a;else c=a.firstEffect;yg();for(t=c;null!==t;){var d=!1,e=void 0;try{for(;null!==t;){var f=t.effectTag;f&16&&zg(t);if(f&128){var g=t.alternate;null!==g&&Ag(g)}switch(f&-242){case 2:Ne(t);t.effectTag&=-3;break;case 6:Ne(t);t.effectTag&=-3;Oe(t.alternate,t);break;case 4:Oe(t.alternate,\nt);break;case 8:Sc=!0,Bg(t),Sc=!1}t=t.nextEffect}}catch(Tc){d=!0,e=Tc}d&&(null===t?E(\"178\"):void 0,h(t,e),null!==t&&(t=t.nextEffect))}Cg();b.current=a;for(t=c;null!==t;){c=!1;d=void 0;try{for(;null!==t;){var k=t.effectTag;k&36&&Dg(t.alternate,t);k&128&&Eg(t);if(k&64)switch(e=t,f=void 0,null!==R&&(f=R.get(e),R[\"delete\"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=R.get(e),R[\"delete\"](e))),null==f?E(\"184\"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});\nbreak;case 3:null===ca&&(ca=f.error);break;default:E(\"157\")}var Qc=t.nextEffect;t.nextEffect=null;t=Qc}}catch(Tc){c=!0,d=Tc}c&&(null===t?E(\"178\"):void 0,h(t,d),null!==t&&(t=t.nextEffect))}ja=Qb=!1;\"function\"===typeof De&&De(a.stateNode);ha&&(ha.forEach(G),ha=null);null!==ca&&(a=ca,ca=null,Ob(a));b=b.current.expirationTime;0===b&&(qa=R=null);return b}function c(a){for(;;){var b=Fg(a.alternate,a,H),c=a[\"return\"],d=a.sibling;var e=a;if(2147483647===H||2147483647!==e.expirationTime){if(2!==e.tag&&3!==\ne.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;\nif(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=rg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function e(a){var b=Gg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function f(a){if(null!==R){if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1<he;)ge[he]=null,he--;je=D;ie.current=D;X.current=!1;x();ra=a;H=b;F=se(ra.current,null,b)}var c=!1,d=null;try{f(b)}catch(Rc){c=!0,d=Rc}for(;c;){if(eb){ca=d;break}var g=F;if(null===g)eb=!0;else{var k=h(g,d);null===k?E(\"183\"):void 0;if(!eb){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ne(g);break;case 5:qg(g);break;case 3:p(g);break;case 4:p(g)}if(g===k||g.alternate===k)break;g=g[\"return\"]}F=e(c);f(d)}catch(Rc){c=!0;d=Rc;continue}break}}}b=ca;eb=ja=!1;ca=\nnull;null!==b&&Ob(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=id.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,q(a)&&(eb=!0);else for(var g=a[\"return\"];null!==g&&null===c;){2===g.tag?\"function\"===typeof g.stateNode.componentDidCatch&&(d=!0,f=jd(g),c=g,e=!0):3===g.tag&&(c=g);if(q(g)){if(Sc||null!==ha&&(ha.has(g)||null!==g.alternate&&ha.has(g.alternate)))return null;c=null;e=!1}g=g[\"return\"]}if(null!==c){null===qa&&(qa=new Set);qa.add(c);var h=\"\";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=\ng._debugOwner,Qc=g._debugSource;var m=jd(g);var n=null;k&&(n=jd(k));k=Qc;m=\"\\n    in \"+(m||\"Unknown\")+(k?\" (at \"+k.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+k.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\");break a;default:m=\"\"}h+=m;g=g[\"return\"]}while(g);g=h;a=jd(a);null===R&&(R=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};R.set(c,b);try{var p=b.error;p&&p.suppressReactErrorLogging||console.error(p)}catch(Vc){Vc&&\nVc.suppressReactErrorLogging||console.error(Vc)}Qb?(null===ha&&(ha=new Set),ha.add(c)):G(c);return c}null===ca&&(ca=b);return null}function k(a){return null!==R&&(R.has(a)||null!==a.alternate&&R.has(a.alternate))}function q(a){return null!==qa&&(qa.has(a)||null!==a.alternate&&qa.has(a.alternate))}function v(){return 20*(((I()+100)/20|0)+1)}function y(a){return 0!==ka?ka:ja?Qb?1:H:!Hg||a.internalContextTag&1?v():1}function u(a,b){return z(a,b,!1)}function z(a,b){for(;null!==a;){if(0===a.expirationTime||\na.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&b<H&&(F=ra=null,H=0);var d=c,e=b;Rb>Ig&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Fa||(la?\nSb&&(ma=d,na=1,m(ma,na)):1===e?w(1,null):L(e));!ja&&c===ra&&b<H&&(F=ra=null,H=0)}else break;a=a[\"return\"]}}function G(a){z(a,1,!0)}function I(){return Uc=((Wc()-Pe)/10|0)+2}function L(a){if(0!==Tb){if(a>Tb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===O)break;c=d;d=d.nextScheduledRoot}}c=ma;null!==c&&c===b?Rb++:Rb=0;ma=b;na=a}function J(a){w(0,a)}function w(a,b){fb=b;for(N();null!==ma&&0!==na&&(0===a||na<=a)&&!Yc;)m(ma,na),N();null!==fb&&(Tb=0,Xc=-1);0!==na&&L(na);fb=null;Yc=!1;Rb=0;if(Ub)throw a=Zc,Zc=\nnull,Ub=!1,a;}function m(a,c){Fa?E(\"245\"):void 0;Fa=!0;if(c<=I()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(A()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Fa=!1}function A(){return null===fb||fb.timeRemaining()>Lg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ue,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}var qf=\"object\"===typeof performance&&\"function\"===typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};\nvar sf=void 0,tf=void 0;\nif(l.canUseDOM)if(\"function\"!==typeof requestIdleCallback||\"function\"!==typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);window.addEventListener(\"message\",function(a){if(a.source===window&&a.data===Cf){vf=!1;a=rf();if(0>=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b;yf=a+Af;vf||(vf=!0,window.postMessage(Cf,\"*\"))};sf=function(a,b){uf=a;null!=b&&\"number\"===typeof b.timeout&&(wf=rf()+b.timeout);xf||(xf=!0,requestAnimationFrame(Df));return 0};tf=function(){uf=null;vf=!1;wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},\ntf=function(a){clearTimeout(a)};var Ef=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Ff={},Gf={};\nfunction Hf(a){if(Gf.hasOwnProperty(a))return!0;if(Ff.hasOwnProperty(a))return!1;if(Ef.test(a))return Gf[a]=!0;Ff[a]=!0;return!1}\nfunction If(a,b,c){var d=wa(b);if(d&&va(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Tf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Uf(a,b){null!=b.dangerouslySetInnerHTML?E(\"91\"):void 0;return B({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Vf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?E(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Zf(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||(\"topScroll\"===e?wd(\"topScroll\",\"scroll\",a):\"topFocus\"===e||\"topBlur\"===e?(wd(\"topFocus\",\"focus\",a),wd(\"topBlur\",\"blur\",a),c.topBlur=!0,c.topFocus=!0):\"topCancel\"===e?(yc(\"cancel\",!0)&&wd(\"topCancel\",\"cancel\",a),c.topCancel=!0):\"topClose\"===e?(yc(\"close\",!0)&&wd(\"topClose\",\"close\",a),c.topClose=!0):Dd.hasOwnProperty(e)&&U(e,Dd[e],a),c[e]=!0)}}\nvar mg={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",\ntopWaiting:\"waiting\"};function ng(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;d===jg&&(d=Zf(a));d===jg?\"script\"===a?(a=c.createElement(\"div\"),a.innerHTML=\"\\x3cscript\\x3e\\x3c/script\\x3e\",a=a.removeChild(a.firstChild)):a=\"string\"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function og(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}\nfunction pg(a,b,c,d){var e=ig(b,c);switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);var f=c;break;case \"video\":case \"audio\":for(f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);f=c;break;case \"source\":U(\"topError\",\"error\",a);f=c;break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);f=c;break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);f=c;break;case \"details\":U(\"topToggle\",\"toggle\",a);f=c;break;case \"input\":Mf(a,c);f=Lf(a,c);U(\"topInvalid\",\"invalid\",a);\nlg(d,\"onChange\");break;case \"option\":f=Rf(a,c);break;case \"select\":Tf(a,c);f=B({},c,{value:void 0});U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;case \"textarea\":Vf(a,c);f=Uf(a,c);U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;default:f=c}hg(b,f,kg);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];\"style\"===h?fg(a,k,kg):\"dangerouslySetInnerHTML\"===h?(k=k?k.__html:void 0,null!=k&&bg(a,k)):\"children\"===h?\"string\"===typeof k?(\"textarea\"!==b||\"\"!==k)&&cg(a,k):\"number\"===typeof k&&cg(a,\n\"\"+k):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(Ra.hasOwnProperty(h)?null!=k&&lg(d,h):e?Kf(a,h,k):null!=k&&If(a,h,k))}switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"option\":null!=c.value&&a.setAttribute(\"value\",c.value);break;case \"select\":a.multiple=!!c.multiple;b=c.value;null!=b?Sf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Sf(a,!!c.multiple,c.defaultValue,!0);break;default:\"function\"===typeof f.onClick&&(a.onclick=\nC)}}\nfunction sg(a,b,c,d,e){var f=null;switch(b){case \"input\":c=Lf(a,c);d=Lf(a,d);f=[];break;case \"option\":c=Rf(a,c);d=Rf(a,d);f=[];break;case \"select\":c=B({},c,{value:void 0});d=B({},d,{value:void 0});f=[];break;case \"textarea\":c=Uf(a,c);d=Uf(a,d);f=[];break;default:\"function\"!==typeof c.onClick&&\"function\"===typeof d.onClick&&(a.onclick=C)}hg(b,d,kg);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if(\"style\"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]=\n\"\");else\"dangerouslySetInnerHTML\"!==g&&\"children\"!==g&&\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&\"autoFocus\"!==g&&(Ra.hasOwnProperty(g)?f||(f=[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if(\"style\"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]=\"\");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else\"dangerouslySetInnerHTML\"===\ng?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,\"\"+k)):\"children\"===g?b===k||\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(g,\"\"+k):\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&(Ra.hasOwnProperty(g)?(null!=k&&lg(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push(\"style\",a);return f}\nfunction tg(a,b,c,d,e){\"input\"===c&&\"radio\"===e.type&&null!=e.name&&Nf(a,e);ig(c,d);d=ig(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];\"style\"===g?fg(a,h,kg):\"dangerouslySetInnerHTML\"===g?bg(a,h):\"children\"===g?cg(a,h):d?null!=h?Kf(a,g,h):a.removeAttribute(g):null!=h?If(a,g,h):Jf(a,g)}switch(c){case \"input\":Of(a,e);break;case \"textarea\":Wf(a,e);break;case \"select\":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Sf(a,\n!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Sf(a,!!e.multiple,e.defaultValue,!0):Sf(a,!!e.multiple,e.multiple?[]:\"\",!1))}}\nfunction ug(a,b,c,d,e){switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);break;case \"video\":case \"audio\":for(var f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);break;case \"source\":U(\"topError\",\"error\",a);break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);break;case \"details\":U(\"topToggle\",\"toggle\",a);break;case \"input\":Mf(a,c);U(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"select\":Tf(a,c);\nU(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"textarea\":Vf(a,c),U(\"topInvalid\",\"invalid\",a),lg(e,\"onChange\")}hg(b,c,kg);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],\"children\"===g?\"string\"===typeof f?a.textContent!==f&&(d=[\"children\",f]):\"number\"===typeof f&&a.textContent!==\"\"+f&&(d=[\"children\",\"\"+f]):Ra.hasOwnProperty(g)&&null!=f&&lg(e,g));switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"select\":case \"option\":break;default:\"function\"===typeof c.onClick&&\n(a.onclick=C)}return d}function vg(a,b){return a.nodeValue!==b}\nvar wg=Object.freeze({createElement:ng,createTextNode:og,setInitialProperties:pg,diffProperties:sg,updateProperties:tg,diffHydratedProperties:ug,diffHydratedText:vg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(a,b,c){switch(b){case \"input\":Of(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=\nc.parentNode;c=c.querySelectorAll(\"input[name\\x3d\"+JSON.stringify(\"\"+b)+'][type\\x3d\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=rb(d);e?void 0:E(\"90\");Cc(d);Of(d,e)}}}break;case \"textarea\":Wf(a,c);break;case \"select\":b=c.value,null!=b&&Sf(a,!!c.multiple,b,!1)}}});nc.injectFiberControlledHostComponent(wg);var xg=null,Mg=null;function Ng(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction Og(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute(\"data-reactroot\"))}\nvar Z=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:$f(null,\"\");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=$f(a,b)}return a},getChildHostContext:function(a,b){return $f(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){xg=td;var a=da();if(Kd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();\nif(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(z){b=null;break a}var f=0,g=-1,h=-1,k=0,q=0,v=a,y=null;b:for(;;){for(var u;;){v!==b||0!==d&&3!==v.nodeType||(g=f+d);v!==e||0!==c&&3!==v.nodeType||(h=f+c);3===v.nodeType&&(f+=v.nodeValue.length);if(null===(u=v.firstChild))break;y=v;v=u}for(;;){if(v===a)break b;y===b&&++k===d&&(g=f);y===e&&++q===c&&(h=f);if(null!==(u=v.nextSibling))break;v=y;y=v.parentNode}v=u}b=-1===g||-1===h?null:\n{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Mg={focusedElem:a,selectionRange:b};ud(!1)},resetAfterCommit:function(){var a=Mg,b=da(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&fa(document.documentElement,c)){if(Kd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[Eb()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=\na.top}Mg=null;ud(xg);xg=null},createInstance:function(a,b,c,d,e){a=ng(a,b,c,d);a[Q]=e;a[ob]=b;return a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){pg(a,b,c,d);a:{switch(b){case \"button\":case \"input\":case \"select\":case \"textarea\":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e){return sg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return\"textarea\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===\ntypeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&\"string\"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=og(a,b);a[Q]=d;return a},now:rf,mutation:{commitMount:function(a){a.focus()},commitUpdate:function(a,b,c,d,e){a[ob]=e;tg(a,b,c,d,e)},resetTextContent:function(a){a.textContent=\"\"},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,\nb){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,\nb){return\"\"===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[Q]=f;a[ob]=c;return ug(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[Q]=c;return vg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},\ndidNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf,useSyncScheduling:!0});rc=Z.batchedUpdates;\nfunction Pg(a,b,c,d,e){Ng(c)?void 0:E(\"200\");var f=c._reactRootContainer;if(f)Z.updateContainer(b,f,a,e);else{d=d||Og(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=Z.createContainer(c,d);f=c._reactRootContainer=g;Z.unbatchedUpdates(function(){Z.updateContainer(b,g,a,e)})}return Z.getPublicRootInstance(f)}function Qg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Ng(b)?void 0:E(\"200\");return pf(a,b,null,c)}\nfunction Rg(a,b){this._reactRootContainer=Z.createContainer(a,b)}Rg.prototype.render=function(a,b){Z.updateContainer(a,this._reactRootContainer,null,b)};Rg.prototype.unmount=function(a){Z.updateContainer(null,this._reactRootContainer,null,a)};\nvar Sg={createPortal:Qg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return Z.findHostInstance(b);\"function\"===typeof a.render?E(\"188\"):E(\"213\",Object.keys(a))},hydrate:function(a,b,c){return Pg(null,a,b,!0,c)},render:function(a,b,c){return Pg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?E(\"38\"):void 0;return Pg(a,b,c,!1,d)},unmountComponentAtNode:function(a){Ng(a)?void 0:\nE(\"40\");return a._reactRootContainer?(Z.unbatchedUpdates(function(){Pg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Qg,unstable_batchedUpdates:tc,unstable_deferredUpdates:Z.deferredUpdates,flushSync:Z.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:mb,EventPluginRegistry:Va,EventPropagators:Cb,ReactControlledComponent:qc,ReactDOMComponentTree:sb,ReactDOMEventListener:xd}};\nZ.injectIntoDevTools({findFiberByHostInstance:pb,bundleType:0,version:\"16.2.0\",rendererPackageName:\"react-dom\"});var Tg=Object.freeze({default:Sg}),Ug=Tg&&Sg||Tg;module.exports=Ug[\"default\"]?Ug[\"default\"]:Ug;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-dom/cjs/react-dom.production.min.js\n// module id = 55\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/ExecutionEnvironment.js\n// module id = 56\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function listen(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function remove() {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function capture(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/EventListener.js\n// module id = 57\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/getActiveElement.js\n// module id = 58\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/shallowEqual.js\n// module id = 59\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = containsNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/containsNode.js\n// module id = 60\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/isTextNode.js\n// module id = 61\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n  var doc = object ? object.ownerDocument || object : document;\n  var defaultView = doc.defaultView || window;\n  return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/isNode.js\n// module id = 62\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/focusNode.js\n// module id = 63\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createBrowserHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n  _inherits(BrowserRouter, _React$Component);\n\n  function BrowserRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, BrowserRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<BrowserRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');\n  };\n\n  BrowserRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return BrowserRouter;\n}(React.Component);\n\nBrowserRouter.propTypes = {\n  basename: PropTypes.string,\n  forceRefresh: PropTypes.bool,\n  getUserConfirmation: PropTypes.func,\n  keyLength: PropTypes.number,\n  children: PropTypes.node\n};\n\n\nexport default BrowserRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/BrowserRouter.js\n// module id = 64\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 65\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 66\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 67\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = (0, _DOMUtils.supportsHistory)();\n  var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + (0, _PathUtils.createPath)(location);\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createBrowserHistory.js\n// module id = 68\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createHashHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = function (_React$Component) {\n  _inherits(HashRouter, _React$Component);\n\n  function HashRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, HashRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  HashRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<HashRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');\n  };\n\n  HashRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return HashRouter;\n}(React.Component);\n\nHashRouter.propTypes = {\n  basename: PropTypes.string,\n  getUserConfirmation: PropTypes.func,\n  hashType: PropTypes.oneOf(['hashbang', 'noslash', 'slash']),\n  children: PropTypes.node\n};\n\n\nexport default HashRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/HashRouter.js\n// module id = 69\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: _PathUtils.stripLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  },\n  slash: {\n    encodePath: _PathUtils.addLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createHashHistory.js\n// module id = 70\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport MemoryRouter from 'react-router/es/MemoryRouter';\n\nexport default MemoryRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/MemoryRouter.js\n// module id = 71\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createMemoryHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n  _inherits(MemoryRouter, _React$Component);\n\n  function MemoryRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, MemoryRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<MemoryRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');\n  };\n\n  MemoryRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return MemoryRouter;\n}(React.Component);\n\nMemoryRouter.propTypes = {\n  initialEntries: PropTypes.array,\n  initialIndex: PropTypes.number,\n  getUserConfirmation: PropTypes.func,\n  keyLength: PropTypes.number,\n  children: PropTypes.node\n};\n\n\nexport default MemoryRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/MemoryRouter.js\n// module id = 72\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = _PathUtils.createPath;\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createMemoryHistory.js\n// module id = 73\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Route from './Route';\nimport Link from './Link';\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nvar NavLink = function NavLink(_ref) {\n  var to = _ref.to,\n      exact = _ref.exact,\n      strict = _ref.strict,\n      location = _ref.location,\n      activeClassName = _ref.activeClassName,\n      className = _ref.className,\n      activeStyle = _ref.activeStyle,\n      style = _ref.style,\n      getIsActive = _ref.isActive,\n      ariaCurrent = _ref.ariaCurrent,\n      rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);\n\n  return React.createElement(Route, {\n    path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,\n    exact: exact,\n    strict: strict,\n    location: location,\n    children: function children(_ref2) {\n      var location = _ref2.location,\n          match = _ref2.match;\n\n      var isActive = !!(getIsActive ? getIsActive(match, location) : match);\n\n      return React.createElement(Link, _extends({\n        to: to,\n        className: isActive ? [className, activeClassName].filter(function (i) {\n          return i;\n        }).join(' ') : className,\n        style: isActive ? _extends({}, style, activeStyle) : style,\n        'aria-current': isActive && ariaCurrent\n      }, rest));\n    }\n  });\n};\n\nNavLink.propTypes = {\n  to: Link.propTypes.to,\n  exact: PropTypes.bool,\n  strict: PropTypes.bool,\n  location: PropTypes.object,\n  activeClassName: PropTypes.string,\n  className: PropTypes.string,\n  activeStyle: PropTypes.object,\n  style: PropTypes.object,\n  isActive: PropTypes.func,\n  ariaCurrent: PropTypes.oneOf(['page', 'step', 'location', 'true'])\n};\n\nNavLink.defaultProps = {\n  activeClassName: 'active',\n  ariaCurrent: 'true'\n};\n\nexport default NavLink;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/NavLink.js\n// module id = 74\n// module chunks = 0","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/path-to-regexp/index.js\n// module id = 75\n// module chunks = 0","module.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/isarray/index.js\n// module id = 76\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Prompt from 'react-router/es/Prompt';\n\nexport default Prompt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Prompt.js\n// module id = 77\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n  _inherits(Prompt, _React$Component);\n\n  function Prompt() {\n    _classCallCheck(this, Prompt);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Prompt.prototype.enable = function enable(message) {\n    if (this.unblock) this.unblock();\n\n    this.unblock = this.context.router.history.block(message);\n  };\n\n  Prompt.prototype.disable = function disable() {\n    if (this.unblock) {\n      this.unblock();\n      this.unblock = null;\n    }\n  };\n\n  Prompt.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Prompt> outside a <Router>');\n\n    if (this.props.when) this.enable(this.props.message);\n  };\n\n  Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (nextProps.when) {\n      if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n    } else {\n      this.disable();\n    }\n  };\n\n  Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.disable();\n  };\n\n  Prompt.prototype.render = function render() {\n    return null;\n  };\n\n  return Prompt;\n}(React.Component);\n\nPrompt.propTypes = {\n  when: PropTypes.bool,\n  message: PropTypes.oneOfType([PropTypes.func, PropTypes.string]).isRequired\n};\nPrompt.defaultProps = {\n  when: true\n};\nPrompt.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      block: PropTypes.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\nexport default Prompt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Prompt.js\n// module id = 78\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Redirect from 'react-router/es/Redirect';\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Redirect.js\n// module id = 79\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from 'history';\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n  _inherits(Redirect, _React$Component);\n\n  function Redirect() {\n    _classCallCheck(this, Redirect);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Redirect.prototype.isStatic = function isStatic() {\n    return this.context.router && this.context.router.staticContext;\n  };\n\n  Redirect.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Redirect> outside a <Router>');\n\n    if (this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidMount = function componentDidMount() {\n    if (!this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var prevTo = createLocation(prevProps.to);\n    var nextTo = createLocation(this.props.to);\n\n    if (locationsAreEqual(prevTo, nextTo)) {\n      warning(false, 'You tried to redirect to the same route you\\'re currently on: ' + ('\"' + nextTo.pathname + nextTo.search + '\"'));\n      return;\n    }\n\n    this.perform();\n  };\n\n  Redirect.prototype.perform = function perform() {\n    var history = this.context.router.history;\n    var _props = this.props,\n        push = _props.push,\n        to = _props.to;\n\n\n    if (push) {\n      history.push(to);\n    } else {\n      history.replace(to);\n    }\n  };\n\n  Redirect.prototype.render = function render() {\n    return null;\n  };\n\n  return Redirect;\n}(React.Component);\n\nRedirect.propTypes = {\n  push: PropTypes.bool,\n  from: PropTypes.string,\n  to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nRedirect.defaultProps = {\n  push: false\n};\nRedirect.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      push: PropTypes.func.isRequired,\n      replace: PropTypes.func.isRequired\n    }).isRequired,\n    staticContext: PropTypes.object\n  }).isRequired\n};\n\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Redirect.js\n// module id = 80\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  invariant(canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = stripBasename(path, basename);\n\n    return createLocation(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + createPath(location);\n  };\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createBrowserHistory.js\n// module id = 82\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from './LocationUtils';\nimport { addLeadingSlash, stripLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsGoWithoutReloadUsingHash } from './DOMUtils';\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: stripLeadingSlash,\n    decodePath: addLeadingSlash\n  },\n  slash: {\n    encodePath: addLeadingSlash,\n    decodePath: addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  invariant(canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = stripBasename(path, basename);\n\n    return createLocation(path);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [createPath(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + createPath(location));\n  };\n\n  var push = function push(path, state) {\n    warning(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(createPath(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createHashHistory.js\n// module id = 83\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport { createPath } from './PathUtils';\nimport { createLocation } from './LocationUtils';\nimport createTransitionManager from './createTransitionManager';\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = createPath;\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createMemoryHistory.js\n// module id = 84\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport StaticRouter from 'react-router/es/StaticRouter';\n\nexport default StaticRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/StaticRouter.js\n// module id = 85\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { addLeadingSlash, createPath, parsePath } from 'history/PathUtils';\nimport Router from './Router';\n\nvar normalizeLocation = function normalizeLocation(object) {\n  var _object$pathname = object.pathname,\n      pathname = _object$pathname === undefined ? '/' : _object$pathname,\n      _object$search = object.search,\n      search = _object$search === undefined ? '' : _object$search,\n      _object$hash = object.hash,\n      hash = _object$hash === undefined ? '' : _object$hash;\n\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar addBasename = function addBasename(basename, location) {\n  if (!basename) return location;\n\n  return _extends({}, location, {\n    pathname: addLeadingSlash(basename) + location.pathname\n  });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n  if (!basename) return location;\n\n  var base = addLeadingSlash(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return _extends({}, location, {\n    pathname: location.pathname.substr(base.length)\n  });\n};\n\nvar createLocation = function createLocation(location) {\n  return typeof location === 'string' ? parsePath(location) : normalizeLocation(location);\n};\n\nvar createURL = function createURL(location) {\n  return typeof location === 'string' ? location : createPath(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n  return function () {\n    invariant(false, 'You cannot %s with <StaticRouter>', methodName);\n  };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n  _inherits(StaticRouter, _React$Component);\n\n  function StaticRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, StaticRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n      return addLeadingSlash(_this.props.basename + createURL(path));\n    }, _this.handlePush = function (location) {\n      var _this$props = _this.props,\n          basename = _this$props.basename,\n          context = _this$props.context;\n\n      context.action = 'PUSH';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleReplace = function (location) {\n      var _this$props2 = _this.props,\n          basename = _this$props2.basename,\n          context = _this$props2.context;\n\n      context.action = 'REPLACE';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleListen = function () {\n      return noop;\n    }, _this.handleBlock = function () {\n      return noop;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  StaticRouter.prototype.getChildContext = function getChildContext() {\n    return {\n      router: {\n        staticContext: this.props.context\n      }\n    };\n  };\n\n  StaticRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<StaticRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');\n  };\n\n  StaticRouter.prototype.render = function render() {\n    var _props = this.props,\n        basename = _props.basename,\n        context = _props.context,\n        location = _props.location,\n        props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);\n\n    var history = {\n      createHref: this.createHref,\n      action: 'POP',\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler('go'),\n      goBack: staticHandler('goBack'),\n      goForward: staticHandler('goForward'),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return React.createElement(Router, _extends({}, props, { history: history }));\n  };\n\n  return StaticRouter;\n}(React.Component);\n\nStaticRouter.propTypes = {\n  basename: PropTypes.string,\n  context: PropTypes.object.isRequired,\n  location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\nStaticRouter.defaultProps = {\n  basename: '',\n  location: '/'\n};\nStaticRouter.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default StaticRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/StaticRouter.js\n// module id = 86\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Switch from 'react-router/es/Switch';\n\nexport default Switch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Switch.js\n// module id = 87\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport matchPath from './matchPath';\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = function (_React$Component) {\n  _inherits(Switch, _React$Component);\n\n  function Switch() {\n    _classCallCheck(this, Switch);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Switch.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Switch> outside a <Router>');\n  };\n\n  Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    warning(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    warning(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n  };\n\n  Switch.prototype.render = function render() {\n    var route = this.context.router.route;\n    var children = this.props.children;\n\n    var location = this.props.location || route.location;\n\n    var match = void 0,\n        child = void 0;\n    React.Children.forEach(children, function (element) {\n      if (!React.isValidElement(element)) return;\n\n      var _element$props = element.props,\n          pathProp = _element$props.path,\n          exact = _element$props.exact,\n          strict = _element$props.strict,\n          sensitive = _element$props.sensitive,\n          from = _element$props.from;\n\n      var path = pathProp || from;\n\n      if (match == null) {\n        child = element;\n        match = path ? matchPath(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }) : route.match;\n      }\n    });\n\n    return match ? React.cloneElement(child, { location: location, computedMatch: match }) : null;\n  };\n\n  return Switch;\n}(React.Component);\n\nSwitch.contextTypes = {\n  router: PropTypes.shape({\n    route: PropTypes.object.isRequired\n  }).isRequired\n};\nSwitch.propTypes = {\n  children: PropTypes.node,\n  location: PropTypes.object\n};\n\n\nexport default Switch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Switch.js\n// module id = 88\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport matchPath from 'react-router/es/matchPath';\n\nexport default matchPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/matchPath.js\n// module id = 89\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport withRouter from 'react-router/es/withRouter';\n\nexport default withRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/withRouter.js\n// module id = 90\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistStatics from 'hoist-non-react-statics';\nimport Route from './Route';\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n  var C = function C(props) {\n    var wrappedComponentRef = props.wrappedComponentRef,\n        remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);\n\n    return React.createElement(Route, { render: function render(routeComponentProps) {\n        return React.createElement(Component, _extends({}, remainingProps, routeComponentProps, { ref: wrappedComponentRef }));\n      } });\n  };\n\n  C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';\n  C.WrappedComponent = Component;\n  C.propTypes = {\n    wrappedComponentRef: PropTypes.func\n  };\n\n  return hoistStatics(C, Component);\n};\n\nexport default withRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/withRouter.js\n// module id = 91\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.hoistNonReactStatics = factory());\n}(this, (function () {\n    'use strict';\n    \n    var REACT_STATICS = {\n        childContextTypes: true,\n        contextTypes: true,\n        defaultProps: true,\n        displayName: true,\n        getDefaultProps: true,\n        getDerivedStateFromProps: true,\n        mixins: true,\n        propTypes: true,\n        type: true\n    };\n    \n    var KNOWN_STATICS = {\n        name: true,\n        length: true,\n        prototype: true,\n        caller: true,\n        callee: true,\n        arguments: true,\n        arity: true\n    };\n    \n    var defineProperty = Object.defineProperty;\n    var getOwnPropertyNames = Object.getOwnPropertyNames;\n    var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var getPrototypeOf = Object.getPrototypeOf;\n    var objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n    \n    return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n        if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n            \n            if (objectPrototype) {\n                var inheritedComponent = getPrototypeOf(sourceComponent);\n                if (inheritedComponent && inheritedComponent !== objectPrototype) {\n                    hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n                }\n            }\n            \n            var keys = getOwnPropertyNames(sourceComponent);\n            \n            if (getOwnPropertySymbols) {\n                keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n            }\n            \n            for (var i = 0; i < keys.length; ++i) {\n                var key = keys[i];\n                if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n                    var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n                    try { // Avoid failures from read-only properties\n                        defineProperty(targetComponent, key, descriptor);\n                    } catch (e) {}\n                }\n            }\n            \n            return targetComponent;\n        }\n        \n        return targetComponent;\n    };\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/hoist-non-react-statics/index.js\n// module id = 92\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Aside } from '../aside/Aside';\nimport { Main } from '../main/Main';\nimport { Navbar } from '../navbar/Navbar';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L, XL } from '../spacing/SpacingConstants';\n\nimport './App.css';\nimport './ie11.css';\n\nconst APP__CLASS_NAMES = 'app';\nconst APP_NAVBAR__CLASS_NAMES = 'app-navbar';\nconst APP_CONTAINER__CLASS_NAMES = 'app-container';\nconst APP_ASIDE__CLASS_NAMES = 'app-aside';\nconst APP_MAIN__CLASS_NAMES = 'app-main';\nconst FULLSCREEN__CLASS_NAMES = 'fullscreen';\n\nconst FULLSCREEN_PARAMETER_NAME = 'fullscreen';\nconst IE11__CLASS_NAMES = 'ie11';\n\n/**\n * The App component is the entry point of the user interface of the application.\n *\n * It defines the global layout with a Narvab on top to display the name of the\n * application along with some additional actions. Under the Navbar, two columns\n * are used to display side by side the Aside component and the Main component.\n */\nconst AppWithoutRouter = ({ className, ...props }) => {\n  const { location } = props;\n\n  let query = location.search;\n  if (query[0] === '?') {\n    query = query.substring(1);\n  }\n  const segments = query.split('&');\n  const parameters = {};\n  for (var i = 0; i < segments.length; i++) {\n    const entry = segments[i].split('=');\n    parameters[decodeURIComponent(entry[0])] = decodeURIComponent(entry[1]);\n  }\n\n  const isFullScreen = parameters[FULLSCREEN_PARAMETER_NAME];\n\n  let appClassNames = classNames(APP__CLASS_NAMES, className);\n  let container = (\n    <div className={APP_CONTAINER__CLASS_NAMES}>\n      <Aside className={APP_ASIDE__CLASS_NAMES} />\n      <Main className={APP_MAIN__CLASS_NAMES} />\n    </div>\n  );\n\n  if (isFullScreen) {\n    appClassNames = classNames(APP__CLASS_NAMES, FULLSCREEN__CLASS_NAMES, className);\n    container = (\n      <div className={APP_CONTAINER__CLASS_NAMES}>\n        <Main className={APP_MAIN__CLASS_NAMES} />\n      </div>\n    );\n  }\n\n  const isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n  if (isIE11) {\n    appClassNames = classNames(appClassNames, IE11__CLASS_NAMES);\n  }\n\n  return (\n    <div className={appClassNames}>\n      <Navbar className={APP_NAVBAR__CLASS_NAMES} />\n      <Spacing top={L} right={M} bottom={XL} left={M}>\n        {container}\n      </Spacing>\n    </div>\n  );\n};\nexport const App = withRouter(AppWithoutRouter);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/App.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport './Aside.css';\n\nconst ASIDE__CLASS_NAMES = 'aside';\n\nconst ASIDE_MAIN_LINKS__CLASS_NAMES = 'aside-mainlinks';\nconst MAIN_LINKS__CLASS_NAMES = 'title-s';\n\nconst ASIDE_ADDITIONAL_LINKS__CLASS_NAMES = 'aside-additionallinks';\nconst ADDITIONAL_LINKS__CLASS_NAMES = 'caption-s';\n\n/**\n * The Aside component is used to display the navigation links to move from one\n * page to another.\n *\n * It contains two different kinds of links. One the top, we will have the main\n * links which are used to navigate to the major parts of the application. Under\n * those, we will display the additional links which will mainly be links to\n * external websites for help and support.\n */\nexport const Aside = ({ className, ...props }) => {\n  const asideClassNames = classNames(ASIDE__CLASS_NAMES, className);\n  return (\n    <aside className={asideClassNames} {...props}>\n      <div className={ASIDE_MAIN_LINKS__CLASS_NAMES}>\n        <ul>\n          <li>\n            <Link className={MAIN_LINKS__CLASS_NAMES} to=\"/\">\n              Dashboard\n            </Link>\n          </li>\n          <li>\n            <Link className={MAIN_LINKS__CLASS_NAMES} to=\"/projects\">\n              Projects\n            </Link>\n          </li>\n        </ul>\n      </div>\n      <div className={ASIDE_ADDITIONAL_LINKS__CLASS_NAMES}>\n        <ul>\n          <li>\n            <a\n              className={ADDITIONAL_LINKS__CLASS_NAMES}\n              href=\"https://github.com/eclipse/sirius-components/issues\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\">\n              Report an issue\n            </a>\n          </li>\n          <li>\n            <a\n              className={ADDITIONAL_LINKS__CLASS_NAMES}\n              href=\"https://stackoverflow.com/questions/tagged/sirius\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\">\n              Help\n            </a>\n          </li>\n        </ul>\n      </div>\n    </aside>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/aside/Aside.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport { DashboardView } from '../dashboard/DashboardView';\nimport { ErrorBoundary } from '../error/ErrorBoundary';\nimport { ListProjectsView } from '../projects/listprojects/ListProjectsView';\nimport { NewProjectView } from '../projects/newproject/NewProjectView';\nimport { ProjectView } from '../projects/project/ProjectView';\nimport { Spacing } from '../spacing/Spacing';\nimport { L } from '../spacing/SpacingConstants';\n\nimport { DashboardViewStateContainer } from '../../containers/dashboard/DashboardViewStateContainer';\nimport { ListProjectsViewStateContainer } from '../../containers/projects/ListProjectsViewStateContainer';\nimport { NewProjectViewStateContainer } from '../../containers/projects/NewProjectViewStateContainer';\nimport { ProjectViewStateContainer } from '../../containers/projects/ProjectViewStateContainer';\n\nconst MAIN__CLASS_NAMES = 'main';\n\n/**\n * The Main is used to define the content of the main area of the application.\n *\n * This component will define the routing strategy of the application with the\n * list of views and their associated URLs.\n */\nexport const Main = ({ className, ...props }) => {\n  const mainClassNames = classNames(MAIN__CLASS_NAMES, className);\n  return (\n    <main className={mainClassNames} {...props}>\n      <Spacing right={L} left={L}>\n        <ErrorBoundary>\n          <Switch>\n            <Route exact path=\"/\" render={renderDashboardViewStateContainer} />\n            <Route exact path=\"/projects\" render={renderListProjectsViewStateContainer} />\n            <Route exact path=\"/projects/:projectName\" render={renderProjectViewStateContainer} />\n            <Route exact path=\"/newproject\" render={renderNewProjectViewStateContainer} />\n          </Switch>\n        </ErrorBoundary>\n      </Spacing>\n    </main>\n  );\n};\n\nconst renderDashboardViewStateContainer = () => (\n  <DashboardViewStateContainer>\n    {(stateId, error, dashboard) => (\n      <DashboardView stateId={stateId} error={error} dashboard={dashboard} />\n    )}\n  </DashboardViewStateContainer>\n);\n\nconst renderListProjectsViewStateContainer = () => (\n  <ListProjectsViewStateContainer>\n    {(stateId, error, projects) => (\n      <ListProjectsView stateId={stateId} error={error} projects={projects} />\n    )}\n  </ListProjectsViewStateContainer>\n);\n\nconst renderProjectViewStateContainer = () => (\n  <ProjectViewStateContainer>\n    {(stateId, error, project, pageIdentifier, onTabClick, onActivityClick, onNewDescription) => (\n      <ProjectView\n        stateId={stateId}\n        error={error}\n        project={project}\n        pageIdentifier={pageIdentifier}\n        onTabClick={onTabClick}\n        onActivityClick={onActivityClick}\n        onNewDescription={onNewDescription}\n      />\n    )}\n  </ProjectViewStateContainer>\n);\n\nconst renderNewProjectViewStateContainer = () => (\n  <NewProjectViewStateContainer>\n    {(stateId, errors, isValid, onSubmit, name, nameIsValid, nameErrors, onNameChange) => (\n      <NewProjectView\n        stateId={stateId}\n        errors={errors}\n        isValid={isValid}\n        onSubmit={onSubmit}\n        name={name}\n        nameIsValid={nameIsValid}\n        nameErrors={nameErrors}\n        onNameChange={onNameChange}\n      />\n    )}\n  </NewProjectViewStateContainer>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/main/Main.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../common/errors';\n\nimport { ErrorCard } from '../error/ErrorCard';\nimport { InfoCard } from '../info/InfoCard';\nimport { Loading } from '../loading/Loading';\nimport { ProjectSummaryCard } from '../projects/ProjectSummaryCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  DASHBOARD_LOADED__STATE\n} from './DashboardViewFiniteStateMachine';\n\nimport './DashboardView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired\n};\n\n/**\n * The DashboardView component is used as the main component in the dashboard page.\n * It will render a bird eye view of the state of the data of the user starting\n * with the list of the projects available.\n */\nexport const DashboardView = ({ className, stateId, error, dashboard, ...props }) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case DASHBOARD_LOADED__STATE:\n      return renderDashboardLoadedState(className, dashboard, props);\n    default:\n      const undefinedStateError = {\n        title: `The dashboard is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nDashboardView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the dashboard.\n * @param {*} className The class name of the dashboard.\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => <Loading className={className} {...props} />;\n\n/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => (\n  <ErrorCard className={className} {...error} {...props} />\n);\n\nconst DASHBOARD_VIEW__CLASS_NAMES = 'dashboardview';\nconst INFO__CLASS_NAMES = 'info';\nconst PROJECTS_INFO__CLASS_NAMES = 'projectsinfo';\nconst VIEWPOINTS_INFO__CLASS_NAMES = 'viewpointsinfo';\nconst METAMODELS_INFO__CLASS_NAMES = 'metamodelsinfo';\nconst NEWPROJECT_INFO__CLASS_NAMES = 'newprojectinfo';\nconst PROJECTS__CLASS_NAMES = 'projects';\nconst PROJECTS_BODY__CLASS_NAMES = 'projects-body';\n\n/**\n * Renders the dashboard.\n * @param {*} className The class name of the dashboard\n * @param {*} dashboard The dashboard to display\n * @param {*} props The properties of the component\n */\nconst renderDashboardLoadedState = (className, dashboard, props) => {\n  const dashboardViewClassNames = classNames(DASHBOARD_VIEW__CLASS_NAMES, className);\n\n  const { projectsCount, viewpointsCount, metamodelsCount } = dashboard;\n\n  return (\n    <div className={dashboardViewClassNames} {...props}>\n      <div className={INFO__CLASS_NAMES}>\n        <InfoCard\n          className={PROJECTS_INFO__CLASS_NAMES}\n          title={projectsCount.toString()}\n          message={'Projects'}\n        />\n        <InfoCard\n          className={VIEWPOINTS_INFO__CLASS_NAMES}\n          title={viewpointsCount.toString()}\n          message={'Viewpoints'}\n        />\n        <InfoCard\n          className={METAMODELS_INFO__CLASS_NAMES}\n          title={metamodelsCount.toString()}\n          message={'Metamodels'}\n        />\n      </div>\n      <div className={PROJECTS__CLASS_NAMES}>\n        <div className={PROJECTS_BODY__CLASS_NAMES}>\n          <Link to=\"/newproject\">\n            <InfoCard\n              className={NEWPROJECT_INFO__CLASS_NAMES}\n              title=\"+\"\n              message=\"New Project\"\n              to=\"\"\n            />\n          </Link>\n          {dashboard.projects.map(project => (\n            <ProjectSummaryCard key={project.name} project={project} />\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { L } from '../spacing/SpacingConstants';\n\nimport './InfoCard.css';\n\nconst propTypes = {\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string\n};\n\nconst INFOCARD__CLASS_NAMES = 'infocard';\nconst INFOCARD_CONTAINER__CLASS_NAMES = 'infocard-container';\nconst INFOCARD_TITLE__CLASS_NAMES = 'infocard-title';\nconst INFOCARD_MESSAGE__CLASS_NAMES = 'infocard-message';\n\n/**\n * The InfoCard component is used to display some information with a catchy card.\n */\nexport const InfoCard = ({ className, title, message, ...props }) => {\n  const infoCardClassNames = classNames(INFOCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={infoCardClassNames}>\n      <Spacing top={L} right={L} bottom={L} left={L}>\n        <div className={INFOCARD_CONTAINER__CLASS_NAMES}>\n          <h1 className={INFOCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          <p className={INFOCARD_MESSAGE__CLASS_NAMES}>{message}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nInfoCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/info/InfoCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst PROJECT_SUMMARY_CARD__CLASS_NAMES = 'projectsummarycard';\n\nconst propTypes = {\n  project: PropTypes.object.isRequired\n};\n\n/**\n * The ProjectSummaryCard is used to display a bird eye view of the project. It\n * displays the small amount of relevant properties of a project.\n */\nexport const ProjectSummaryCard = ({ project, ...props }) => {\n  return (\n    <Card className={PROJECT_SUMMARY_CARD__CLASS_NAMES} {...props}>\n      <Link to={`/projects/${project.name}`}>\n        <Spacing top={M} right={M} bottom={M} left={M}>\n          <Text weight={SEMI_BOLD} size={LARGE} hideOverflow>\n            {project.name}\n          </Text>\n        </Spacing>\n      </Link>\n      <Spacing top={S} right={M} bottom={M} left={M}>\n        <Text>{project.description || 'No description provided'}</Text>\n      </Spacing>\n    </Card>\n  );\n};\nProjectSummaryCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectSummaryCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\n\nimport { RENDERING_ERROR } from '../../common/errors';\n\nimport { ErrorCard } from './ErrorCard';\n\n/**\n * The ErrorBoundary is a component used to intercept uncaught exceptions\n * during the rendering.\n */\nexport class ErrorBoundary extends Component {\n  constructor(props) {\n    super(props);\n    this.state = { error: null };\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({ error });\n  }\n\n  render() {\n    const { error } = this.state;\n    const title = 'An unexpected error has appeared during the rendering';\n    if (error) {\n      return <ErrorCard code={RENDERING_ERROR} title={title} message={error.message} />;\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorBoundary.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { BlankCard } from '../../blank/BlankCard';\nimport { ErrorCard } from '../../error/ErrorCard';\nimport { Loading } from '../../loading/Loading';\n\nimport { ProjectsListCard } from '../ProjectsListCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  NO_PROJECTS_LOADED__STATE,\n  PROJECTS_LOADED__STATE\n} from './ListProjectsViewFiniteStateMachine';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired\n};\n\n/**\n * The ListProjectsView component is used to display the list of all the projects.\n */\nexport const ListProjectsView = ({ className, stateId, error, projects, ...props }) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case NO_PROJECTS_LOADED__STATE:\n      return renderEmptyState(className, props);\n    case PROJECTS_LOADED__STATE:\n      return renderProjectsLoadedState(className, projects, props);\n    default:\n      const undefinedStateError = {\n        title: `The projects list is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nListProjectsView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the projects list.\n * @param {*} className The class name of the projects list\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => {\n  const listProjectsViewLoadingClassNames = classNames('', className);\n  return <Loading className={listProjectsViewLoadingClassNames} {...props} />;\n};\n\n/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const listProjectsViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={listProjectsViewErrorClassNames} {...error} {...props} />;\n};\n\n/**\n * Renders the empty state.\n * @param {*} className The class name of the project list\n * @param {*} props The properties of the component\n */\nconst renderEmptyState = (className, props) => {\n  const listProjectsViewEmptyClassNames = classNames('', className);\n  return (\n    <BlankCard\n      title=\"You haven't created any projects yet\"\n      message=\"Once you start creating new projects, you will be able to see them here\"\n      className={listProjectsViewEmptyClassNames}\n      {...props}\n    />\n  );\n};\n\nconst LIST_PROJECTS_VIEW__CLASS_NAMES = 'listprojectsview';\n\n/**\n * Renders the projects loaded.\n * @param {*} className The class name of the projects list\n * @param {*} projects The projects to be displayed\n * @param {*} props The properties of the component\n */\nconst renderProjectsLoadedState = (className, projects, props) => {\n  const listProjectsViewClassNames = classNames(LIST_PROJECTS_VIEW__CLASS_NAMES, className);\n  return (\n    <div className={listProjectsViewClassNames}>\n      <ProjectsListCard projects={projects} {...props} />\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L } from '../spacing/SpacingConstants';\n\nimport './BlankCard.css';\n\nconst propTypes = {\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string.isRequired\n};\n\nconst BLANKCARD__CLASS_NAMES = 'blankcard';\nconst BLANKCARD_CONTAINER__CLASS_NAMES = 'blankcard-container';\nconst BLANKCARD_TITLE__CLASS_NAMES = 'title-l';\n\n/**\n * The BlankCard component is used to render the empty state of a page.\n */\nexport const BlankCard = ({ className, title, message, ...props }) => {\n  const blankCardClassNames = classNames(BLANKCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={blankCardClassNames}>\n      <Spacing top={L} right={L} left={L} bottom={L}>\n        <div className={BLANKCARD_CONTAINER__CLASS_NAMES}>\n          <Spacing bottom={M}>\n            <h1 className={BLANKCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          </Spacing>\n          <p>{message}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nBlankCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/blank/BlankCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { AdditionalText, List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND } from '../list/ListConstants';\nimport { TWO_LINES } from '../list/ListConstants';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nimport './ProjectsListCard.css';\n\nconst PROJECTS_LIST_CARD__CLASS_NAMES = 'projectslistcard';\n\nconst propTypes = {\n  projects: PropTypes.array.isRequired\n};\nconst defaultProps = {\n  projects: []\n};\n\n/**\n * The ProjectsListCard is used to display a list of projects as a card.\n */\nexport const ProjectsListCard = ({ className, projects, ...props }) => {\n  const projectsListCardClassNames = classNames(PROJECTS_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={projectsListCardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={LARGE}>\n          Projects\n        </Text>\n      </Spacing>\n      <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n        {projects.map(project => {\n          return (\n            <Link to={`projects/${project.name}`} key={project.name}>\n              <Tile kind={TWO_LINES}>\n                <div>\n                  <MainText>{project.name}</MainText>\n                  <AdditionalText>\n                    {project.description || 'No description provided'}\n                  </AdditionalText>\n                </div>\n              </Tile>\n            </Link>\n          );\n        })}\n      </List>\n    </Card>\n  );\n};\nProjectsListCard.propTypes = propTypes;\nProjectsListCard.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectsListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Redirect } from 'react-router-dom';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { ErrorCard } from '../../error/ErrorCard';\n\nimport { NewProjectCard } from '../NewProjectCard';\n\nimport {\n  PRISTINE__STATE,\n  MODIFIED__STATE,\n  REDIRECT__STATE\n} from './NewProjectViewFiniteStateMachine';\n\nimport './NewProjectView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired,\n  errors: PropTypes.arrayOf(PropTypes.string).isRequired,\n  isValid: PropTypes.bool.isRequired,\n  onSubmit: PropTypes.func.isRequired,\n  name: PropTypes.string.isRequired,\n  nameIsValid: PropTypes.bool.isRequired,\n  nameErrors: PropTypes.arrayOf(PropTypes.string).isRequired,\n  onNameChange: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n  errors: [],\n  isValid: false,\n  onSubmit: () => {},\n  name: '',\n  nameIsValid: false,\n  nameErrors: [],\n  onNameChange: () => {}\n};\n\n/**\n * The NewProjectView component is used to display a new project form.\n */\nexport const NewProjectView = ({\n  className,\n  stateId,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange,\n  ...props\n}) => {\n  switch (stateId) {\n    case PRISTINE__STATE:\n    case MODIFIED__STATE:\n      return renderForm(\n        className,\n        errors,\n        isValid,\n        onSubmit,\n        name,\n        nameIsValid,\n        nameErrors,\n        onNameChange\n      );\n    case REDIRECT__STATE:\n      return renderRedirectState(name);\n    default:\n      const undefinedStateError = {\n        title: `The new project page is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nNewProjectView.propTypes = propTypes;\nNewProjectView.defaultProps = defaultProps;\n\nconst NEW_PROJECT_VIEW__CLASS_NAMES = 'newprojectview';\n\n/**\n * Renders the form used to create a new project.\n */\nconst renderForm = (\n  className,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange\n) => {\n  const newProjectViewClassNames = classNames(NEW_PROJECT_VIEW__CLASS_NAMES, className);\n  return (\n    <div className={newProjectViewClassNames}>\n      <NewProjectCard\n        errors={errors}\n        isValid={isValid}\n        onSubmit={onSubmit}\n        name={name}\n        nameIsValid={nameIsValid}\n        nameErrors={nameErrors}\n        onNameChange={onNameChange}\n      />\n    </div>\n  );\n};\n\n/**\n * Renders a redirect component used to redirect the router to the page of the\n * newly created project.\n *\n * @param {*} name The name of the project\n */\nconst renderRedirectState = name => <Redirect to={`/projects/${name}`} />;\n\n/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const newProjectViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={newProjectViewErrorClassNames} {...error} {...props} />;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Button } from '../buttons/Button';\nimport { BUTTON_PRIMARY__KIND } from '../buttons/ButtonConstants';\nimport { Card, Divider } from '../cards/Card';\nimport {\n  ActionGroup,\n  Description,\n  ErrorGroup,\n  Error,\n  Form,\n  Field,\n  Label,\n  TextField\n} from '../form/Form';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst NEWPROJECT_CARD__CLASS_NAMES = 'newprojectcard';\n\nconst propTypes = {};\n\n/**\n * The NewProjectCard is used to create a new project.\n */\nexport const NewProjectCard = ({\n  className,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange,\n  ...props\n}) => {\n  const newProjectCardClassNames = classNames(NEWPROJECT_CARD__CLASS_NAMES, className);\n  let nameClassName = '';\n  if (!nameIsValid && nameErrors.length > 0) {\n    nameClassName = 'fielderror';\n  }\n\n  return (\n    <Card className={newProjectCardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={LARGE} hideOverflow>\n          New Project\n        </Text>\n      </Spacing>\n      <Divider />\n      <Form onSubmit={onSubmit}>\n        <ErrorGroup>{errors.map(error => <Error key={error}>{error}</Error>)}</ErrorGroup>\n        <Field>\n          <Label htmlFor=\"name\">Name</Label>\n          <Description>\n            The name of the project can only contain letters and numbers separated by dots, dashes\n            or underscores.\n          </Description>\n          <TextField\n            id=\"name\"\n            name=\"name\"\n            className={nameClassName}\n            placeholder=\"Enter the name\"\n            value={name}\n            onChange={onNameChange}\n          />\n          <ErrorGroup>{nameErrors.map(error => <Error key={error}>{error}</Error>)}</ErrorGroup>\n        </Field>\n        <ActionGroup>\n          <Button kind={BUTTON_PRIMARY__KIND} disabled={!isValid}>\n            Create Project\n          </Button>\n        </ActionGroup>\n      </Form>\n    </Card>\n  );\n};\nNewProjectCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/NewProjectCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { ErrorCard } from '../../error/ErrorCard';\nimport { LoadingProvider } from '../../loading/Loading';\nimport { WorkflowCard } from '../../workflow/WorkflowCard';\n\nimport { ProjectHeaderCard } from '../header/ProjectHeaderCard';\nimport { ProjectRepresentationsListCard } from '../ProjectRepresentationsListCard';\nimport { ProjectSemanticResourcesListCard } from '../ProjectSemanticResourcesListCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  PROJECT_LOADED__STATE\n} from './ProjectViewFiniteStateMachine';\n\nimport './ProjectView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string\n};\n\n/**\n * The ProjectView is used to display and manipulate a project.\n */\nexport const ProjectView = ({\n  className,\n  stateId,\n  error,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  ...props\n}) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case PROJECT_LOADED__STATE:\n      return renderProjectLoadedState(\n        className,\n        project,\n        pageIdentifier,\n        onTabClick,\n        onActivityClick,\n        onNewDescription,\n        props\n      );\n    default:\n      const undefinedStateError = {\n        title: `The project is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nProjectView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the project.\n * @param {*} className The class name of the project\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => {\n  const project = {};\n  const pageIdentifier = undefined;\n  const onTabClick = () => {};\n  const onActivityClick = () => {};\n  const onNewDescription = () => {};\n  return renderProjectState(\n    className,\n    project,\n    pageIdentifier,\n    onTabClick,\n    onActivityClick,\n    onNewDescription,\n    true,\n    props\n  );\n};\n\n/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const projectViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={projectViewErrorClassNames} {...error} {...props} />;\n};\n\nconst renderProjectLoadedState = (\n  className,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  props\n) =>\n  renderProjectState(\n    className,\n    project,\n    pageIdentifier,\n    onTabClick,\n    onActivityClick,\n    onNewDescription,\n    false,\n    props\n  );\n\nconst PROJECT_VIEW__CLASS_NAMES = 'projectview';\nconst PROJECT_VIEW_MAIN__CLASS_NAMES = 'projectview-main';\nconst PROJECT_VIEW_DETAILS__CLASS_NAMES = 'projectview-details';\nconst PROJECT_VIEW_WORKFLOW__CLASS_NAMES = 'projectview-workflow';\n\n/**\n * Renders the project.\n * @param {*} className The class name of the project\n * @param {*} project The project to be displayed\n * @param {*} pageIdentifier The identifier of the page displayed in the workflow\n * @param {*} onTabClick The callback executed when a tab is clicked\n * @param {*} onActivityClick The callback executed when an activity is clicked\n * @param {*} onNewDescription The callback executed when the description is updated\n * @param {*} loading Indicates if the page is being loaded\n * @param {*} props The properties of the component\n */\nconst renderProjectState = (\n  className,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  loading,\n  props\n) => {\n  const projectViewClassNames = classNames(PROJECT_VIEW__CLASS_NAMES, className);\n  return (\n    <LoadingProvider loading={loading}>\n      <div className={projectViewClassNames}>\n        <ProjectHeaderCard\n          name={project.name}\n          description={project.description}\n          onNewDescription={onNewDescription}\n        />\n        <div className={PROJECT_VIEW_MAIN__CLASS_NAMES}>\n          <div className={PROJECT_VIEW_DETAILS__CLASS_NAMES}>\n            <ProjectSemanticResourcesListCard semanticResources={project.semanticResources} />\n            <ProjectRepresentationsListCard\n              projectName={project.name}\n              representations={project.representations}\n            />\n          </div>\n          <div className={PROJECT_VIEW_WORKFLOW__CLASS_NAMES}>\n            <WorkflowCard\n              projectName={project.name}\n              pageIdentifier={pageIdentifier}\n              pages={project.pages}\n              sections={project.currentPageSections}\n              onTabClick={onTabClick}\n              onActivityClick={onActivityClick}\n            />\n          </div>\n        </div>\n      </div>\n    </LoadingProvider>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card, Divider } from '../cards/Card';\nimport { IconRun } from '../icons/IconRun';\nimport { List, MainText, Tile, AdditionalIcon } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND } from '../list/ListConstants';\nimport { SINGLE_LINE } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { TabBar } from '../tabbar/TabBar';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, MEDIUM, LARGE } from '../text/TextConstants';\n\nimport './WorkflowCard.css';\n\nconst propTypes = {\n  projectName: PropTypes.string.isRequired,\n  pageIdentifier: PropTypes.string.isRequired,\n  pages: PropTypes.array.isRequired,\n  sections: PropTypes.array.isRequired,\n  onTabClick: PropTypes.func,\n  onActivityClick: PropTypes.func\n};\nconst defaultProps = {\n  projectName: '',\n  pageIdentifier: '',\n  pages: [],\n  sections: [],\n  onTabClick: () => {},\n  onActivityClick: () => {}\n};\n\nconst WORKFLOWCARD__CLASS_NAMES = 'workflowcard';\n\n/**\n * The WorkflowCard component is used to render the workflow of the page.\n */\nexport const WorkflowCard = ({\n  className,\n  projectName,\n  pageIdentifier,\n  pages,\n  sections,\n  onTabClick,\n  onActivityClick,\n  ...props\n}) => {\n  let selectedTabIndex = 0;\n  for (let index = 0; index < pages.length; index++) {\n    let page = pages[index];\n    if (page.identifier === pageIdentifier) {\n      selectedTabIndex = index;\n    }\n  }\n\n  let sectionsElement;\n  if (pages.length > 0) {\n    sectionsElement = (\n      <Sections\n        sections={sections}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        onActivityClick={onActivityClick}\n      />\n    );\n  }\n\n  const workflowCardClassNames = classNames(WORKFLOWCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={workflowCardClassNames}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Workflow\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <WorkflowTabBar pages={pages} selectedTabIndex={selectedTabIndex} onTabClick={onTabClick} />\n      {sectionsElement}\n    </Card>\n  );\n};\nWorkflowCard.propTypes = propTypes;\nWorkflowCard.defaultProps = defaultProps;\n\nconst WorkflowTabBar = ({ pages, selectedTabIndex, onTabClick }) => {\n  if (pages.length === 0) {\n    return (\n      <Spacing top={S} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => <Text loading={loading}>No workflow pages found</Text>}\n        </LoadingConsumer>\n      </Spacing>\n    );\n  }\n  return (\n    <TabBar\n      selectedTabIndex={selectedTabIndex}\n      tabs={pages.map(page => page.name)}\n      onTabClick={onTabClick}\n    />\n  );\n};\n\nconst Sections = ({ sections, projectName, pageIdentifier, onActivityClick }) => {\n  if (sections.length === 0) {\n    return <EmptySections />;\n  }\n  return sections.map((section, index) => (\n    <Fragment key={section.identifier}>\n      <Section\n        key={section.identifier}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        section={section}\n        onActivityClick={onActivityClick}\n      />\n      {index + 1 < sections.length ? <Divider /> : null}\n    </Fragment>\n  ));\n};\n\nconst EmptySections = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <Text>No sections found in the workflow.</Text>\n  </Spacing>\n);\n\nconst SECTION__CLASS_NAMES = 'section';\n\nconst Section = ({\n  className,\n  projectName,\n  pageIdentifier,\n  section,\n  onActivityClick,\n  ...props\n}) => {\n  const sectionClassNames = classNames(SECTION__CLASS_NAMES, className);\n  return (\n    <div className={sectionClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={MEDIUM} hideOverflow>\n          {section.name}\n        </Text>\n      </Spacing>\n      <Activities\n        activities={section.activities}\n        onActivityClick={onActivityClick}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        sectionIdentifier={section.identifier}\n      />\n    </div>\n  );\n};\n\nconst Activities = ({\n  activities,\n  onActivityClick,\n  projectName,\n  pageIdentifier,\n  sectionIdentifier\n}) => {\n  if (activities.length === 0) {\n    return <EmptyActivities />;\n  }\n  return (\n    <ActivitiesList\n      activities={activities}\n      onActivityClick={onActivityClick}\n      projectName={projectName}\n      pageIdentifier={pageIdentifier}\n      sectionIdentifier={sectionIdentifier}\n    />\n  );\n};\n\nconst ActivitiesList = ({\n  activities,\n  onActivityClick,\n  projectName,\n  pageIdentifier,\n  sectionIdentifier\n}) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {activities.map(activity => (\n      <Tile kind={SINGLE_LINE} key={activity.identifier}>\n        <MainText>{activity.name}</MainText>\n        <AdditionalIcon>\n          <IconRun\n            onClick={() =>\n              onActivityClick(projectName, pageIdentifier, sectionIdentifier, activity.identifier)\n            }\n          />\n        </AdditionalIcon>\n      </Tile>\n    ))}\n  </List>\n);\n\nconst EmptyActivities = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <Text>No activities in the section.</Text>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/workflow/WorkflowCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport './IconRun.css';\n\nconst ICONRUN__CLASS_NAMES = 'iconrun';\n\n/**\n * The run SVG icon.\n */\nexport const IconRun = ({ className, ...props }) => {\n  const iconRunClassNames = classNames(ICONRUN__CLASS_NAMES, className);\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className={iconRunClassNames}\n      height=\"16\"\n      width=\"16\"\n      {...props}>\n      <polygon points=\"0,0 16,8 0,16\" />\n    </svg>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/icons/IconRun.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD } from '../text/TextConstants';\n\nimport { Tab } from './Tab';\nimport { actionCreator, dispatcher } from './TabBarDispatcher';\n\nimport './TabBar.css';\n\nconst TABBAR__CLASS_NAMES = 'tabbar';\nconst TABBAR_NAV__CLASS_NAMES = 'tabbar-nav';\nconst TABBAR_NAV__DISABLED__CLASS_NAMES = 'tabbar-nav--disabled';\nconst TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES = 'tabbar-nav--contain-selection';\nconst TABBAR_TABS__CLASS_NAMES = 'tabbar-tabs';\n\nconst propTypes = {\n  tabs: PropTypes.array.isRequired,\n  onTabClick: PropTypes.func.isRequired,\n  selectedTabIndex: PropTypes.number.isRequired,\n  numberOfTabsDisplayed: PropTypes.number.isRequired\n};\nconst defaultProps = {\n  tabs: [],\n  onTabClick: () => {},\n  selectedTabIndex: 0,\n  numberOfTabsDisplayed: 3\n};\n\n/**\n * The TabBar component is used to display horizontally a list of elements with\n * two buttons to navigate into the list to the previous or next elements. It\n * also allows the selection of one specific element in the list.\n */\nexport class TabBar extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleTabBarNavClick = this.handleTabBarNavClick.bind(this);\n    this.handleTabClick = this.handleTabClick.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  dispatch(action, callback) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action), callback);\n  }\n\n  handleTabBarNavClick({ target }) {\n    const side = target.getAttribute('data-side');\n    if (side === 'previous' && this.state.isPreviousAvailable) {\n      const action = actionCreator.newHandlePreviousAction();\n      this.dispatch(action);\n    } else if (side === 'next' && this.state.isNextAvailable) {\n      const action = actionCreator.newHandleNextAction();\n      this.dispatch(action);\n    }\n  }\n\n  handleTabClick(event, index) {\n    const { onTabClick } = this.props;\n\n    const action = actionCreator.newHandleTabSelectedAction(index);\n    this.dispatch(action, () => onTabClick(index));\n  }\n\n  getTabBarNavClassNames(isAvailable, containsSelection) {\n    let tabBarNavClassNames = TABBAR_NAV__CLASS_NAMES;\n    if (!isAvailable) {\n      tabBarNavClassNames = classNames(TABBAR_NAV__CLASS_NAMES, TABBAR_NAV__DISABLED__CLASS_NAMES);\n    } else if (containsSelection) {\n      tabBarNavClassNames = classNames(\n        TABBAR_NAV__CLASS_NAMES,\n        TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES\n      );\n    }\n    return tabBarNavClassNames;\n  }\n\n  renderTabs(tabs, startIndex, selectedTabIndex, numberOfTabsDisplayed) {\n    const tabsToDisplay = [];\n    const endIndex = Math.min(tabs.length, startIndex + numberOfTabsDisplayed);\n    for (let index = startIndex; index < endIndex; index++) {\n      let tab = tabs[index];\n      tabsToDisplay.push(\n        <Tab\n          key={tab}\n          index={index}\n          onClick={this.handleTabClick}\n          selected={index === selectedTabIndex}>\n          {tab}\n        </Tab>\n      );\n    }\n    return tabsToDisplay;\n  }\n\n  render() {\n    const { className, tabs, numberOfTabsDisplayed } = this.props;\n    const { index, isPreviousAvailable, isNextAvailable, selectedTabIndex } = this.state;\n\n    const previousContainsSelection = selectedTabIndex < index;\n    const nextContainsSelection = index + numberOfTabsDisplayed < selectedTabIndex + 1;\n\n    const tabBarClassNames = classNames(TABBAR__CLASS_NAMES, className);\n    const previousClassNames = this.getTabBarNavClassNames(\n      isPreviousAvailable,\n      previousContainsSelection\n    );\n    const nextClassNames = this.getTabBarNavClassNames(isNextAvailable, nextContainsSelection);\n    const tabsToDisplay = this.renderTabs(tabs, index, selectedTabIndex, numberOfTabsDisplayed);\n\n    return (\n      <div className={tabBarClassNames}>\n        <div\n          className={previousClassNames}\n          onClick={this.handleTabBarNavClick}\n          data-side=\"previous\">\n          <Text weight={SEMI_BOLD}>&lt;</Text>\n        </div>\n        <div className={TABBAR_TABS__CLASS_NAMES}>{tabsToDisplay}</div>\n        <div className={nextClassNames} onClick={this.handleTabBarNavClick} data-side=\"next\">\n          <Text weight={SEMI_BOLD}>&gt;</Text>\n        </div>\n      </div>\n    );\n  }\n}\nTabBar.propTypes = propTypes;\nTabBar.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBar.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, MEDIUM } from '../text/TextConstants';\n\nimport './Tab.css';\n\nconst TAB__CLASS_NAMES = 'tab';\nconst TAB_SELECTED__CLASS_NAMES = 'tab--selected';\n\nconst propTypes = {\n  selected: PropTypes.bool.isRequired,\n  index: PropTypes.number.isRequired,\n  onClick: PropTypes.func.isRequired\n};\nconst defaultProps = {\n  selected: false,\n  onClick: () => {}\n};\n\n/**\n * The Tab component is used to display one tab in a TabBar.\n */\nexport class Tab extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleTabClick = this.handleTabClick.bind(this);\n  }\n\n  handleTabClick(event) {\n    const { index, onClick } = this.props;\n    onClick(event, index);\n  }\n\n  render() {\n    const { className, children, selected } = this.props;\n    let tabClassNames = TAB__CLASS_NAMES;\n    if (selected) {\n      tabClassNames = classNames(tabClassNames, TAB_SELECTED__CLASS_NAMES);\n    }\n    tabClassNames = classNames(tabClassNames, className);\n    return (\n      <div className={tabClassNames} onClick={this.handleTabClick}>\n        <Text weight={SEMI_BOLD} size={MEDIUM} hideOverflow>\n          {children}\n        </Text>\n      </div>\n    );\n  }\n}\nTab.propTypes = propTypes;\nTab.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/Tab.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../common/dispatcherCreator';\n\nimport {\n  FSM,\n  INITIAL__STATE,\n  INITIALIZE__ACTION,\n  HANDLE_NEXT__ACTION,\n  HANDLE_PREVIOUS__ACTION,\n  HANDLE_TAB_SELECTED__ACTION,\n  MOVED__STATE,\n  PRISTINE__STATE\n} from './TabBarFiniteStateMachine';\n\n/**\n * The reducer of the tab bar.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the tab bar.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      const initializedState = computeState(\n        props.tabs,\n        0,\n        props.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      initializedState.stateId = PRISTINE__STATE;\n      return initializedState;\n    case HANDLE_NEXT__ACTION:\n      const handleNextState = computeState(\n        props.tabs,\n        state.index + 1,\n        state.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handleNextState.stateId = MOVED__STATE;\n      return handleNextState;\n    case HANDLE_PREVIOUS__ACTION:\n      const handlePreviousState = computeState(\n        props.tabs,\n        state.index - 1,\n        state.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handlePreviousState.stateId = MOVED__STATE;\n      return handlePreviousState;\n    case HANDLE_TAB_SELECTED__ACTION:\n      const handleTabSelectedState = computeState(\n        props.tabs,\n        state.index,\n        action.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handleTabSelectedState.stateId = MOVED__STATE;\n      return handleTabSelectedState;\n    default:\n      return state;\n  }\n};\n\nconst computeState = (tabs, index, selectedTabIndex, numberOfTabsDisplayed) => {\n  const isPreviousAvailable = index > 0;\n  const isNextAvailable = tabs.length > index + numberOfTabsDisplayed;\n  return {\n    index,\n    isPreviousAvailable,\n    isNextAvailable,\n    selectedTabIndex\n  };\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle next action used to navigate to the next tabs in the tab bar.\n */\nconst newHandleNextAction = () => ({\n  kind: HANDLE_NEXT__ACTION\n});\n\n/**\n * Returns an handle previous action used to navigate to the next tabs in the tab bar.\n */\nconst newHandlePreviousAction = () => ({\n  kind: HANDLE_PREVIOUS__ACTION\n});\n\n/**\n * Returns an handle tab selected action used to select a specific tab in the tab bar.\n *\n * @param {*} selectedTabIndex The index of the selected tab\n */\nconst newHandleTabSelectedAction = selectedTabIndex => ({\n  kind: HANDLE_TAB_SELECTED__ACTION,\n  selectedTabIndex\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleNextAction,\n  newHandlePreviousAction,\n  newHandleTabSelectedAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBarDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const PRISTINE__STATE = 'PRISTINE__STATE';\nexport const MOVED__STATE = 'MOVED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_NEXT__ACTION = 'HANDLE_NEXT__ACTION';\nexport const HANDLE_PREVIOUS__ACTION = 'HANDLE_PREVIOUS__ACTION';\nexport const HANDLE_TAB_SELECTED__ACTION = 'HANDLE_TAB_SELECTED__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [PRISTINE__STATE] },\n  PRISTINE__STATE: {\n    HANDLE_NEXT__ACTION: [MOVED__STATE],\n    HANDLE_PREVIOUS__ACTION: [MOVED__STATE],\n    HANDLE_TAB_SELECTED__ACTION: [MOVED__STATE]\n  },\n  MOVED__STATE: {\n    HANDLE_NEXT__ACTION: [MOVED__STATE],\n    HANDLE_PREVIOUS__ACTION: [MOVED__STATE],\n    HANDLE_TAB_SELECTED__ACTION: [MOVED__STATE]\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBarFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\n\nimport { Card } from '../../cards/Card';\nimport { LoadingConsumer } from '../../loading/Loading';\nimport { Spacing } from '../../spacing/Spacing';\nimport { S, M } from '../../spacing/SpacingConstants';\nimport { Text } from '../../text/Text';\nimport { SEMI_BOLD, EXTRA_LARGE } from '../../text/TextConstants';\n\nimport { EditDescription } from './EditDescription';\nimport { ViewDescription } from './ViewDescription';\n\nconst PROJECTHEADERCARD__CLASS_NAMES = 'projectheadercard';\n\nconst projectHeaderCardPropTypes = {\n  name: PropTypes.string.isRequired,\n  description: PropTypes.string,\n  onNewDescription: PropTypes.func.isRequired\n};\nconst projectHeaderCardDefaultProps = {\n  name: '',\n  onNewDescription: () => {}\n};\n\n/**\n * The ProjectHeaderCard is used to contain the most important properties of a\n * project and the main actions used to interact with it.\n */\nexport class ProjectHeaderCard extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleEditClick = this.handleEditClick.bind(this);\n    this.handleNewDescription = this.handleNewDescription.bind(this);\n\n    this.state = { isViewingDescription: true };\n  }\n\n  handleEditClick() {\n    this.setState({ isViewingDescription: false });\n  }\n\n  handleNewDescription(description) {\n    this.setState({ isViewingDescription: true }, () => {\n      const { onNewDescription } = this.props;\n      onNewDescription(description);\n    });\n  }\n\n  render() {\n    const { className, name, description, onNewDescription, ...props } = this.props;\n    const { isViewingDescription } = this.state;\n\n    const cardClassNames = classNames(PROJECTHEADERCARD__CLASS_NAMES, className);\n    return (\n      <Card className={cardClassNames} {...props}>\n        <Spacing top={M} right={M} bottom={M} left={M}>\n          <LoadingConsumer>\n            {loading => (\n              <Text weight={SEMI_BOLD} size={EXTRA_LARGE} hideOverflow loading={loading}>\n                {name}\n              </Text>\n            )}\n          </LoadingConsumer>\n        </Spacing>\n        <Spacing top={S} right={M} bottom={S} left={M}>\n          {isViewingDescription ? (\n            <ViewDescription\n              description={description || 'No description provided'}\n              onEditClick={this.handleEditClick}\n            />\n          ) : (\n            <EditDescription\n              description={description}\n              onNewDescription={this.handleNewDescription}\n            />\n          )}\n        </Spacing>\n      </Card>\n    );\n  }\n}\nProjectHeaderCard.propTypes = projectHeaderCardPropTypes;\nProjectHeaderCard.defaultProps = projectHeaderCardDefaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ProjectHeaderCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '../../buttons/Button';\nimport { TextField } from '../../form/Form';\nimport { Spacing } from '../../spacing/Spacing';\nimport { M } from '../../spacing/SpacingConstants';\n\nimport './EditDescription.css';\n\nconst EDITDESCRIPTION__CLASS_NAMES = 'editdescription';\n\nconst editDescriptionPropTypes = {\n  description: PropTypes.string.isRequired,\n  onNewDescription: PropTypes.func.isRequired\n};\nconst editDescriptionDefaultProps = {\n  description: ''\n};\n\n/**\n * The EditDescription component is used to edit the description of the project.\n */\nexport class EditDescription extends Component {\n  constructor(props) {\n    super(props);\n    this.handleDescriptionChange = this.handleDescriptionChange.bind(this);\n    this.handleDoneClick = this.handleDoneClick.bind(this);\n\n    this.state = {\n      description: props.description\n    };\n  }\n\n  handleDescriptionChange({ target: { value } }) {\n    this.setState({ description: value });\n  }\n\n  handleDoneClick() {\n    const { onNewDescription } = this.props;\n    const { description } = this.state;\n    onNewDescription(description);\n  }\n\n  render() {\n    const { description } = this.state;\n    return (\n      <div className={EDITDESCRIPTION__CLASS_NAMES}>\n        <TextField value={description} onChange={this.handleDescriptionChange} />\n        <Spacing left={M}>\n          <Button onClick={this.handleDoneClick}>Done</Button>\n        </Spacing>\n      </div>\n    );\n  }\n}\nEditDescription.propTypes = editDescriptionPropTypes;\nEditDescription.defaultProps = editDescriptionDefaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/EditDescription.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\n\nimport { Button } from '../../buttons/Button';\nimport { LoadingConsumer } from '../../loading/Loading';\nimport { Spacing } from '../../spacing/Spacing';\nimport { M } from '../../spacing/SpacingConstants';\nimport { Text } from '../../text/Text';\n\nimport './ViewDescription.css';\n\nconst VIEWDESCRIPTION__CLASS_NAMES = 'viewdescription';\nconst VIEWDESCRIPTION_TEXT__CLASS_NAMES = 'viewdescription-text';\n\nconst viewDescriptionPropTypes = {\n  description: PropTypes.string.isRequired,\n  onEditClick: PropTypes.func.isRequired\n};\n\n/**\n * The ViewDescription component is used to display the description of the\n * project with a button used to edit it.\n */\nexport const ViewDescription = ({ className, description, onEditClick, ...props }) => {\n  const viewDescriptionClassNames = classNames(VIEWDESCRIPTION__CLASS_NAMES, className);\n  return (\n    <div className={viewDescriptionClassNames} {...props}>\n      <LoadingConsumer>\n        {loading => (\n          <React.Fragment>\n            <Text className={VIEWDESCRIPTION_TEXT__CLASS_NAMES} loading={loading}>\n              {description}\n            </Text>\n            <Spacing left={M}>\n              <Button onClick={onEditClick} loading={loading}>\n                Edit\n              </Button>\n            </Spacing>\n          </React.Fragment>\n        )}\n      </LoadingConsumer>\n    </div>\n  );\n};\nViewDescription.propTypes = viewDescriptionPropTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ViewDescription.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { AdditionalText, List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND, TWO_LINES } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES = 'projectrepresentationslistcard';\n\nconst propTypes = {\n  representations: PropTypes.array.isRequired\n};\n\nconst defaultProps = {\n  representations: []\n};\n\n/**\n * The ProjectRepresentationsListCard is a Card listing all the representations\n * of a project.\n */\nexport const ProjectRepresentationsListCard = ({\n  className,\n  projectName,\n  representations,\n  ...props\n}) => {\n  const cardClassNames = classNames(PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={cardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Representations\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <Representations projectName={projectName} representations={representations} />\n    </Card>\n  );\n};\nProjectRepresentationsListCard.propTypes = propTypes;\nProjectRepresentationsListCard.defaultProps = defaultProps;\n\n/**\n * Renders the representations of the card or a text indicating the lack of\n * representations.\n */\nconst Representations = ({ projectName, representations }) => {\n  if (representations.length > 0) {\n    return <RepresentationsList projectName={projectName} representations={representations} />;\n  }\n  return <EmptyRepresentations />;\n};\n\n/**\n * Renders the list of representations.\n */\nconst RepresentationsList = ({ projectName, representations }) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {representations.map(representation => (\n      <Tile kind={TWO_LINES} key={representation.name}>\n        <div>\n          <MainText>{representation.name}</MainText>\n          <AdditionalText>{representation.descriptionName}</AdditionalText>\n        </div>\n      </Tile>\n    ))}\n  </List>\n);\n\n/**\n * Renders a text indicating the lack of representations.\n */\nconst EmptyRepresentations = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <LoadingConsumer>\n      {loading => <Text loading={loading}>No representation has been found on the project.</Text>}\n    </LoadingConsumer>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectRepresentationsListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND, SINGLE_LINE } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, SMALL, LARGE } from '../text/TextConstants';\n\nconst PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES = 'projectsemanticresourceslistcard';\n\nconst propTypes = {\n  semanticResources: PropTypes.array.isRequired\n};\n\nconst defaultProps = {\n  semanticResources: []\n};\n\n/**\n * The ProjectSemanticResourcesListCard is a Card displaying all the semantic\n * resources of a project.\n */\nexport const ProjectSemanticResourcesListCard = ({ className, semanticResources, ...props }) => {\n  const cardClassNames = classNames(PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={cardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Semantic Resources\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <SemanticResources semanticResources={semanticResources} />\n    </Card>\n  );\n};\nProjectSemanticResourcesListCard.propTypes = propTypes;\nProjectSemanticResourcesListCard.defaultProps = defaultProps;\n\n/**\n * Renders the semantic resources of the card or a text indicating the lack of\n * semantic resources.\n */\nconst SemanticResources = ({ semanticResources }) => {\n  if (semanticResources.length > 0) {\n    return <SemanticResourcesList semanticResources={semanticResources} />;\n  }\n  return <EmptySemanticResources />;\n};\n\n/**\n * Renders the list of semantic resources.\n */\nconst SemanticResourcesList = ({ semanticResources }) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {semanticResources.map(resource => (\n      <Tile kind={SINGLE_LINE} key={resource.path}>\n        <MainText>{resource.path}</MainText>\n        <Text size={SMALL}>{resource.size}</Text>\n      </Tile>\n    ))}\n  </List>\n);\n\n/**\n * Renders a text indicating the lack of semantic resources.\n */\nconst EmptySemanticResources = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <LoadingConsumer>\n      {loading => (\n        <Text loading={loading}>No semantic resource has been found on the project.</Text>\n      )}\n    </LoadingConsumer>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectSemanticResourcesListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport { actionCreator, dispatcher } from '../../components/dashboard/DashboardViewDispatcher';\n\n/**\n * The DashboardViewStateContainer is the stateful component used to manipulate\n * the state of the dashboard.\n */\nexport class DashboardViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    try {\n      const jsonDashboardResponse = await fetch(`/api/dashboard`);\n      let action;\n      if (jsonDashboardResponse.ok) {\n        const dashboardResponse = await jsonDashboardResponse.json();\n        action = actionCreator.newHandleDashboardFetchedAction(dashboardResponse);\n      } else {\n        const { statusText, status } = jsonDashboardResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, dashboard } = this.state;\n\n    return render(stateId, error, dashboard);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/dashboard/DashboardViewStateContainer.js","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime-module.js\n// module id = 138\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime.js\n// module id = 139\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  DASHBOARD_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_DASHBOARD__ACTION,\n  INITIALIZE__ACTION\n} from './DashboardViewFiniteStateMachine';\n\n/**\n * The reducer of the dashboard view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the dashboard.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return { stateId: LOADING__STATE, dashboard: { projects: [] }, error: null };\n    case HANDLE_FETCHED_DASHBOARD__ACTION:\n      return { stateId: DASHBOARD_LOADED__STATE, dashboard: action.dashboard, error: null };\n    case HANDLE_ERROR__ACTION:\n      return { stateId: ERROR__STATE, dashboard: state.dashboard, error: action.error };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle dashboard fetched action used to go from the loading state\n * to the dashboard loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleDashboardFetchedAction = response => ({\n  kind: HANDLE_FETCHED_DASHBOARD__ACTION,\n  dashboard: response\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the dashboard',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the dashboard',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleDashboardFetchedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport {\n  actionCreator,\n  dispatcher\n} from '../../components/projects/listprojects/ListProjectsViewDispatcher';\n\n/**\n * The ListProjectsViewStateContainer is the stateful component used to manipulate\n * the list of the projects.\n */\nexport class ListProjectsViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    try {\n      const jsonProjectsResponse = await fetch(`/api/projects`);\n      let action;\n      if (jsonProjectsResponse.ok) {\n        const projectsResponse = await jsonProjectsResponse.json();\n        action = actionCreator.newHandleProjectsFetchedAction(projectsResponse);\n      } else {\n        const { statusText, status } = jsonProjectsResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, projects } = this.state;\n\n    return render(stateId, error, projects);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/ListProjectsViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  NO_PROJECTS_LOADED__STATE,\n  PROJECTS_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_PROJECTS__ACTION,\n  INITIALIZE__ACTION\n} from './ListProjectsViewFiniteStateMachine';\n\n/**\n * The reducer of the list projects view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the list projects view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return { stateId: LOADING__STATE, projects: [], error: undefined };\n    case HANDLE_FETCHED_PROJECTS__ACTION:\n      if (action.projects.length === 0) {\n        return { stateId: NO_PROJECTS_LOADED__STATE, projects: [], error: undefined };\n      }\n      return { stateId: PROJECTS_LOADED__STATE, projects: action.projects, error: undefined };\n    case HANDLE_ERROR__ACTION:\n      return { stateId: ERROR__STATE, projects: state.projects, error: action.error };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle projects fetched action used to go from the loading state\n * to the projects loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleProjectsFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PROJECTS__ACTION,\n  projects: response.projects\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the list of projects',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the projects list',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleProjectsFetchedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport {\n  actionCreator,\n  dispatcher\n} from '../../components/projects/newproject/NewProjectViewDispatcher';\n\n/**\n * The NewProjectViewStateContainer is the stateful component used to manipulate\n * the state of the NewProjectView.\n */\nexport class NewProjectViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.handleNameChange = this.handleNameChange.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  handleNameChange(event) {\n    const name = event.target.value;\n    this.dispatch(actionCreator.newModifyNameAction(name));\n  }\n\n  async handleSubmit(event) {\n    const { name } = this.state;\n\n    event.preventDefault();\n\n    try {\n      const body = { name };\n      const request = new Request('/api/projects', {\n        method: 'POST',\n        body: JSON.stringify(body)\n      });\n      const jsonResponse = await fetch(request);\n      const { ok, statusText } = jsonResponse;\n      if (ok) {\n        this.dispatch(actionCreator.newCreatedProjectAction());\n      } else {\n        let message = statusText;\n        const response = await jsonResponse.json();\n        if (response) {\n          message = response.message;\n        }\n        this.dispatch(actionCreator.newInvalidResponseAction(message));\n      }\n    } catch (error) {\n      this.dispatch(actionCreator.newUnexpectedErrorAction(error.message));\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, errors, isValid, name, nameIsValid, nameErrors } = this.state;\n\n    return render(\n      stateId,\n      errors,\n      isValid,\n      this.handleSubmit,\n      name,\n      nameIsValid,\n      nameErrors,\n      this.handleNameChange\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/NewProjectViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\n\nimport {\n  FSM,\n  INITIAL__STATE,\n  INITIALIZE__ACTION,\n  MODIFY_NAME__ACTION,\n  PRISTINE__STATE,\n  MODIFIED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_CREATED_PROJECT__ACTION,\n  REDIRECT__STATE\n} from './NewProjectViewFiniteStateMachine';\n\n/**\n * The reducer of the new project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the new project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return {\n        stateId: PRISTINE__STATE,\n        errors: [],\n        isValid: false,\n        name: '',\n        nameIsValid: false,\n        nameErrors: []\n      };\n    case MODIFY_NAME__ACTION:\n      const { name } = action;\n      const nameErrors = validateName(name);\n      const nameIsValid = nameErrors.length === 0;\n      const isValid = nameIsValid;\n      return {\n        stateId: MODIFIED__STATE,\n        errors: [],\n        isValid,\n        name,\n        nameIsValid,\n        nameErrors\n      };\n    case HANDLE_ERROR__ACTION:\n      const errors = [].concat(state.errors);\n      errors.push(action.message);\n      return {\n        stateId: MODIFIED__STATE,\n        errors,\n        isValid: false\n      };\n    case HANDLE_CREATED_PROJECT__ACTION:\n      return {\n        stateId: REDIRECT__STATE\n      };\n    default:\n      return state;\n  }\n};\n\n/**\n * Validates the given name and returns the errors found.\n * @param {*} name\n * @returns An array of string describing the errors found\n */\nconst validateName = name => {\n  const errors = [];\n\n  if (name.trim().length === 0) {\n    errors.push('The name is required');\n  }\n\n  const invalidCharacters = ['\\\\', '/', ':', '*', '?', '\"', '<', '>', '|'];\n  invalidCharacters.forEach(invalidCharacter => {\n    if (name.indexOf(invalidCharacter) !== -1) {\n      errors.push(`The character ${invalidCharacter} cannot be used in the name`);\n    }\n  });\n\n  if (name.trim() === '.' || name.trim() === '..') {\n    errors.push('The name cannot have the value . or ..');\n  }\n\n  if (name.length > 0 && name.charAt(name.length - 1) === '.') {\n    errors.push('The name cannot end with a dot');\n  }\n\n  if (name.length > 0 && name.trim().length === 0) {\n    errors.push('The name cannot be composed of whitespaces');\n  } else if (name.length !== name.trim().length) {\n    errors.push('Remove any whitespace at the beginning or the end');\n  }\n\n  return errors;\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * pristine state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns a new modify name action used to change the value of the name and\n * trigger the various validation rules.\n *\n * @param {*} name The name\n */\nconst newModifyNameAction = name => ({\n  kind: MODIFY_NAME__ACTION,\n  name\n});\n\n/**\n * Returns a new unexpected error action used to handle an unexpected error in\n * our code.\n *\n * @param {*} message The message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  message: 'An error has occured during the processing of the response'\n});\n\n/**\n * Returns a new handle created project action used to redirect the user interface\n * to the new project created.\n */\nconst newCreatedProjectAction = () => ({\n  kind: HANDLE_CREATED_PROJECT__ACTION\n});\n\n/**\n * Returns a new invalid error action used to handle an invalid response from\n * the server.\n *\n * @param {*} message The message\n */\nconst newInvalidResponseAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  message\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newModifyNameAction,\n  newUnexpectedErrorAction,\n  newCreatedProjectAction,\n  newInvalidResponseAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport { actionCreator, dispatcher } from '../../components/projects/project/ProjectViewDispatcher';\n\n/**\n * The ProjectViewStateContainerWithoutRouter is the stateful component used to\n * manipulate the state of the ProjectView.\n *\n * It leverages the router API in order to retrieve the name of the project to\n * display from the URL.\n */\nclass ProjectViewStateContainerWithoutRouter extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleActivityClick = this.handleActivityClick.bind(this);\n    this.handleTabClick = this.handleTabClick.bind(this);\n    this.handleNewDescription = this.handleNewDescription.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    await this.updateData();\n  }\n\n  async updateData() {\n    try {\n      const { projectName } = this.props.match.params;\n      const jsonProjectResponse = await fetch(`/api/projects/${projectName}`);\n      let action;\n      if (jsonProjectResponse.ok) {\n        const projectResponse = await jsonProjectResponse.json();\n        action = actionCreator.newHandleProjectFetchedAction(projectResponse);\n      } else {\n        const { statusText, status } = jsonProjectResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  async handleTabClick(index) {\n    const { project: { pages } } = this.state;\n    let pageIdentifier = pages[index].identifier;\n    const { projectName } = this.props.match.params;\n    try {\n      const jsonPageResponse = await fetch(`/api/projects/${projectName}/pages/${pageIdentifier}`);\n      const pageResponse = await jsonPageResponse.json();\n      const action = actionCreator.newHandlePageFetchedAction(pageResponse);\n      this.dispatch(action);\n    } catch (error) {\n      // TO be handled\n    }\n  }\n\n  async handleActivityClick(projectName, pageIdentifier, sectionIdentifier, activityIdentifier) {\n    try {\n      const request = new Request(\n        `/api/projects/${projectName}/pages/${pageIdentifier}/sections/${sectionIdentifier}/activities/${activityIdentifier}/execute`,\n        {\n          method: 'POST'\n        }\n      );\n      const jsonResponse = await fetch(request);\n      const { ok } = jsonResponse;\n      if (!ok) {\n        // To be handled\n      }\n      await this.updateData();\n    } catch (error) {\n      // To be handled\n    }\n  }\n\n  async handleNewDescription(description) {\n    const { project } = this.state;\n    let oldDescription = project.description;\n    if (oldDescription === undefined) {\n      oldDescription = '';\n    }\n\n    if (description !== oldDescription) {\n      const { projectName } = this.props.match.params;\n      try {\n        const body = JSON.stringify({ description });\n        const request = new Request(`/api/projects/${projectName}`, { method: 'PUT', body });\n        const jsonResponse = await fetch(request);\n        const response = await jsonResponse.json();\n        const action = actionCreator.newHandleDescriptionUpdatedAction(response);\n        this.dispatch(action);\n      } catch (error) {\n        // To be handled\n      }\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, project, pageIdentifier } = this.state;\n\n    return render(\n      stateId,\n      error,\n      project,\n      pageIdentifier,\n      this.handleTabClick,\n      this.handleActivityClick,\n      this.handleNewDescription\n    );\n  }\n}\nexport const ProjectViewStateContainer = withRouter(ProjectViewStateContainerWithoutRouter);\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/ProjectViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  PROJECT_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_PAGE__ACTION,\n  HANDLE_FETCHED_PROJECT__ACTION,\n  HANDLE_DESCRIPTION_UPDATED__ACTION,\n  INITIALIZE__ACTION\n} from './ProjectViewFiniteStateMachine';\n\n/**\n * The reducer of the project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return {\n        stateId: LOADING__STATE,\n        project: undefined,\n        pageIdentifier: undefined,\n        error: undefined\n      };\n    case HANDLE_FETCHED_PROJECT__ACTION:\n      let pageIdentifier;\n      if (action.project.pages.length > 0) {\n        pageIdentifier = action.project.pages[0].identifier;\n      }\n      return {\n        stateId: PROJECT_LOADED__STATE,\n        project: action.project,\n        pageIdentifier,\n        error: undefined\n      };\n    case HANDLE_FETCHED_PAGE__ACTION:\n      const newFetchedPageState = {\n        stateId: PROJECT_LOADED__STATE,\n        project: state.project,\n        pageIdentifier: action.page.identifier,\n        error: undefined\n      };\n      newFetchedPageState.project.currentPageSections = action.page.sections;\n      return newFetchedPageState;\n    case HANDLE_DESCRIPTION_UPDATED__ACTION:\n      const newDescriptionUpdatedState = {\n        stateId: PROJECT_LOADED__STATE,\n        project: state.project,\n        pageIdentifier: state.pageIdentifier,\n        error: undefined\n      };\n      newDescriptionUpdatedState.project = {\n        ...newDescriptionUpdatedState.project,\n        description: action.description\n      };\n      return newDescriptionUpdatedState;\n    case HANDLE_ERROR__ACTION:\n      return {\n        stateId: ERROR__STATE,\n        project: state.project,\n        pageIdentifier: state.pageIdentifier,\n        error: action.error\n      };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle project fetched action used to go from the loading state\n * to the project loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleProjectFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PROJECT__ACTION,\n  project: response\n});\n\n/**\n * Returns an handle page fetched action used to change the current workflow\n * page.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandlePageFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PAGE__ACTION,\n  page: response\n});\n\n/**\n * Returns an handle description updated action used to change the current\n * description of the project.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleDescriptionUpdatedAction = response => ({\n  kind: HANDLE_DESCRIPTION_UPDATED__ACTION,\n  description: response.description\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the project',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the project',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleProjectFetchedAction,\n  newHandlePageFetchedAction,\n  newHandleDescriptionUpdatedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { BOLD, EXTRA_EXTRA_LARGE } from '../text/TextConstants';\n\nimport './Navbar.css';\n\nconst NAVBAR__CLASS_NAMES = 'navbar';\nconst NAVBAR_CONTAINER__CLASS_NAMES = 'navbar-container';\nconst NARBAR_TITLE__CLASS_NAMES = 'navbar-title title-xxl';\n\n/**\n * The Navbar is used to display a navigation bar on top of the user interface.\n * It can contain the title of the application and various actions.\n */\nexport const Navbar = ({ className, ...props }) => {\n  const navClassNames = classNames(NAVBAR__CLASS_NAMES, className);\n  return (\n    <nav className={navClassNames} {...props}>\n      <Spacing top={S} right={M} bottom={S} left={M}>\n        <div className={NAVBAR_CONTAINER__CLASS_NAMES}>\n          <div className={NARBAR_TITLE__CLASS_NAMES}>\n            <Text weight={BOLD} size={EXTRA_EXTRA_LARGE}>\n              Eclipse Sirius\n            </Text>\n          </div>\n        </div>\n      </Spacing>\n    </nav>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/navbar/Navbar.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/.checkstyle b/plugins/org.eclipse.sirius.server.frontend/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.frontend/.classpath b/plugins/org.eclipse.sirius.server.frontend/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.frontend/.project b/plugins/org.eclipse.sirius.server.frontend/.project
deleted file mode 100644
index 8bf6e0f..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.frontend</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.frontend/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.frontend/META-INF/MANIFEST.MF
deleted file mode 100644
index c0bdf8c..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.frontend;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.sirius.server;bundle-version="6.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- javax.servlet;bundle-version="3.1.0"
-Bundle-Activator: org.eclipse.sirius.server.frontend.internal.SiriusServerFrontendPlugin$Implementation
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.sirius.server.frontend.internal;x-internal:=true
-Eclipse-BundleShape: dir
-Automatic-Module-Name: org.eclipse.sirius.server.frontend
diff --git a/plugins/org.eclipse.sirius.server.frontend/about.html b/plugins/org.eclipse.sirius.server.frontend/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/build.properties b/plugins/org.eclipse.sirius.server.frontend/build.properties
deleted file mode 100644
index ea6c65a..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               sirius-frontend/,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.frontend/plugin.properties b/plugins/org.eclipse.sirius.server.frontend/plugin.properties
deleted file mode 100644
index 51edd05..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server Front End
-providerName = Eclipse Modeling Project
-
-SiriusServerFrontendConfigurator_label = The SiriusServerConfigurator of the front-end
-SiriusServerFrontendConfigurator_description = Used to configure the static resources of the Sirius server
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/plugin.xml b/plugins/org.eclipse.sirius.server.frontend/plugin.xml
deleted file mode 100644
index 48c58d3..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.frontend.SiriusServerFrontendConfigurator"
-         name="%SiriusServerFrontendConfigurator_label"
-         point="org.eclipse.sirius.server.siriusServerConfigurator">
-      <descriptor
-            class="org.eclipse.sirius.server.frontend.internal.SiriusServerFrontendConfigurator"
-            description="%SiriusServerFrontendConfigurator_description"
-            id="org.eclipse.sirius.server.frontend.SiriusServerFrontendConfigurator"
-            label="%SiriusServerFrontendConfigurator_label">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.frontend/pom.xml b/plugins/org.eclipse.sirius.server.frontend/pom.xml
deleted file mode 100644
index 3d2c47e..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.frontend</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/asset-manifest.json b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/asset-manifest.json
deleted file mode 100644
index 6fa9b47..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/asset-manifest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "main.css": "static/css/main.b6a750d2.css",
-  "main.css.map": "static/css/main.b6a750d2.css.map",
-  "main.js": "static/js/main.7441a635.js",
-  "main.js.map": "static/js/main.7441a635.js.map"
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/favicon.ico b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/favicon.ico
deleted file mode 100644
index d0c367b..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/index.html b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/index.html
deleted file mode 100644
index 0836353..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>Eclipse Sirius</title><link href="/static/css/main.b6a750d2.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script type="text/javascript" src="/static/js/main.7441a635.js"></script></body></html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/manifest.json b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/manifest.json
deleted file mode 100644
index 69710f8..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/manifest.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "short_name": "Sirius",
-  "name": "Eclipse Sirius",
-  "icons": [
-    {
-      "src": "favicon.ico",
-      "sizes": "64x64 32x32 24x24 16x16",
-      "type": "image/x-icon"
-    }
-  ],
-  "start_url": "./index.html",
-  "display": "standalone",
-  "theme_color": "#000000",
-  "background_color": "#ffffff"
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/service-worker.js b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/service-worker.js
deleted file mode 100644
index f728436..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/service-worker.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";var precacheConfig=[["/index.html","4e001160dc159faa88a70608986cbf67"],["/static/css/main.b6a750d2.css","358568e143f3a6a04d9d1d553b4628e4"],["/static/js/main.7441a635.js","8ae73573fdc4b5365adada3aeac0788c"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching),r="index.html";(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,r),t=urlsToCacheKeys.has(n));var a="/index.html";!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],e.request.url)&&(n=new URL(a,self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css
deleted file mode 100644
index 575666e..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.aside{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:250px}.aside a{display:block;padding:var(--layoutDimension-xs)}.aside a:hover{background-color:var(--dark-snow)}.aside-mainlinks{border-bottom:1px solid var(--dark-smoke);padding-bottom:var(--layoutDimension-s);margin-bottom:var(--layoutDimension-m)}.aside-mainlinks a,.aside-mainlinks a:active,.aside-mainlinks a:hover{color:var(--slate)}.aside-additionallinks a,.aside-additionallinks a:active,.aside-additionallinks a:hover{color:var(--silver);font-weight:var(--fontWeight-normal)}.card{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float);border-radius:var(--borderRadius-small)}.card-divider{border-top:1px solid var(--light-smoke)}.errorcard-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.infocard-container{display:grid;grid-template-rows:-webkit-min-content min-content;grid-template-rows:min-content min-content;grid-row-gap:var(--layoutDimension-m)}.infocard-title{text-align:center;font-size:var(--fontSize-xxxl);font-weight:var(--fontWeight-bold);line-height:var(--lineHeight-xxxl)}.infocard-message{text-align:center;font-size:var(--fontSize-l);line-height:var(--lineHeight-l)}.loading{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.loading div{width:6px;height:6px;margin:0 3px;border-radius:100%;background-color:var(--blue);-webkit-animation-name:loading;animation-name:loading;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:both;animation-fill-mode:both}.loading div:nth-child(0n+1){-webkit-animation-delay:0s;animation-delay:0s}.loading div:nth-child(0n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.loading div:nth-child(0n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes loading{0%,85%,to{opacity:0}35%,50%{opacity:1}}@keyframes loading{0%,85%,to{opacity:0}35%,50%{opacity:1}}.text.loading{height:2ex;color:var(--white);background-color:var(--white);-webkit-animation-name:textloading;animation-name:textloading;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes textloading{0%{color:var(--white);background-color:var(--white)}to{color:var(--smoke);background-color:var(--smoke)}}@keyframes textloading{0%{color:var(--white);background-color:var(--white)}to{color:var(--smoke);background-color:var(--smoke)}}.xxl{font-size:var(--fontSize-xxl);line-height:var(--lineHeight-xxl)}.xl{font-size:var(--fontSize-xl);line-height:var(--lineHeight-xl)}.l{font-size:var(--fontSize-l);line-height:var(--lineHeight-l)}.m{font-size:var(--fontSize-m);line-height:var(--lineHeight-m)}.s{font-size:var(--fontSize-s);line-height:var(--lineHeight-s)}.xs{font-size:var(--fontSize-xs);line-height:var(--lineHeight-xs)}.extrabold{font-weight:var(--fontWeight-extraBold)}.bold{font-weight:var(--fontWeight-bold)}.semibold{font-weight:var(--fontWeight-semiBold)}.regular{font-weight:var(--fontWeight-regular)}.light{font-weight:var(--fontWeight-light)}.hideoverflow{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.dashboardview{display:grid;grid-template-columns:1fr;grid-template-rows:-webkit-min-content min-content;grid-template-rows:min-content min-content;grid-row-gap:var(--layoutDimension-l)}.dashboardview .info{display:grid;grid-template-rows:1fr;grid-template-columns:1fr 1fr 1fr;grid-column-gap:var(--layoutDimension-l)}.projectsinfo{background-color:var(--blue);color:var(--white)}.viewpointsinfo{background-color:var(--orange);color:var(--white)}.metamodelsinfo{background-color:var(--purple);color:var(--white)}.dashboardview .projects-body{display:grid;grid-auto-rows:1fr;grid-template-rows:1fr 1fr;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-row-gap:var(--layoutDimension-l);grid-column-gap:var(--layoutDimension-l)}.blankcard-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.list--separated .tile{border-bottom:1px solid var(--light-smoke)}.list--separated .tile:last-child{border-bottom:0}.list--highlighted .tile:hover{background-color:var(--light-snow)}.tile{--tileLayoutPadding:16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:0 var(--tileLayoutPadding)}.tile--singleline{--tileSingleLineHeight:48px;height:var(--tileSingleLineHeight)}.tile--twoline{--tileTwoLineHeight:60px;height:var(--tileTwoLineHeight)}.tile--threeline{--tileThreeLineHeight:76px;height:var(--tileThreeLineHeight)}.tile-maintext{margin-right:auto}.tile-additionaltext{color:var(--silver)}.tile-additionalicon{--tileAdditionalIconPadding:16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding-left:var(--tileAdditionalIconPadding);cursor:pointer}.title-additionalicon:hover svg{fill:var(--blue)}.projectslistcard .tile-maintext{font-weight:var(--fontWeight-semiBold)}.button{height:36px;min-width:90px;cursor:pointer;border-radius:2px;text-transform:capitalize}.button:hover{-webkit-box-shadow:var(--boxShadow-emboss);box-shadow:var(--boxShadow-emboss)}.button:active{-webkit-box-shadow:var(--boxShadow-deboss);box-shadow:var(--boxShadow-deboss)}.button[disabled],.button[disabled]:active,.button[disabled]:hover{background-color:var(--smoke);-webkit-box-shadow:none;box-shadow:none}.button-container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr}.button-label{grid-column:1/2;grid-row:1/2;z-index:0}.button-loadingindicator{grid-column:1/2;grid-row:1/2;z-index:2}.button--loading{cursor:progress;background-color:var(--white);color:var(--slate)}.button--loading,.button--loading:active,.button--loading:hover{-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--loading[disabled],.button--loading[disabled]:active,.button--loading[disabled]:hover{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--loading .button-label{visibility:hidden}.button--default{background-color:var(--white);color:var(--slate);-webkit-box-shadow:var(--boxShadow-border);box-shadow:var(--boxShadow-border)}.button--default:active,.button--default:hover{background-color:var(--blue);color:var(--white)}.button--default .button-loadingindicator{display:none}.button--primary{background-color:var(--blue);color:var(--white)}.button--primary .button-loadingindicator{display:none}.button--success{background-color:var(--green);color:var(--white)}.button--success .button-loadingindicator{display:none}.button--warning{background-color:var(--yellow);color:var(--white)}.button--warning .button-loadingindicator{display:none}.button--danger{background-color:var(--red);color:var(--white)}.button--danger .button-loadingindicator{display:none}.textfield{display:block;width:100%;font-size:var(--fontSize-s);line-height:var(--lineHeight-m);padding:var(--layoutDimension-xs) var(--layoutDimension-s);border-radius:var(--borderRadius-small);border:1px solid var(--smoke);background-clip:padding-box;overflow:visible}.textfield,.textfield:focus{color:var(--slate);background-color:var(--white)}.textfield:focus{border-color:var(--blue);outline:0;-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float)}.textfield.fielderror{border-color:var(--red)}.error{color:var(--red)}.error:first-child{padding:0}.newprojectview{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.newprojectview .newprojectcard{max-width:var(--layoutDimension-xxxl)}.iconrun{fill:var(--green);stroke:var(--green)}.iconrun:hover{fill:var(--light-green);stroke:var(--light-green)}.iconrun:active{fill:var(--dark-green);stroke:var(--dark-green)}.tab{padding:var(--layoutDimension-m) var(--layoutDimension-s);border-bottom:5px solid var(--light-smoke);overflow:hidden;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-align:center}.tab:hover{border-bottom:5px solid var(--light-blue)}.tab--selected{border-bottom:5px solid var(--blue)}.tabbar{display:grid;grid-template-columns:-webkit-min-content 1fr -webkit-min-content;grid-template-columns:min-content 1fr min-content;border-top:1px solid var(--light-smoke);border-bottom:1px solid var(--light-smoke);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tabbar-tabs{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(10px,1fr));grid-column-gap:var(--layoutDimension-m);padding:0 var(--layoutDimension-m)}.tabbar-nav{padding:var(--layoutDimension-m) var(--layoutDimension-s);color:var(--blue);font-weight:var(--fontWeight-bold)}.tabbar-nav:first-child{border-right:1px solid var(--light-smoke)}.tabbar-nav:last-child{border-left:1px solid var(--light-smoke)}.tabbar-nav:hover{cursor:pointer;color:var(--white);background-color:var(--blue)}.tabbar-nav--disabled{color:var(--light-smoke)}.tabbar-nav--disabled:hover{cursor:default;color:var(--light-smoke);background-color:var(--white)}.tabbar-nav--contain-selection{color:var(--white);background-color:var(--light-blue)}.workflowcard .card-divider{margin:0 var(--layoutDimension-m)}.section .listitem{display:grid;grid-template-columns:auto -webkit-min-content;grid-template-columns:auto min-content;-ms-flex-align:center;align-items:center}.editdescription{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.editdescription input{margin-right:auto}.viewdescription{display:grid;grid-template-columns:1fr -webkit-min-content;grid-template-columns:1fr min-content}.viewdescription-text{-ms-flex-item-align:center;align-self:center}.projectview{display:grid;grid-template-rows:-webkit-min-content auto;grid-template-rows:min-content auto;grid-template-columns:1fr;grid-row-gap:var(--layoutDimension-l)}.projectview-main{display:grid;grid-template-rows:1fr;grid-template-columns:1fr 1fr;grid-column-gap:var(--layoutDimension-l)}.projectview-details .card{margin-top:var(--layoutDimension-l)}.projectview-details .card:first-child{margin-top:0}.navbar{background-color:var(--white);-webkit-box-shadow:var(--boxShadow-float);box-shadow:var(--boxShadow-float)}.navbar-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.navbar-title{margin:auto 0}.app{display:grid;grid-template-columns:1fr;grid-template-rows:[navbar] -webkit-min-content [container] minmax(-webkit-max-content,auto);grid-template-rows:[navbar] min-content [container] minmax(max-content,auto);min-height:100vh;background-color:var(--snow)}.app-navbar{grid-row-start:navbar}.app-container{display:grid;grid-template-columns:[aside] -webkit-min-content [main] auto;grid-template-columns:[aside] min-content [main] auto;grid-row-start:container}.fullscreen .app-container{display:grid;grid-template-columns:1fr}.fullscreen .app-navbar{display:none}.ie11{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:#273444;background-color:#eff2f7}.ie11 .semibold{font-weight:600}.ie11 .regular{font-weight:400}.ie11 .light{font-weight:300}.ie11 .xl{font-size:28px;line-height:38px}.ie11 .l{font-size:20px;line-height:30px}.ie11 .m{font-size:16px;line-height:22px}.ie .s{font-size:14px;line-height:20px}.ie11 .xs{font-size:12px;line-height:18px}.ie11 .card{background-color:#fff;-webkit-box-shadow:0 1px 4px 0 rgba(31,45,61,.15);box-shadow:0 1px 4px 0 rgba(31,45,61,.15)}.ie11 .projectheadercard{margin-bottom:32px}.ie11 .projectheadercard .viewdescription{display:-ms-grid;-ms-grid-columns:1fr min-content}.ie11 .projectheadercard .viewdescription .text{-ms-grid-row:1;-ms-grid-column:1;-ms-grid-row-align:center}.ie11 .projectheadercard .viewdescription div:last-child{-ms-grid-row:1;-ms-grid-column:2}.ie11 .projectview-main{display:-ms-grid;-ms-grid-columns:1fr 32px 1fr;-ms-grid-rows:1fr}.ie11 .projectview-main .projectview-details{-ms-grid-row:1;-ms-grid-column:1}.ie11 .projectview-main .projectview-workflow{-ms-grid-row:1;-ms-grid-column:3}.ie11 .projectview-main .projectview-details .projectrepresentationslistcard{margin-top:32px}.ie11 .tile{padding:0 16px}.ie11 .tile--singleline{height:48px}.ie11 .tile--twoline{height:60px}.ie11 .tabbar{display:-ms-grid;-ms-grid-columns:min-content 1fr min-content;-ms-grid-rows:1fr;border-top:1px solid hsl(212.3,26.5%,90.4%);border-bottom:1px solid hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tabbar-nav{padding:16px 8px;font-weight:700;color:#1ab2ff}.ie11 .tabbar .tabbar-nav--disabled{color:hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tabbar-nav:first-child{border-right:1px solid hsl(212.3,26.5%,90.4%);-ms-grid-row:1;-ms-grid-column:1}.ie11 .tabbar .tabbar-tabs{display:-ms-grid;-ms-grid-columns:1fr 16px 1fr 16px 1fr;padding:0 16px;-ms-grid-row:1;-ms-grid-column:2}.ie11 .tabbar .tab{padding:16px 8px;border-bottom:5px solid hsl(212.3,26.5%,90.4%)}.ie11 .tabbar .tab--selected{border-bottom:5px solid #1ab2ff}.ie11 .tabbar .tab:first-child{-ms-grid-row:1;-ms-grid-column:1}.ie11 .tabbar .tab:nth-child(2){-ms-grid-row:1;-ms-grid-column:3}.ie11 .tabbar .tab:last-child{-ms-grid-row:1;-ms-grid-column:5}.ie11 .tabbar .tabbar-nav:last-child{border-left:1px solid hsl(212.3,26.5%,90.4%);-ms-grid-row:1;-ms-grid-column:3}.ie11 .iconrun{fill:#14d266;stroke:#14d266}abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}:focus{outline:0}body{line-height:1;color:#000;background:#fff}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#fff;color:#000}mark{font-style:inherit;font-weight:inherit}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #000;margin:1em 0;padding:0}input,select{vertical-align:middle}a,a:hover,a:visited{text-decoration:none}ol,ul{list-style:none}[role=button],button,input[type=button],input[type=reset],input[type=submit]{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-appearance:button;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}:root{--light-blue:#80d4ff;--blue:#1ab2ff;--dark-blue:#0099e6;--light-green:#2deb80;--green:#14d266;--dark-green:#0fa34f;--light-yellow:#ffd561;--yellow:#ffc72e;--dark-yellow:#fab700;--light-orange:hsl(15.5,100%,74.3%);--orange:hsl(15.5,100%,64.3%);--dark-orange:hsl(15.5,100%,54.3%);--light-red:#ff7a7a;--red:#ff4747;--dark-red:#ff1414;--light-pink:#ff7ae4;--pink:#ff47da;--dark-pink:#ff14d0;--light-purple:#a38af4;--purple:#7f5def;--dark-purple:#5a2eea;--black:#000;--darkness:#1f2d3d;--steel:hsl(213.1,27.1%,21%);--slate:hsl(214.3,18.9%,29%);--silver:hsl(215.3,16%,58.4%);--dark-smoke:hsl(212.3,26%,80.4%);--smoke:hsl(211.6,27.5%,86.5%);--light-smoke:hsl(212.3,26.5%,90.4%);--dark-snow:hsl(221.5,33.3%,92.4%);--snow:hsl(217.5,33.3%,95.3%);--light-snow:#f8f9fc;--white:#fff;--layoutDimension-xs:4px;--layoutDimension-s:8px;--layoutDimension-m:16px;--layoutDimension-l:32px;--layoutDimension-xl:64px;--layoutDimension-xxl:128px;--layoutDimension-xxxl:600px;--fontSize-xs:12px;--fontSize-s:14px;--fontSize-m:16px;--fontSize-l:20px;--fontSize-xl:28px;--fontSize-xxl:34px;--fontSize-xxxl:64px;--fontWeight-light:300;--fontWeight-regular:400;--fontWeight-semiBold:600;--fontWeight-bold:700;--fontWeight-extraBold:800;--lineHeight-xs:18px;--lineHeight-s:20px;--lineHeight-m:22px;--lineHeight-l:30px;--lineHeight-xl:38px;--lineHeight-xxl:50px;--lineHeight-xxxl:70px;--boxShadow-emboss:inset 0 -2px 0 0 rgba(31,45,61,.15);--boxShadow-deboss:inset 0 2px 0 0 rgba(31,45,61,.15);--boxShadow-float:0 1px 4px 0 rgba(31,45,61,.15);--boxShadow-border:0 0 0 1px var(--light-smoke);--borderRadius-small:2px;--borderRadius-medium:4px;--borderRadius-large:8px;--borderRadius-extraLarge:16px;--borderRadius-circle:50%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--steel)}a,a:active,a:hover{color:var(--dark-blue);font-weight:var(--fontWeight-semiBold)}
-/*# sourceMappingURL=main.b6a750d2.css.map*/
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css.map b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css.map
deleted file mode 100644
index a84b25d..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/css/main.b6a750d2.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/aside/Aside.css","components/cards/Card.css","components/error/ErrorCard.css","components/info/InfoCard.css","components/loading/Loading.css","components/text/Text.css","components/dashboard/DashboardView.css","components/blank/BlankCard.css","components/list/List.css","components/projects/ProjectsListCard.css","components/buttons/Button.css","components/form/Form.css","components/projects/newproject/NewProjectView.css","components/icons/IconRun.css","components/tabbar/Tab.css","components/tabbar/TabBar.css","components/workflow/WorkflowCard.css","components/projects/header/EditDescription.css","components/projects/header/ViewDescription.css","components/projects/project/ProjectView.css","components/navbar/Navbar.css","components/app/App.css","components/app/ie11.css","reset.css","app.css"],"names":[],"mappings":"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AkB,CAEpB,SACE,eACA,gBAAkB,CAEpB,SACE,eACA,gBAAkB,CAEpB,OACE,eACA,gBAAkB,CAEpB,UACE,eACA,gBAAkB,CAGpB,YACE,sBACA,kDACQ,yCAA+C,CAGzD,yBACE,kBAAoB,CAEtB,0CACE,iBACA,gCAAkC,CAEpC,gDACE,eACA,kBACA,yBAA2B,CAE7B,yDACE,eACA,iBAAmB,CAGrB,wBACE,iBACA,8BACA,iBAAmB,CAErB,6CACE,eACA,iBAAmB,CAErB,8CACE,eACA,iBAAmB,CAGrB,6EACE,eAAiB,CAEnB,YACE,cAAgB,CAElB,wBACE,WAAa,CAEf,qBACE,WAAa,CAGf,cACE,iBACA,6CACA,kBACA,4CACA,8CAAkD,CAEpD,0BACE,iBACA,gBACA,aAA2B,CAE7B,oCACE,4BAAgC,CAElC,sCACE,8CACA,eACA,iBAAmB,CAErB,2BACE,iBACA,uCACA,eAEA,eACA,iBAAmB,CAErB,mBACE,iBACA,8CAAkD,CAEpD,6BACE,+BAA6C,CAE/C,+BACE,eACA,iBAAmB,CAErB,gCACE,eACA,iBAAmB,CAErB,8BACE,eACA,iBAAmB,CAErB,qCACE,6CACA,eACA,iBAAmB,CAErB,eACE,aACA,cAA2B,CCpI7B,+VAqEE,SACA,UACA,SACA,UACA,eACA,wBACA,sBAAwB,CAG1B,iBAGE,8BACA,qBAAuB,CAGzB,OACE,SAAW,CAGb,KACE,cACA,WACA,eAAkB,CAGpB,8EAWE,aAAe,CAGjB,OACE,eAAiB,CAGnB,aAEE,WAAa,CAGf,oDAIE,WACA,YAAc,CAGhB,EACE,SACA,UACA,eACA,wBACA,sBAAwB,CAG1B,IAGE,oBAAsB,CAGxB,SALE,sBACA,UAAa,CASd,KAFC,mBACA,mBAAqB,CAGvB,IACE,4BAA8B,CAGhC,uBAEE,yBACA,WAAa,CAGf,MACE,yBACA,gBAAkB,CAGpB,GACE,cACA,WACA,SACA,0BACA,aACA,SAAW,CAGb,aAEE,qBAAuB,CAGzB,oBAIE,oBAAsB,CAGxB,MAEE,eAAiB,CAGnB,6EAKE,gBACA,SACA,cACA,aACA,mBACA,iBACA,UACA,0BACA,yBACA,sBACA,qBACA,gBAAkB,CAGpB,iDAEE,SACA,SAAW,CClNb,MACE,qBACA,eACA,oBAEA,sBACA,gBACA,qBAEA,uBACA,iBACA,sBAEA,oCACA,8BACA,mCAEA,oBACA,cACA,mBAEA,qBACA,eACA,oBAEA,uBACA,iBACA,sBAEA,aACA,mBACA,6BACA,6BACA,8BACA,kCACA,+BACA,qCACA,mCACA,8BACA,qBACA,aAEA,yBACA,wBACA,yBACA,yBACA,0BACA,4BACA,6BAEA,mBACA,kBACA,kBACA,kBACA,mBACA,oBACA,qBAEA,uBACA,yBACA,0BACA,sBACA,2BAEA,qBACA,oBACA,oBACA,oBACA,qBACA,sBACA,uBAEA,uDACA,sDACA,iDACA,gDAEA,yBACA,0BACA,yBACA,+BACA,yBAA2B,CAG7B,KACE,iFAEA,mCACA,kCAEA,kBAAoB,CAEtB,mBAGE,uBACA,sCAAwC","file":"static/css/main.b6a750d2.css","sourcesContent":["/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.aside {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n\n  min-width: 250px;\n}\n.aside a {\n  display: block;\n  padding: var(--layoutDimension-xs) var(--layoutDimension-xs);\n}\n.aside a:hover {\n  background-color: var(--dark-snow);\n}\n\n.aside-mainlinks {\n  border-bottom: 1px solid var(--dark-smoke);\n  padding-bottom: var(--layoutDimension-s);\n  margin-bottom: var(--layoutDimension-m);\n}\n\n.aside-mainlinks a,\n.aside-mainlinks a:hover,\n.aside-mainlinks a:active {\n  color: var(--slate);\n}\n.aside-additionallinks a,\n.aside-additionallinks a:hover,\n.aside-additionallinks a:active {\n  color: var(--silver);\n  font-weight: var(--fontWeight-normal);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/aside/Aside.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.card {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n  border-radius: var(--borderRadius-small);\n}\n\n.card-divider {\n  border-top: 1px solid var(--light-smoke);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cards/Card.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.errorcard-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.infocard-container {\n  display: grid;\n  grid-template-rows: -webkit-min-content min-content;\n  grid-template-rows: min-content min-content;\n  grid-row-gap: var(--layoutDimension-m);\n}\n\n.infocard-title {\n  text-align: center;\n  font-size: var(--fontSize-xxxl);\n  font-weight: var(--fontWeight-bold);\n  line-height: var(--lineHeight-xxxl);\n}\n\n.infocard-message {\n  text-align: center;\n  font-size: var(--fontSize-l);\n  line-height: var(--lineHeight-l);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/info/InfoCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.loading {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n  -ms-flex-pack: center;\n      justify-content: center;\n}\n\n.loading div {\n  width: 6px;\n  height: 6px;\n  margin: 0px 3px;\n\n  border-radius: 100%;\n  background-color: var(--blue);\n\n  -webkit-animation-name: loading;\n\n          animation-name: loading;\n  -webkit-animation-duration: 0.8s;\n          animation-duration: 0.8s;\n  -webkit-animation-iteration-count: infinite;\n          animation-iteration-count: infinite;\n  -webkit-animation-timing-function: linear;\n          animation-timing-function: linear;\n  -webkit-animation-fill-mode: both;\n          animation-fill-mode: both;\n}\n\n.loading div:nth-child(0n + 1) {\n  -webkit-animation-delay: 0s;\n          animation-delay: 0s;\n}\n.loading div:nth-child(0n + 2) {\n  -webkit-animation-delay: 0.15s;\n          animation-delay: 0.15s;\n}\n.loading div:nth-child(0n + 3) {\n  -webkit-animation-delay: 0.3s;\n          animation-delay: 0.3s;\n}\n@-webkit-keyframes loading {\n  0%,\n  85%,\n  100% {\n    opacity: 0;\n  }\n  35%,\n  50% {\n    opacity: 1;\n  }\n}\n@keyframes loading {\n  0%,\n  85%,\n  100% {\n    opacity: 0;\n  }\n  35%,\n  50% {\n    opacity: 1;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loading/Loading.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.text.loading {\n  height: 2ex;\n  color: var(--white);\n  background-color: var(--white);\n\n  -webkit-animation-name: textloading;\n\n          animation-name: textloading;\n  -webkit-animation-duration: 0.8s;\n          animation-duration: 0.8s;\n  -webkit-animation-iteration-count: infinite;\n          animation-iteration-count: infinite;\n  -webkit-animation-timing-function: ease-in-out;\n          animation-timing-function: ease-in-out;\n  -webkit-animation-direction: alternate;\n          animation-direction: alternate;\n  -webkit-animation-fill-mode: forwards;\n          animation-fill-mode: forwards;\n}\n@-webkit-keyframes textloading {\n  from {\n    color: var(--white);\n    background-color: var(--white);\n  }\n  to {\n    color: var(--smoke);\n    background-color: var(--smoke);\n  }\n}\n@keyframes textloading {\n  from {\n    color: var(--white);\n    background-color: var(--white);\n  }\n  to {\n    color: var(--smoke);\n    background-color: var(--smoke);\n  }\n}\n\n.xxl {\n  font-size: var(--fontSize-xxl);\n  line-height: var(--lineHeight-xxl);\n}\n.xl {\n  font-size: var(--fontSize-xl);\n  line-height: var(--lineHeight-xl);\n}\n.l {\n  font-size: var(--fontSize-l);\n  line-height: var(--lineHeight-l);\n}\n.m {\n  font-size: var(--fontSize-m);\n  line-height: var(--lineHeight-m);\n}\n.s {\n  font-size: var(--fontSize-s);\n  line-height: var(--lineHeight-s);\n}\n.xs {\n  font-size: var(--fontSize-xs);\n  line-height: var(--lineHeight-xs);\n}\n\n.extrabold {\n  font-weight: var(--fontWeight-extraBold);\n}\n.bold {\n  font-weight: var(--fontWeight-bold);\n}\n.semibold {\n  font-weight: var(--fontWeight-semiBold);\n}\n.regular {\n  font-weight: var(--fontWeight-regular);\n}\n.light {\n  font-weight: var(--fontWeight-light);\n}\n\n.hideoverflow {\n  white-space: nowrap;\n  overflow: hidden;\n  -o-text-overflow: ellipsis;\n     text-overflow: ellipsis;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/Text.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.dashboardview {\n  display: grid;\n  grid-template-columns: 1fr;\n  grid-template-rows: -webkit-min-content min-content;\n  grid-template-rows: min-content min-content;\n  grid-row-gap: var(--layoutDimension-l);\n}\n\n.dashboardview .info {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr 1fr 1fr;\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n.projectsinfo {\n  background-color: var(--blue);\n  color: var(--white);\n}\n\n.viewpointsinfo {\n  background-color: var(--orange);\n  color: var(--white);\n}\n\n.metamodelsinfo {\n  background-color: var(--purple);\n  color: var(--white);\n}\n\n.dashboardview .projects-body {\n  display: grid;\n  grid-auto-rows: 1fr;\n  grid-template-rows: 1fr 1fr;\n  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n  grid-row-gap: var(--layoutDimension-l);\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.blankcard-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/blank/BlankCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.list--separated .tile {\n  border-bottom: 1px solid var(--light-smoke);\n}\n.list--separated .tile:nth-last-child(1) {\n  border-bottom: 0px;\n}\n\n.list--highlighted .tile:hover {\n  background-color: var(--light-snow);\n}\n\n.tile {\n  --tileLayoutPadding: 16px;\n\n  display: -ms-flexbox;\n\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n\n  padding: 0 var(--tileLayoutPadding);\n}\n.tile--singleline {\n  --tileSingleLineHeight: 48px;\n\n  height: var(--tileSingleLineHeight);\n}\n.tile--twoline {\n  --tileTwoLineHeight: 60px;\n\n  height: var(--tileTwoLineHeight);\n}\n.tile--threeline {\n  --tileThreeLineHeight: 76px;\n\n  height: var(--tileThreeLineHeight);\n}\n\n.tile-maintext {\n  margin-right: auto;\n}\n.tile-additionaltext {\n  color: var(--silver);\n}\n\n.tile-additionalicon {\n  --tileAdditionalIconPadding: 16px;\n\n  display: -ms-flexbox;\n\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n  -ms-flex-align: center;\n      align-items: center;\n\n  padding-left: var(--tileAdditionalIconPadding);\n  cursor: pointer;\n}\n.title-additionalicon:hover svg {\n  fill: var(--blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/List.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.projectslistcard .tile-maintext {\n  font-weight: var(--fontWeight-semiBold);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectsListCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n.button {\n  height: 36px;\n  min-width: 90px;\n\n  cursor: pointer;\n  border-radius: 2px;\n  text-transform: capitalize;\n}\n.button:hover {\n  -webkit-box-shadow: var(--boxShadow-emboss);\n          box-shadow: var(--boxShadow-emboss);\n}\n.button:active {\n  -webkit-box-shadow: var(--boxShadow-deboss);\n          box-shadow: var(--boxShadow-deboss);\n}\n.button[disabled],\n.button[disabled]:active,\n.button[disabled]:hover {\n  background-color: var(--smoke);\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n\n.button-container {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr;\n}\n\n.button-label {\n  grid-column: 1 / 2;\n  grid-row: 1 / 2;\n  z-index: 0;\n}\n\n.button-loadingindicator {\n  grid-column: 1 / 2;\n  grid-row: 1 / 2;\n  z-index: 2;\n}\n\n.button--loading {\n  cursor: progress;\n  background-color: var(--white);\n  color: var(--slate);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading:hover {\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading:active {\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--loading[disabled],\n.button--loading[disabled]:active,\n.button--loading[disabled]:hover {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n\n.button--loading .button-label {\n  visibility: hidden;\n}\n\n.button--default {\n  background-color: var(--white);\n  color: var(--slate);\n  -webkit-box-shadow: var(--boxShadow-border);\n          box-shadow: var(--boxShadow-border);\n}\n.button--default:hover {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--default:active {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--default .button-loadingindicator {\n  display: none;\n}\n\n.button--primary {\n  background-color: var(--blue);\n  color: var(--white);\n}\n.button--primary .button-loadingindicator {\n  display: none;\n}\n\n.button--success {\n  background-color: var(--green);\n  color: var(--white);\n}\n.button--success .button-loadingindicator {\n  display: none;\n}\n\n.button--warning {\n  background-color: var(--yellow);\n  color: var(--white);\n}\n.button--warning .button-loadingindicator {\n  display: none;\n}\n\n.button--danger {\n  background-color: var(--red);\n  color: var(--white);\n}\n.button--danger .button-loadingindicator {\n  display: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/Button.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.textfield {\n  display: block;\n  width: 100%;\n  font-size: var(--fontSize-s);\n  line-height: var(--lineHeight-m);\n  padding: var(--layoutDimension-xs) var(--layoutDimension-s);\n  border-radius: var(--borderRadius-small);\n  border: 1px solid var(--smoke);\n  color: var(--slate);\n  background-color: var(--white);\n  background-clip: padding-box;\n  overflow: visible;\n}\n.textfield:focus {\n  color: var(--slate);\n  background-color: var(--white);\n  border-color: var(--blue);\n  outline: 0;\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n}\n.textfield.fielderror {\n  border-color: var(--red);\n}\n\n.error {\n  color: var(--red);\n}\n.error:nth-child(1) {\n  padding: 0 0 0 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/form/Form.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.newprojectview {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n      flex-direction: column;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n.newprojectview .newprojectcard {\n  max-width: var(--layoutDimension-xxxl);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.iconrun {\n  fill: var(--green);\n  stroke: var(--green);\n}\n.iconrun:hover {\n  fill: var(--light-green);\n  stroke: var(--light-green);\n}\n.iconrun:active {\n  fill: var(--dark-green);\n  stroke: var(--dark-green);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/icons/IconRun.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.tab {\n  padding: var(--layoutDimension-m) var(--layoutDimension-s);\n  border-bottom: 5px solid var(--light-smoke);\n\n  overflow: hidden;\n  white-space: nowrap;\n  -o-text-overflow: ellipsis;\n     text-overflow: ellipsis;\n  text-align: center;\n}\n.tab:hover {\n  border-bottom: 5px solid var(--light-blue);\n}\n.tab--selected {\n  border-bottom: 5px solid var(--blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/Tab.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.tabbar {\n  display: grid;\n  grid-template-columns: -webkit-min-content 1fr -webkit-min-content;\n  grid-template-columns: min-content 1fr min-content;\n\n  border-top: 1px solid var(--light-smoke);\n  border-bottom: 1px solid var(--light-smoke);\n\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.tabbar-tabs {\n  display: grid;\n  grid-auto-rows: 1fr;\n  grid-template-columns: repeat(auto-fit, minmax(10px, 1fr));\n  grid-column-gap: var(--layoutDimension-m);\n  padding: 0 var(--layoutDimension-m);\n}\n\n.tabbar-nav {\n  padding: var(--layoutDimension-m) var(--layoutDimension-s);\n  color: var(--blue);\n  font-weight: var(--fontWeight-bold);\n}\n.tabbar-nav:first-child {\n  border-right: 1px solid var(--light-smoke);\n}\n.tabbar-nav:last-child {\n  border-left: 1px solid var(--light-smoke);\n}\n.tabbar-nav:hover {\n  cursor: pointer;\n  color: var(--white);\n  background-color: var(--blue);\n}\n.tabbar-nav--disabled {\n  color: var(--light-smoke);\n}\n.tabbar-nav--disabled:hover {\n  cursor: default;\n  color: var(--light-smoke);\n  background-color: var(--white);\n}\n.tabbar-nav--contain-selection {\n  color: var(--white);\n  background-color: var(--light-blue);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBar.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.workflowcard .card-divider {\n  margin: 0 var(--layoutDimension-m);\n}\n\n.section .listitem {\n  display: grid;\n  grid-template-columns: auto -webkit-min-content;\n  grid-template-columns: auto min-content;\n  -ms-flex-align: center;\n      align-items: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/workflow/WorkflowCard.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.editdescription {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n      align-items: center;\n}\n.editdescription input {\n  margin-right: auto;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/EditDescription.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.viewdescription {\n  display: grid;\n  grid-template-columns: 1fr -webkit-min-content;\n  grid-template-columns: 1fr min-content;\n}\n.viewdescription-text {\n  -ms-flex-item-align: center;\n      align-self: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ViewDescription.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.projectview {\n  display: grid;\n  grid-template-rows: -webkit-min-content auto;\n  grid-template-rows: min-content auto;\n  grid-template-columns: 1fr;\n  grid-row-gap: var(--layoutDimension-l);\n}\n\n.projectview-main {\n  display: grid;\n  grid-template-rows: 1fr;\n  grid-template-columns: 1fr 1fr;\n  grid-column-gap: var(--layoutDimension-l);\n}\n\n.projectview-details .card {\n  margin-top: var(--layoutDimension-l);\n}\n.projectview-details .card:nth-child(1) {\n  margin-top: 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectView.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.navbar {\n  background-color: var(--white);\n  -webkit-box-shadow: var(--boxShadow-float);\n          box-shadow: var(--boxShadow-float);\n}\n\n.navbar-container {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: row;\n      flex-direction: row;\n}\n\n.navbar-title {\n  margin: auto 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/navbar/Navbar.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n.app {\n  display: grid;\n  grid-template-columns: 1fr;\n  grid-template-rows:\n    [navbar] -webkit-min-content\n    [container] minmax(-webkit-max-content, auto);\n  grid-template-rows:\n    [navbar] min-content\n    [container] minmax(max-content, auto);\n\n  min-height: 100vh;\n\n  background-color: var(--snow);\n}\n.app-navbar {\n  grid-row-start: navbar;\n}\n.app-container {\n  display: grid;\n  grid-template-columns:\n    [aside] -webkit-min-content\n    [main] auto;\n  grid-template-columns:\n    [aside] min-content\n    [main] auto;\n\n  grid-row-start: container;\n}\n\n.fullscreen .app-container {\n  display: grid;\n  grid-template-columns: 1fr;\n}\n.fullscreen .app-navbar {\n  display: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/App.css",".ie11 {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,\n    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n  color: #273444;\n  background-color: #eff2f7;\n}\n\n.ie11 .semibold {\n  font-weight: 600;\n}\n.ie11 .regular {\n  font-weight: 400;\n}\n.ie11 .light {\n  font-weight: 300;\n}\n.ie11 .xl {\n  font-size: 28px;\n  line-height: 38px;\n}\n.ie11 .l {\n  font-size: 20px;\n  line-height: 30px;\n}\n.ie11 .m {\n  font-size: 16px;\n  line-height: 22px;\n}\n.ie .s {\n  font-size: 14px;\n  line-height: 20px;\n}\n.ie11 .xs {\n  font-size: 12px;\n  line-height: 18px;\n}\n\n.ie11 .card {\n  background-color: #ffffff;\n  -webkit-box-shadow: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n          box-shadow: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n}\n\n.ie11 .projectheadercard {\n  margin-bottom: 32px;\n}\n.ie11 .projectheadercard .viewdescription {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr min-content;\n}\n.ie11 .projectheadercard .viewdescription .text {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n  -ms-grid-row-align: center;\n}\n.ie11 .projectheadercard .viewdescription div:last-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 2;\n}\n\n.ie11 .projectview-main {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr 32px 1fr;\n  -ms-grid-rows: 1fr;\n}\n.ie11 .projectview-main .projectview-details {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .projectview-main .projectview-workflow {\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n\n.ie11 .projectview-main .projectview-details .projectrepresentationslistcard {\n  margin-top: 32px;\n}\n.ie11 .tile {\n  padding: 0 16px;\n}\n.ie11 .tile--singleline {\n  height: 48px;\n}\n.ie11 .tile--twoline {\n  height: 60px;\n}\n\n.ie11 .tabbar {\n  display: -ms-grid;\n  -ms-grid-columns: min-content 1fr min-content;\n  -ms-grid-rows: 1fr;\n  border-top: 1px solid hsl(212.3, 26.5%, 90.4%);\n  border-bottom: 1px solid hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tabbar-nav {\n  padding: 16px 8px;\n  font-weight: 700;\n  color: hsl(200, 100%, 55%);\n}\n.ie11 .tabbar .tabbar-nav--disabled {\n  color: hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tabbar-nav:first-child {\n  border-right: 1px solid hsl(212.3, 26.5%, 90.4%);\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .tabbar .tabbar-tabs {\n  display: -ms-grid;\n  -ms-grid-columns: 1fr 16px 1fr 16px 1fr;\n  padding: 0 16px;\n\n  -ms-grid-row: 1;\n  -ms-grid-column: 2;\n}\n.ie11 .tabbar .tab {\n  padding: 16px 8px;\n  border-bottom: 5px solid hsl(212.3, 26.5%, 90.4%);\n}\n.ie11 .tabbar .tab--selected {\n  border-bottom: 5px solid hsl(200, 100%, 55%);\n}\n.ie11 .tabbar .tab:first-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 1;\n}\n.ie11 .tabbar .tab:nth-child(2) {\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n.ie11 .tabbar .tab:last-child {\n  -ms-grid-row: 1;\n  -ms-grid-column: 5;\n}\n.ie11 .tabbar .tabbar-nav:last-child {\n  border-left: 1px solid hsl(212.3, 26.5%, 90.4%);\n  -ms-grid-row: 1;\n  -ms-grid-column: 3;\n}\n.ie11 .iconrun {\n  fill: hsl(146, 83%, 45%);\n  stroke: hsl(146, 83%, 45%);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/ie11.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nhtml,\nbody,\ndiv,\nspan,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\nabbr,\naddress,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\nsamp,\nsmall,\nstrong,\nsub,\nsup,\nvar,\nb,\ni,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  outline: 0;\n  font-size: 100%;\n  vertical-align: baseline;\n  background: transparent;\n}\n\n*,\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n:focus {\n  outline: 0;\n}\n\nbody {\n  line-height: 1;\n  color: black;\n  background: white;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n  display: block;\n}\n\nnav ul {\n  list-style: none;\n}\n\nblockquote,\nq {\n  quotes: none;\n}\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n  content: '';\n  content: none;\n}\n\na {\n  margin: 0;\n  padding: 0;\n  font-size: 100%;\n  vertical-align: baseline;\n  background: transparent;\n}\n\nins {\n  background-color: white;\n  color: black;\n  text-decoration: none;\n}\n\nmark {\n  background-color: white;\n  color: black;\n  font-style: inherit;\n  font-weight: inherit;\n}\n\ndel {\n  text-decoration: line-through;\n}\n\nabbr[title],\ndfn[title] {\n  border-bottom: 1px dotted;\n  cursor: help;\n}\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\nhr {\n  display: block;\n  height: 1px;\n  border: 0;\n  border-top: 1px solid black;\n  margin: 1em 0;\n  padding: 0;\n}\n\ninput,\nselect {\n  vertical-align: middle;\n}\n\na,\na:visited,\na:hover {\n  /*color: inherit;*/\n  text-decoration: none;\n}\n\nol,\nul {\n  list-style: none;\n}\n\n[role='button'],\ninput[type='submit'],\ninput[type='reset'],\ninput[type='button'],\nbutton {\n  background: none;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  padding: 0;\n  -webkit-appearance: button; /* for input */\n  -webkit-user-select: none; /* for button */\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\ninput::-moz-focus-inner,\nbutton::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/reset.css","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n:root {\n  --light-blue: hsl(200, 100%, 75%);\n  --blue: hsl(200, 100%, 55%);\n  --dark-blue: hsl(200, 100%, 45%);\n\n  --light-green: hsl(146, 83%, 55%);\n  --green: hsl(146, 83%, 45%);\n  --dark-green: hsl(146, 83%, 35%);\n\n  --light-yellow: hsl(44, 100%, 68.6%);\n  --yellow: hsl(44, 100%, 58.6%);\n  --dark-yellow: hsl(44, 100%, 48.6%);\n\n  --light-orange: hsl(15.5, 100%, 74.3%);\n  --orange: hsl(15.5, 100%, 64.3%);\n  --dark-orange: hsl(15.5, 100%, 54.3%);\n\n  --light-red: hsl(0, 100%, 74.3%);\n  --red: hsl(0, 100%, 64.3%);\n  --dark-red: hsl(0, 100%, 54.3%);\n\n  --light-pink: hsl(312, 100%, 74.3%);\n  --pink: hsl(312, 100%, 64.3%);\n  --dark-pink: hsl(312, 100%, 54.3%);\n\n  --light-purple: hsl(254, 82.9%, 74.7%);\n  --purple: hsl(254, 82.2%, 64.7%);\n  --dark-purple: hsl(254, 81.8%, 54.7%);\n\n  --black: hsl(0, 0%, 0%);\n  --darkness: hsl(212, 32.6%, 18%);\n  --steel: hsl(213.1, 27.1%, 21%);\n  --slate: hsl(214.3, 18.9%, 29%);\n  --silver: hsl(215.3, 16%, 58.4%);\n  --dark-smoke: hsl(212.3, 26%, 80.4%);\n  --smoke: hsl(211.6, 27.5%, 86.5%);\n  --light-smoke: hsl(212.3, 26.5%, 90.4%);\n  --dark-snow: hsl(221.5, 33.3%, 92.4%);\n  --snow: hsl(217.5, 33.3%, 95.3%);\n  --light-snow: hsl(220, 33.3%, 98.2%);\n  --white: hsl(0, 0%, 100%);\n\n  --layoutDimension-xs: 4px;\n  --layoutDimension-s: 8px;\n  --layoutDimension-m: 16px;\n  --layoutDimension-l: 32px;\n  --layoutDimension-xl: 64px;\n  --layoutDimension-xxl: 128px;\n  --layoutDimension-xxxl: 600px;\n\n  --fontSize-xs: 12px;\n  --fontSize-s: 14px;\n  --fontSize-m: 16px;\n  --fontSize-l: 20px;\n  --fontSize-xl: 28px;\n  --fontSize-xxl: 34px;\n  --fontSize-xxxl: 64px;\n\n  --fontWeight-light: 300;\n  --fontWeight-regular: 400;\n  --fontWeight-semiBold: 600;\n  --fontWeight-bold: 700;\n  --fontWeight-extraBold: 800;\n\n  --lineHeight-xs: 18px;\n  --lineHeight-s: 20px;\n  --lineHeight-m: 22px;\n  --lineHeight-l: 30px;\n  --lineHeight-xl: 38px;\n  --lineHeight-xxl: 50px;\n  --lineHeight-xxxl: 70px;\n\n  --boxShadow-emboss: inset 0 -2px 0 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-deboss: inset 0 2px 0 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-float: 0 1px 4px 0 rgba(31, 45, 61, 0.15);\n  --boxShadow-border: 0 0 0 1px var(--light-smoke);\n\n  --borderRadius-small: 2px;\n  --borderRadius-medium: 4px;\n  --borderRadius-large: 8px;\n  --borderRadius-extraLarge: 16px;\n  --borderRadius-circle: 50%;\n}\n\nbody {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,\n    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n  color: var(--steel);\n}\na,\na:hover,\na:active {\n  color: var(--dark-blue);\n  font-weight: var(--fontWeight-semiBold);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app.css"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js
deleted file mode 100644
index 10a6b1f..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s=45)}([function(e,t,n){"use strict";e.exports=n(53)},function(e,t,n){e.exports=n(65)()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return(e+" "+n.filter(function(e){return e}).join(" ")).trim()}},function(e,t,n){"use strict";n.d(t,"e",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"d",function(){return u}),n.d(t,"f",function(){return c});var r="4px",o="8px",a="16px",i="32px",u="64px",c="128px"},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(0),o=n.n(r),a=n(1),i=n.n(a),u=n(3),c={top:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),right:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),bottom:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f]),left:i.a.oneOf([u.e,u.c,u.b,u.a,u.d,u.f])},s=function(e){var t=e.children,n=e.top,r=e.right,a=e.bottom,i=e.left,u={paddingTop:n,paddingRight:r,paddingBottom:a,paddingLeft:i};return o.a.createElement("div",{style:u},t)};s.propTypes=c},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return d});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(7),l=n(104),f=(n.n(l),{children:u.a.string,loading:u.a.bool,weight:u.a.oneOf([s.g,s.i,s.j,s.a,s.b]).isRequired,size:u.a.oneOf([s.e,s.k,s.h,s.f,s.d,s.c]).isRequired,hideOverflow:u.a.bool}),p={weight:s.i,size:s.k},d=function(e){var t=e.children,n=e.className,o=e.weight,i=e.size,u=e.hideOverflow,s=e.loading,l=(r(e,["children","className","weight","size","hideOverflow","loading"]),Object(c.a)("text",i,o));return u&&(l=Object(c.a)(l,"hideoverflow")),s&&(l=Object(c.a)(l,"loading")),l=Object(c.a)(l,n),a.a.createElement("div",{className:l},t)};d.propTypes=f,d.defaultProps=p},function(e,t,n){"use strict";n.d(t,"g",function(){return r}),n.d(t,"i",function(){return o}),n.d(t,"j",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return s}),n.d(t,"f",function(){return l}),n.d(t,"h",function(){return f}),n.d(t,"k",function(){return p}),n.d(t,"e",function(){return d});var r="light",o="regular",a="semibold",i="bold",u="extrabold",c="xxl",s="xl",l="l",f="m",p="s",d="xs"},function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,u){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,o,a,i,u],l=0;c=new Error(t.replace(/%s/g,function(){return s[l++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};e.exports=r},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return c}),n.d(t,"b",function(){return s});var o=n(0),a=n.n(o),i=n(2),u=n(98),c=(n.n(u),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("card",t);return a.a.createElement("div",Object.assign({className:o},n),n.children)}),s=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("card-divider",t);return a.a.createElement("div",Object.assign({className:o},n))}},function(e,t,n){"use strict";var r=n(64);n.d(t,"a",function(){return r.a});var o=(n(69),n(35));n.d(t,"b",function(){return o.a});var a=(n(71),n(74),n(77),n(79));n.d(t,"c",function(){return a.a});var i=n(36);n.d(t,"d",function(){return i.a});var u=(n(25),n(85),n(87));n.d(t,"e",function(){return u.a});var c=(n(89),n(90));n.d(t,"f",function(){return c.a})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h}),n.d(t,"c",function(){return m}),n.d(t,"b",function(){return y});var u=n(0),c=n.n(u),s=n(1),l=n.n(s),f=n(2),p=n(102),d=(n.n(p),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),h=function(e){var t=e.className,n=i(e,["className"]),r=Object(f.a)("loading",t);return c.a.createElement("div",Object.assign({className:r},n),c.a.createElement("div",null),c.a.createElement("div",null),c.a.createElement("div",null))},m=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),d(t,[{key:"getChildContext",value:function(){return{LoadingProvider_LOADING:this.props.loading}}},{key:"render",value:function(){return this.props.children}}]),t}(u.Component);m.childContextTypes={LoadingProvider_LOADING:l.a.bool.isRequired};var y=function(e,t){var n=e.render,r=e.children;return(void 0===r?n:r)(t.LoadingProvider_LOADING)};y.contextTypes={LoadingProvider_LOADING:l.a.bool}},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"a",function(){return a});var r=1e3,o=1001,a=1002},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"d",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"a",function(){return i});var r="SINGLE_LINE",o="TWO_LINES",a="THREE_LINES",i="list--highlighted"},function(e,t,n){"use strict";t.__esModule=!0;var r=(t.addLeadingSlash=function(e){return"/"===e.charAt(0)?e:"/"+e},t.stripLeadingSlash=function(e){return"/"===e.charAt(0)?e.substr(1):e},t.hasBasename=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)});t.stripBasename=function(e,t){return r(e,t)?e.substr(t.length):e},t.stripTrailingSlash=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},t.createPath=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"f",function(){return o}),n.d(t,"c",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"d",function(){return c}),n.d(t,"b",function(){return s});var r=function(e){return"/"===e.charAt(0)?e:"/"+e},o=function(e){return"/"===e.charAt(0)?e.substr(1):e},a=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)},i=function(e,t){return a(e,t)?e.substr(t.length):e},u=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},c=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},s=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(4),f=n(3),p=n(99),d=(n.n(p),{code:u.a.number.isRequired,title:u.a.string.isRequired,message:u.a.string.isRequired}),h=function(e){var t=e.className,n=e.code,o=e.title,i=e.message,u=r(e,["className","code","title","message"]),p=Object(c.a)("errorcard",t);return a.a.createElement(s.a,Object.assign({},u,{className:p}),a.a.createElement(l.a,{top:f.a,right:f.a,bottom:f.a,left:f.a},a.a.createElement("div",{className:"errorcard-container"},a.a.createElement(l.a,{top:f.b,right:f.b,bottom:f.b,left:f.b},a.a.createElement("h1",{className:"title-l"},o)),a.a.createElement("p",null,i+" (code: "+n+")"))))};h.propTypes=d},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e,t,n){return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{stateId:n},o=arguments[1],a=arguments[2],i=e[r.stateId],u=i[a.kind];if(u){var c=t(r,o,a);if(-1!==u.indexOf(c.stateId)){if(e[c.stateId])return c;console.error("The state "+c.stateId+" does not exist.")}else console.error("The state '"+c.stateId+"' should not be accessible from "+r.stateId+" with the transition "+a.kind+".")}else console.error("The state '"+r.stateId+"' does not support the transition '"+a.kind+"'.");return r}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";n.d(t,"a",function(){return u}),n.d(t,"b",function(){return c});var r=n(32),o=n(33),a=n(15),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(e,t,n,o){var u=void 0;"string"===typeof e?(u=Object(a.d)(e),u.state=t):(u=i({},e),void 0===u.pathname&&(u.pathname=""),u.search?"?"!==u.search.charAt(0)&&(u.search="?"+u.search):u.search="",u.hash?"#"!==u.hash.charAt(0)&&(u.hash="#"+u.hash):u.hash="",void 0!==t&&void 0===u.state&&(u.state=t));try{u.pathname=decodeURI(u.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+u.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(u.key=n),o?u.pathname?"/"!==u.pathname.charAt(0)&&(u.pathname=Object(r.default)(u.pathname,o.pathname)):u.pathname=o.pathname:u.pathname||(u.pathname="/"),u},c=function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&Object(o.default)(e.state,t.state)}},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b}),n.d(t,"d",function(){return w}),n.d(t,"b",function(){return O}),n.d(t,"e",function(){return _}),n.d(t,"c",function(){return k});var a=n(0),i=n.n(a),u=n(1),c=n.n(u),s=n(2),l=n(4),f=n(3),p=n(6),d=n(13),h=n(111),m=(n.n(h),n(7)),y={};(function(e){var t=e.className,n=o(e,["className"]),r=Object(s.a)("tile-mainicon",t);return i.a.createElement("div",Object.assign({className:r},n))}).propTypes=y;var v={},b=function(e){var t=e.className,n=o(e,["className"]),r=Object(s.a)("tile-additionalicon",t);return i.a.createElement("div",Object.assign({className:r},n))};b.propTypes=v;var g={children:c.a.string},w=function(e){var t=e.className,n=e.children,r=o(e,["className","children"]),a=Object(s.a)("tile-maintext",t);return i.a.createElement(p.a,Object.assign({className:a},r),n)};w.propTypes=g;var E={children:c.a.string},O=function(e){var t=e.className,n=e.children,r=o(e,["className","children"]),a=Object(s.a)("tile-additionaltext",t);return i.a.createElement(p.a,Object.assign({className:a},r,{size:m.e,weight:m.g}),n)};O.propTypes=E;var T={kind:c.a.oneOf([d.b,d.d,d.c]).isRequired},_=function(e){var t=e.className,n=e.kind,r=o(e,["className","kind"]),a="tile--singleline";n===d.d?a="tile--twoline":n===d.c&&(a="tile--threeline");var u=Object(s.a)("tile",a,t);return i.a.createElement("li",Object.assign({className:u},r))};_.propTypes=T;var C={kind:c.a.oneOfType([c.a.string,c.a.array]),children:c.a.oneOfType([c.a.arrayOf(_),c.a.objectOf(_)])},x={kind:""},k=function(e){var t=e.children,n=e.className,a=e.kind,u=o(e,["children","className","kind"]),c=N(a),p=s.a.apply(void 0,["list"].concat(r(c),[n]));return i.a.createElement("ul",Object.assign({className:p},u),i.a.createElement(l.a,{top:f.c,bottom:f.c},t))};k.propTypes=C,k.defaultProps=x;var N=function(e){var t=[];return Array.isArray(e)?t=e:"string"===typeof e&&t.push(e),t}},function(e,t,n){e.exports=n(138)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,u,c=r(e),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var l in n)a.call(n,l)&&(c[l]=n[l]);if(o){u=o(n);for(var f=0;f<u.length;f++)i.call(n,u[f])&&(c[u[f]]=n[u[f]])}}return c}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.locationsAreEqual=t.createLocation=void 0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(32),i=r(a),u=n(33),c=r(u),s=n(14);t.createLocation=function(e,t,n,r){var a=void 0;"string"===typeof e?(a=(0,s.parsePath)(e),a.state=t):(a=o({},e),void 0===a.pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(a.key=n),r?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=(0,i.default)(a.pathname,r.pathname)):a.pathname=r.pathname:a.pathname||(a.pathname="/"),a},t.locationsAreEqual=function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&(0,c.default)(e.state,t.state)}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r),a=function(){var e=null,t=function(t){return(0,o.default)(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,a){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,a):((0,o.default)(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),a(!0)):a(!1!==i)}else a(!0)},r=[];return{setPrompt:t,confirmTransitionTo:n,appendListener:function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},notifyListeners:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.forEach(function(e){return e.apply(void 0,t)})}}};t.default=a},function(e,t,n){"use strict";var r=n(26);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(8),s=n.n(c),l=n(0),f=n.n(l),p=n(1),d=n.n(p),h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.state={match:a.computeMatch(a.props.history.location.pathname)},i=n,o(a,i)}return a(t,e),t.prototype.getChildContext=function(){return{router:h({},this.context.router,{history:this.props.history,route:{location:this.props.history.location,match:this.state.match}})}},t.prototype.computeMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}},t.prototype.componentWillMount=function(){var e=this,t=this.props,n=t.children,r=t.history;s()(null==n||1===f.a.Children.count(n),"A <Router> may have only one child element"),this.unlisten=r.listen(function(){e.setState({match:e.computeMatch(r.location.pathname)})})},t.prototype.componentWillReceiveProps=function(e){u()(this.props.history===e.history,"You cannot change <Router history>")},t.prototype.componentWillUnmount=function(){this.unlisten()},t.prototype.render=function(){var e=this.props.children;return e?f.a.Children.only(e):null},t}(f.a.Component);m.propTypes={history:d.a.object.isRequired,children:d.a.node},m.contextTypes={router:d.a.object},m.childContextTypes={router:d.a.object.isRequired},t.a=m},function(e,t,n){"use strict";var r=n(75),o=n.n(r),a={},i=0,u=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=a[n]||(a[n]={});if(r[e])return r[e];var u=[],c=o()(e,u,t),s={re:c,keys:u};return i<1e4&&(r[e]=s,i++),s},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"===typeof t&&(t={path:t});var n=t,r=n.path,o=void 0===r?"/":r,a=n.exact,i=void 0!==a&&a,c=n.strict,s=void 0!==c&&c,l=n.sensitive,f=void 0!==l&&l,p=u(o,{end:i,strict:s,sensitive:f}),d=p.re,h=p.keys,m=d.exec(e);if(!m)return null;var y=m[0],v=m.slice(1),b=e===y;return i&&!b?null:{path:o,url:"/"===o&&""===y?"/":y,isExact:b,params:h.reduce(function(e,t,n){return e[t.name]=v[n],e},{})}};t.a=c},function(e,t,n){"use strict";var r=n(5),o=n.n(r),a=function(){var e=null,t=function(t){return o()(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,a){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,a):(o()(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),a(!0)):a(!1!==i)}else a(!0)},r=[];return{setPrompt:t,confirmTransitionTo:n,appendListener:function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},notifyListeners:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.forEach(function(e){return e.apply(void 0,t)})}}};t.a=a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(11),l=n(4),f=n(3),p=n(6),d=n(7),h=n(41),m=n(115),y=(n.n(m),{kind:u.a.oneOf([h.a,h.b,h.c,h.d,h.e]),loading:u.a.bool}),v={kind:h.b},b=function(e){var t=e.className,n=e.kind,o=e.loading,i=r(e,["className","kind","loading"]),u=Object(c.a)("button",t);if(o)u=Object(c.a)(u,"button--loading");else{var h=g(n);u=Object(c.a)(u,h)}return a.a.createElement("button",Object.assign({className:u},i,{disabled:o}),a.a.createElement(l.a,{right:f.b,left:f.b},a.a.createElement("div",{className:"button-container"},a.a.createElement(s.a,{className:"button-loadingindicator"}),a.a.createElement(p.a,{className:"button-label",weight:d.j},i.children))))};b.propTypes=y,b.defaultProps=v;var g=function(e){var t=void 0;switch(e){case h.b:t="button--default";break;case h.c:t="button--primary";break;case h.d:t="button--success";break;case h.e:t="button--warning";break;case h.a:t="button--danger";break;default:t="button--default"}return t}},function(e,t,n){"use strict";function r(){}function o(e){try{return e.then}catch(e){return v=e,b}}function a(e,t){try{return e(t)}catch(e){return v=e,b}}function i(e,t,n){try{e(t,n)}catch(e){return v=e,b}}function u(e){if("object"!==typeof this)throw new TypeError("Promises must be constructed via new");if("function"!==typeof e)throw new TypeError("Promise constructor's argument is not a function");this._75=0,this._83=0,this._18=null,this._38=null,e!==r&&m(e,this)}function c(e,t,n){return new e.constructor(function(o,a){var i=new u(r);i.then(o,a),s(e,new h(t,n,i))})}function s(e,t){for(;3===e._83;)e=e._18;if(u._47&&u._47(e),0===e._83)return 0===e._75?(e._75=1,void(e._38=t)):1===e._75?(e._75=2,void(e._38=[e._38,t])):void e._38.push(t);l(e,t)}function l(e,t){y(function(){var n=1===e._83?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._83?f(t.promise,e._18):p(t.promise,e._18));var r=a(n,e._18);r===b?p(t.promise,v):f(t.promise,r)})}function f(e,t){if(t===e)return p(e,new TypeError("A promise cannot be resolved with itself."));if(t&&("object"===typeof t||"function"===typeof t)){var n=o(t);if(n===b)return p(e,v);if(n===e.then&&t instanceof u)return e._83=3,e._18=t,void d(e);if("function"===typeof n)return void m(n.bind(t),e)}e._83=1,e._18=t,d(e)}function p(e,t){e._83=2,e._18=t,u._71&&u._71(e,t),d(e)}function d(e){if(1===e._75&&(s(e,e._38),e._38=null),2===e._75){for(var t=0;t<e._38.length;t++)s(e,e._38[t]);e._38=null}}function h(e,t,n){this.onFulfilled="function"===typeof e?e:null,this.onRejected="function"===typeof t?t:null,this.promise=n}function m(e,t){var n=!1,r=i(e,function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,p(t,e))});n||r!==b||(n=!0,p(t,v))}var y=n(48),v=null,b={};e.exports=u,u._47=null,u._71=null,u._44=r,u.prototype.then=function(e,t){if(this.constructor!==u)return c(this,e,t);var n=new u(r);return s(this,new h(e,t,n)),n}},function(e,t,n){"use strict";var r={};e.exports=r},function(e,t,n){"use strict";function r(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e&&e.split("/")||[],a=t&&t.split("/")||[],i=e&&r(e),u=t&&r(t),c=i||u;if(e&&r(e)?a=n:n.length&&(a.pop(),a=a.concat(n)),!a.length)return"/";var s=void 0;if(a.length){var l=a[a.length-1];s="."===l||".."===l||""===l}else s=!1;for(var f=0,p=a.length;p>=0;p--){var d=a[p];"."===d?o(a,p):".."===d?(o(a,p),f++):f&&(o(a,p),f--)}if(!c)for(;f--;f)a.unshift("..");!c||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return s&&"/"!==h.substr(-1)&&(h+="/"),h}Object.defineProperty(t,"__esModule",{value:!0}),t.default=a},function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return r(e,t[n])});var n="undefined"===typeof e?"undefined":o(e);if(n!==("undefined"===typeof t?"undefined":o(t)))return!1;if("object"===n){var a=e.valueOf(),i=t.valueOf();if(a!==e||i!==t)return r(a,i);var u=Object.keys(e),c=Object.keys(t);return u.length===c.length&&u.every(function(n){return r(e[n],t[n])})}return!1}Object.defineProperty(t,"__esModule",{value:!0});var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=r},function(e,t,n){"use strict";t.__esModule=!0;t.canUseDOM=!("undefined"===typeof window||!window.document||!window.document.createElement),t.addEventListener=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},t.removeEventListener=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},t.getConfirmation=function(e,t){return t(window.confirm(e))},t.supportsHistory=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},t.supportsPopStateOnHashChange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},t.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},t.isExtraneousPopstateEvent=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=n(0),c=n.n(u),s=n(1),l=n.n(s),f=n(8),p=n.n(f),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)},m=function(e){function t(){var n,r,i;o(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=r=a(this,e.call.apply(e,[this].concat(c))),r.handleClick=function(e){if(r.props.onClick&&r.props.onClick(e),!e.defaultPrevented&&0===e.button&&!r.props.target&&!h(e)){e.preventDefault();var t=r.context.router.history,n=r.props,o=n.replace,a=n.to;o?t.replace(a):t.push(a)}},i=n,a(r,i)}return i(t,e),t.prototype.render=function(){var e=this.props,t=(e.replace,e.to),n=e.innerRef,o=r(e,["replace","to","innerRef"]);p()(this.context.router,"You should not use <Link> outside a <Router>");var a=this.context.router.history.createHref("string"===typeof t?{pathname:t}:t);return c.a.createElement("a",d({},o,{onClick:this.handleClick,href:a,ref:n}))},t}(c.a.Component);m.propTypes={onClick:l.a.func,target:l.a.string,replace:l.a.bool,to:l.a.oneOfType([l.a.string,l.a.object]).isRequired,innerRef:l.a.oneOfType([l.a.string,l.a.func])},m.defaultProps={replace:!1},m.contextTypes={router:l.a.shape({history:l.a.shape({push:l.a.func.isRequired,replace:l.a.func.isRequired,createHref:l.a.func.isRequired}).isRequired}).isRequired},t.a=m},function(e,t,n){"use strict";var r=n(37);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(8),s=n.n(c),l=n(0),f=n.n(l),p=n(1),d=n.n(p),h=n(27),m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y=function(e){return 0===f.a.Children.count(e)},v=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.state={match:a.computeMatch(a.props,a.context.router)},i=n,o(a,i)}return a(t,e),t.prototype.getChildContext=function(){return{router:m({},this.context.router,{route:{location:this.props.location||this.context.router.route.location,match:this.state.match}})}},t.prototype.computeMatch=function(e,t){var n=e.computedMatch,r=e.location,o=e.path,a=e.strict,i=e.exact,u=e.sensitive;if(n)return n;s()(t,"You should not use <Route> or withRouter() outside a <Router>");var c=t.route,l=(r||c.location).pathname;return o?Object(h.a)(l,{path:o,strict:a,exact:i,sensitive:u}):c.match},t.prototype.componentWillMount=function(){u()(!(this.props.component&&this.props.render),"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored"),u()(!(this.props.component&&this.props.children&&!y(this.props.children)),"You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored"),u()(!(this.props.render&&this.props.children&&!y(this.props.children)),"You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored")},t.prototype.componentWillReceiveProps=function(e,t){u()(!(e.location&&!this.props.location),'<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),u()(!(!e.location&&this.props.location),'<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'),this.setState({match:this.computeMatch(e,t.router)})},t.prototype.render=function(){var e=this.state.match,t=this.props,n=t.children,r=t.component,o=t.render,a=this.context.router,i=a.history,u=a.route,c=a.staticContext,s=this.props.location||u.location,l={match:e,location:s,history:i,staticContext:c};return r?e?f.a.createElement(r,l):null:o?e?o(l):null:n?"function"===typeof n?n(l):y(n)?null:f.a.Children.only(n):null},t}(f.a.Component);v.propTypes={computedMatch:d.a.object,path:d.a.string,exact:d.a.bool,strict:d.a.bool,sensitive:d.a.bool,component:d.a.func,render:d.a.func,children:d.a.oneOfType([d.a.func,d.a.node]),location:d.a.object},v.contextTypes={router:d.a.shape({history:d.a.object.isRequired,route:d.a.object.isRequired,staticContext:d.a.object})},v.childContextTypes={router:d.a.object.isRequired},t.a=v},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"a",function(){return o}),n.d(t,"e",function(){return a}),n.d(t,"c",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"h",function(){return c}),n.d(t,"f",function(){return s}),n.d(t,"d",function(){return l});var r=!("undefined"===typeof window||!window.document||!window.document.createElement),o=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},a=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},i=function(e,t){return t(window.confirm(e))},u=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},c=function(){return-1===window.navigator.userAgent.indexOf("Trident")},s=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},l=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},function(e,t,n){"use strict";n.d(t,"g",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return i}),n.d(t,"f",function(){return u}),n.d(t,"e",function(){return c}),n.d(t,"d",function(){return s}),n.d(t,"c",function(){return l});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="DASHBOARD_LOADED__STATE",u="INITIALIZE__ACTION",c="HANDLE_FETCHED_DASHBOARD__ACTION",s="HANDLE_ERROR__ACTION",l={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_DASHBOARD__ACTION:[i],HANDLE_ERROR__ACTION:[a]},DASHBOARD_LOADED__STATE:{},ERROR__STATE:{}}},function(e,t,n){"use strict";n.d(t,"f",function(){return r}),n.d(t,"g",function(){return o}),n.d(t,"a",function(){return a}),n.d(t,"h",function(){return i}),n.d(t,"i",function(){return u}),n.d(t,"e",function(){return c}),n.d(t,"d",function(){return s}),n.d(t,"c",function(){return l}),n.d(t,"b",function(){return f});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="NO_PROJECTS_LOADED__STATE",u="PROJECTS_LOADED__STATE",c="INITIALIZE__ACTION",s="HANDLE_FETCHED_PROJECTS__ACTION",l="HANDLE_ERROR__ACTION",f={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_PROJECTS__ACTION:[i,u],HANDLE_ERROR__ACTION:[a]},NO_PROJECTS_LOADED__STATE:{},PROJECTS_LOADED__STATE:{},ERROR__STATE:{}}},function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"d",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"a",function(){return u});var r="default",o="primary",a="success",i="warning",u="danger"},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"f",function(){return l}),n.d(t,"e",function(){return f}),n.d(t,"g",function(){return p}),n.d(t,"b",function(){return d}),n.d(t,"h",function(){return h}),n.d(t,"a",function(){return m}),n.d(t,"d",function(){return y}),n.d(t,"c",function(){return v});var o=n(0),a=n.n(o),i=n(2),u=n(4),c=n(3),s=n(116),l=(n.n(s),function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),s=Object(i.a)("form",n);return a.a.createElement("form",Object.assign({className:s},o),a.a.createElement(u.a,{top:c.b,right:c.b,bottom:c.b,left:c.b},t))}),f=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),s=Object(i.a)("field",n);return a.a.createElement("div",Object.assign({className:s},o),a.a.createElement(u.a,{bottom:c.b},t))},p=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("label body-l",t);return a.a.createElement(u.a,{bottom:c.c},a.a.createElement("label",Object.assign({className:o},n)))},d=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("description caption-m",t);return a.a.createElement(u.a,{bottom:c.c},a.a.createElement("p",Object.assign({className:o},n)))},h=function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("textfield",t);return a.a.createElement("input",Object.assign({className:o,type:"text"},n))},m=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),s=Object(i.a)("actiongroup",n);return a.a.createElement("div",Object.assign({className:s},o),a.a.createElement(u.a,{top:c.b},t))},y=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),s=Object(i.a)("errorgroup",n);return a.a.createElement("div",Object.assign({className:s},o),a.a.createElement(u.a,{top:c.c,bottom:c.c},t))},v=function(e){var t=e.children,n=e.className,o=r(e,["children","className"]),s=Object(i.a)("error",n);return a.a.createElement("div",Object.assign({className:s},o),a.a.createElement(u.a,{top:c.c},t))}},function(e,t,n){"use strict";n.d(t,"e",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"f",function(){return a}),n.d(t,"i",function(){return i}),n.d(t,"d",function(){return u}),n.d(t,"g",function(){return c}),n.d(t,"c",function(){return s}),n.d(t,"b",function(){return l}),n.d(t,"a",function(){return f});var r="INITIAL__STATE",o="PRISTINE__STATE",a="MODIFIED__STATE",i="REDIRECT__STATE",u="INITIALIZE__ACTION",c="MODIFY_NAME__ACTION",s="HANDLE_ERROR__ACTION",l="HANDLE_CREATED_PROJECT__ACTION",f={INITIAL__STATE:{INITIALIZE__ACTION:[o]},PRISTINE__STATE:{MODIFY_NAME__ACTION:[a]},MODIFIED__STATE:{MODIFY_NAME__ACTION:[a],HANDLE_ERROR__ACTION:[a],HANDLE_CREATED_PROJECT__ACTION:[i]},REDIRECT__STATE:{}}},function(e,t,n){"use strict";n.d(t,"h",function(){return r}),n.d(t,"i",function(){return o}),n.d(t,"a",function(){return a}),n.d(t,"j",function(){return i}),n.d(t,"g",function(){return u}),n.d(t,"f",function(){return c}),n.d(t,"e",function(){return s}),n.d(t,"c",function(){return l}),n.d(t,"d",function(){return f}),n.d(t,"b",function(){return p});var r="INITIAL__STATE",o="LOADING__STATE",a="ERROR__STATE",i="PROJECT_LOADED__STATE",u="INITIALIZE__ACTION",c="HANDLE_FETCHED_PROJECT__ACTION",s="HANDLE_FETCHED_PAGE__ACTION",l="HANDLE_DESCRIPTION_UPDATED__ACTION",f="HANDLE_ERROR__ACTION",p={INITIAL__STATE:{INITIALIZE__ACTION:[o]},LOADING__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[i],HANDLE_ERROR__ACTION:[a]},PROJECT_LOADED__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[i],HANDLE_FETCHED_PAGE__ACTION:[i],HANDLE_DESCRIPTION_UPDATED__ACTION:[i]},ERROR__STATE:{}}},function(e,t,n){n(46),e.exports=n(52)},function(e,t,n){"use strict";"undefined"===typeof Promise&&(n(47).enable(),window.Promise=n(50)),n(51),Object.assign=n(22)},function(e,t,n){"use strict";function r(){s=!1,u._47=null,u._71=null}function o(e){function t(t){(e.allRejections||i(f[t].error,e.whitelist||c))&&(f[t].displayId=l++,e.onUnhandled?(f[t].logged=!0,e.onUnhandled(f[t].displayId,f[t].error)):(f[t].logged=!0,a(f[t].displayId,f[t].error)))}function n(t){f[t].logged&&(e.onHandled?e.onHandled(f[t].displayId,f[t].error):f[t].onUnhandled||(console.warn("Promise Rejection Handled (id: "+f[t].displayId+"):"),console.warn('  This means you can ignore any previous messages of the form "Possible Unhandled Promise Rejection" with id '+f[t].displayId+".")))}e=e||{},s&&r(),s=!0;var o=0,l=0,f={};u._47=function(e){2===e._83&&f[e._56]&&(f[e._56].logged?n(e._56):clearTimeout(f[e._56].timeout),delete f[e._56])},u._71=function(e,n){0===e._75&&(e._56=o++,f[e._56]={displayId:null,error:n,timeout:setTimeout(t.bind(null,e._56),i(n,c)?100:2e3),logged:!1})}}function a(e,t){console.warn("Possible Unhandled Promise Rejection (id: "+e+"):"),((t&&(t.stack||t))+"").split("\n").forEach(function(e){console.warn("  "+e)})}function i(e,t){return t.some(function(t){return e instanceof t})}var u=n(30),c=[ReferenceError,TypeError,RangeError],s=!1;t.disable=r,t.enable=o},function(e,t,n){"use strict";(function(t){function n(e){i.length||(a(),u=!0),i[i.length]=e}function r(){for(;c<i.length;){var e=c;if(c+=1,i[e].call(),c>s){for(var t=0,n=i.length-c;t<n;t++)i[t]=i[t+c];i.length-=c,c=0}}i.length=0,c=0,u=!1}function o(e){return function(){function t(){clearTimeout(n),clearInterval(r),e()}var n=setTimeout(t,0),r=setInterval(t,50)}}e.exports=n;var a,i=[],u=!1,c=0,s=1024,l="undefined"!==typeof t?t:self,f=l.MutationObserver||l.WebKitMutationObserver;a="function"===typeof f?function(e){var t=1,n=new f(e),r=document.createTextNode("");return n.observe(r,{characterData:!0}),function(){t=-t,r.data=t}}(r):o(r),n.requestFlush=a,n.makeRequestCallFromTimer=o}).call(t,n(49))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";function r(e){var t=new o(o._44);return t._83=1,t._18=e,t}var o=n(30);e.exports=o;var a=r(!0),i=r(!1),u=r(null),c=r(void 0),s=r(0),l=r("");o.resolve=function(e){if(e instanceof o)return e;if(null===e)return u;if(void 0===e)return c;if(!0===e)return a;if(!1===e)return i;if(0===e)return s;if(""===e)return l;if("object"===typeof e||"function"===typeof e)try{var t=e.then;if("function"===typeof t)return new o(t.bind(e))}catch(e){return new o(function(t,n){n(e)})}return r(e)},o.all=function(e){var t=Array.prototype.slice.call(e);return new o(function(e,n){function r(i,u){if(u&&("object"===typeof u||"function"===typeof u)){if(u instanceof o&&u.then===o.prototype.then){for(;3===u._83;)u=u._18;return 1===u._83?r(i,u._18):(2===u._83&&n(u._18),void u.then(function(e){r(i,e)},n))}var c=u.then;if("function"===typeof c){return void new o(c.bind(u)).then(function(e){r(i,e)},n)}}t[i]=u,0===--a&&e(t)}if(0===t.length)return e([]);for(var a=t.length,i=0;i<t.length;i++)r(i,t[i])})},o.reject=function(e){return new o(function(t,n){n(e)})},o.race=function(e){return new o(function(t,n){e.forEach(function(e){o.resolve(e).then(t,n)})})},o.prototype.catch=function(e){return this.then(null,e)}},function(e,t){!function(e){"use strict";function t(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!==typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return v.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function a(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function i(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function u(e){var t=new FileReader,n=i(t);return t.readAsArrayBuffer(e),n}function c(e){var t=new FileReader,n=i(t);return t.readAsText(e),n}function s(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}function l(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function f(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"===typeof e)this._bodyText=e;else if(v.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(v.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(v.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(v.arrayBuffer&&v.blob&&g(e))this._bodyArrayBuffer=l(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!v.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!w(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=l(e)}else this._bodyText="";this.headers.get("content-type")||("string"===typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):v.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},v.blob&&(this.blob=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?a(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(u)}),this.text=function(){var e=a(this);if(e)return e;if(this._bodyBlob)return c(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(s(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},v.formData&&(this.formData=function(){return this.text().then(h)}),this.json=function(){return this.text().then(JSON.parse)},this}function p(e){var t=e.toUpperCase();return E.indexOf(t)>-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var v={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(v.arrayBuffer)var b=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&b.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},v.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var E=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var O=[301,302,303,307,308];y.redirect=function(e,t){if(-1===O.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),a=new XMLHttpRequest;a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:m(a.getAllResponseHeaders()||"")};e.url="responseURL"in a?a.responseURL:e.headers.get("X-Request-URL");var t="response"in a?a.response:a.responseText;n(new y(t,e))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials&&(a.withCredentials=!0),"responseType"in a&&v.blob&&(a.responseType="blob"),o.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n.n(r),a=n(54),i=n.n(a),u=n(10),c=n(93),s=n(151),l=(n.n(s),n(152));n.n(l);i.a.render(o.a.createElement(u.a,{basename:""},o.a.createElement(c.a,null)),document.getElementById("root"))},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);throw t=Error(n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),t.name="Invariant Violation",t.framesToPop=1,t}function o(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function a(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function i(){}function u(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||N}function c(e,t,n){var r,o={},a=null,i=null;if(null!=t)for(r in void 0!==t.ref&&(i=t.ref),void 0!==t.key&&(a=""+t.key),t)S.call(t,r)&&!A.hasOwnProperty(r)&&(o[r]=t[r]);var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];o.children=c}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===o[r]&&(o[r]=u[r]);return{$$typeof:O,type:e,key:a,ref:i,props:o,_owner:I.current}}function s(e){return"object"===typeof e&&null!==e&&e.$$typeof===O}function l(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function f(e,t,n,r){if(D.length){var o=D.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function p(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>D.length&&D.push(e)}function d(e,t,n,o){var a=typeof e;"undefined"!==a&&"boolean"!==a||(e=null);var i=!1;if(null===e)i=!0;else switch(a){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case O:case T:case _:case C:i=!0}}if(i)return n(o,e,""===t?"."+h(e,0):t),1;if(i=0,t=""===t?".":t+":",Array.isArray(e))for(var u=0;u<e.length;u++){a=e[u];var c=t+h(a,u);i+=d(a,c,n,o)}else if(null===e||"undefined"===typeof e?c=null:(c=k&&e[k]||e["@@iterator"],c="function"===typeof c?c:null),"function"===typeof c)for(e=c.call(e),u=0;!(a=e.next()).done;)a=a.value,c=t+h(a,u++),i+=d(a,c,n,o);else"object"===a&&(n=""+e,r("31","[object Object]"===n?"object with keys {"+Object.keys(e).join(", ")+"}":n,""));return i}function h(e,t){return"object"===typeof e&&null!==e&&null!=e.key?l(e.key):t.toString(36)}function m(e,t){e.func.call(e.context,t,e.count++)}function y(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?v(e,r,n,w.thatReturnsArgument):null!=e&&(s(e)&&(t=o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(R,"$&/")+"/")+n,e={$$typeof:O,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}),r.push(e))}function v(e,t,n,r,o){var a="";null!=n&&(a=(""+n).replace(R,"$&/")+"/"),t=f(t,a,r,o),null==e||d(e,"",y,t),p(t)}var b=n(22),g=n(31),w=n(18),E="function"===typeof Symbol&&Symbol.for,O=E?Symbol.for("react.element"):60103,T=E?Symbol.for("react.call"):60104,_=E?Symbol.for("react.return"):60105,C=E?Symbol.for("react.portal"):60106,x=E?Symbol.for("react.fragment"):60107,k="function"===typeof Symbol&&Symbol.iterator,N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};o.prototype.isReactComponent={},o.prototype.setState=function(e,t){"object"!==typeof e&&"function"!==typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e,t,"setState")},o.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},i.prototype=o.prototype;var j=a.prototype=new i;j.constructor=a,b(j,o.prototype),j.isPureReactComponent=!0;var P=u.prototype=new i;P.constructor=u,b(P,o.prototype),P.unstable_isAsyncReactComponent=!0,P.render=function(){return this.props.children};var I={current:null},S=Object.prototype.hasOwnProperty,A={key:!0,ref:!0,__self:!0,__source:!0},R=/\/+/g,D=[],L={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return v(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;t=f(null,null,t,n),null==e||d(e,"",m,t),p(t)},count:function(e){return null==e?0:d(e,"",w.thatReturnsNull,null)},toArray:function(e){var t=[];return v(e,t,null,w.thatReturnsArgument),t},only:function(e){return s(e)||r("143"),e}},Component:o,PureComponent:a,unstable_AsyncComponent:u,Fragment:x,createElement:c,cloneElement:function(e,t,n){var r=b({},e.props),o=e.key,a=e.ref,i=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,i=I.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)S.call(t,c)&&!A.hasOwnProperty(c)&&(r[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)r.children=n;else if(1<c){u=Array(c);for(var s=0;s<c;s++)u[s]=arguments[s+2];r.children=u}return{$$typeof:O,type:e.type,key:o,ref:a,props:r,_owner:i}},createFactory:function(e){var t=c.bind(null,e);return t.type=e,t},isValidElement:s,version:"16.2.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:I,assign:b}},M=Object.freeze({default:L}),U=M&&L||M;e.exports=U.default?U.default:U},function(e,t,n){"use strict";function r(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}r(),e.exports=n(55)},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);throw t=Error(n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),t.name="Invariant Violation",t.framesToPop=1,t}function o(e,t){return(e&t)===t}function a(e,t){if(jn.hasOwnProperty(e)||2<e.length&&("o"===e[0]||"O"===e[0])&&("n"===e[1]||"N"===e[1]))return!1;if(null===t)return!0;switch(typeof t){case"boolean":return jn.hasOwnProperty(e)?e=!0:(t=i(e))?e=t.hasBooleanValue||t.hasStringBooleanValue||t.hasOverloadedBooleanValue:(e=e.toLowerCase().slice(0,5),e="data-"===e||"aria-"===e),e;case"undefined":case"number":case"string":case"object":return!0;default:return!1}}function i(e){return In.hasOwnProperty(e)?In[e]:null}function u(e){return e[1].toUpperCase()}function c(e,t,n,r,o,a,i,u,c){qn._hasCaughtError=!1,qn._caughtError=null;var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){qn._caughtError=e,qn._hasCaughtError=!0}}function s(){if(qn._hasRethrowError){var e=qn._rethrowError;throw qn._rethrowError=null,qn._hasRethrowError=!1,e}}function l(){if(Wn)for(var e in Kn){var t=Kn[e],n=Wn.indexOf(e);if(-1<n||r("96",e),!Gn[n]){t.extractEvents||r("97",e),Gn[n]=t,n=t.eventTypes;for(var o in n){var a=void 0,i=n[o],u=t,c=o;Yn.hasOwnProperty(c)&&r("99",c),Yn[c]=i;var s=i.phasedRegistrationNames;if(s){for(a in s)s.hasOwnProperty(a)&&f(s[a],u,c);a=!0}else i.registrationName?(f(i.registrationName,u,c),a=!0):a=!1;a||r("98",o,e)}}}}function f(e,t,n){$n[e]&&r("100",e),$n[e]=t,Qn[e]=t.eventTypes[n].dependencies}function p(e){Wn&&r("101"),Wn=Array.prototype.slice.call(e),l()}function d(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var o=e[t];Kn.hasOwnProperty(t)&&Kn[t]===o||(Kn[t]&&r("102",t),Kn[t]=o,n=!0)}n&&l()}function h(e,t,n,r){t=e.type||"unknown-event",e.currentTarget=er(r),qn.invokeGuardedCallbackAndCatchFirstError(t,n,void 0,e),e.currentTarget=null}function m(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function y(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}function v(e,t){if(e){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)h(e,t,n[o],r[o]);else n&&h(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function b(e){return v(e,!0)}function g(e){return v(e,!1)}function w(e,t){var n=e.stateNode;if(!n)return null;var o=Xn(n);if(!o)return null;n=o[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(o=!o.disabled)||(e=e.type,o=!("button"===e||"input"===e||"select"===e||"textarea"===e)),e=!o;break e;default:e=!1}return e?null:(n&&"function"!==typeof n&&r("231",t,typeof n),n)}function E(e,t,n,r){for(var o,a=0;a<Gn.length;a++){var i=Gn[a];i&&(i=i.extractEvents(e,t,n,r))&&(o=m(o,i))}return o}function O(e){e&&(tr=m(tr,e))}function T(e){var t=tr;tr=null,t&&(e?y(t,b):y(t,g),tr&&r("95"),qn.rethrowCaughtError())}function _(e){if(e[ar])return e[ar];for(var t=[];!e[ar];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}var n=void 0,r=e[ar];if(5===r.tag||6===r.tag)return r;for(;e&&(r=e[ar]);e=t.pop())n=r;return n}function C(e){if(5===e.tag||6===e.tag)return e.stateNode;r("33")}function x(e){return e[ir]||null}function k(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function N(e,t,n){for(var r=[];e;)r.push(e),e=k(e);for(e=r.length;0<e--;)t(r[e],"captured",n);for(e=0;e<r.length;e++)t(r[e],"bubbled",n)}function j(e,t,n){(t=w(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=m(n._dispatchListeners,t),n._dispatchInstances=m(n._dispatchInstances,e))}function P(e){e&&e.dispatchConfig.phasedRegistrationNames&&N(e._targetInst,j,e)}function I(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst;t=t?k(t):null,N(t,j,e)}}function S(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=w(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=m(n._dispatchListeners,t),n._dispatchInstances=m(n._dispatchInstances,e))}function A(e){e&&e.dispatchConfig.registrationName&&S(e._targetInst,null,e)}function R(e){y(e,P)}function D(e,t,n,r){if(n&&r)e:{for(var o=n,a=r,i=0,u=o;u;u=k(u))i++;u=0;for(var c=a;c;c=k(c))u++;for(;0<i-u;)o=k(o),i--;for(;0<u-i;)a=k(a),u--;for(;i--;){if(o===a||o===a.alternate)break e;o=k(o),a=k(a)}o=null}else o=null;for(a=o,o=[];n&&n!==a&&(null===(i=n.alternate)||i!==a);)o.push(n),n=k(n);for(n=[];r&&r!==a&&(null===(i=r.alternate)||i!==a);)n.push(r),r=k(r);for(r=0;r<o.length;r++)S(o[r],"bubbled",e);for(e=n.length;0<e--;)S(n[e],"captured",t)}function L(){return!sr&&wn.canUseDOM&&(sr="textContent"in document.documentElement?"textContent":"innerText"),sr}function M(){if(lr._fallbackText)return lr._fallbackText;var e,t,n=lr._startText,r=n.length,o=U(),a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return lr._fallbackText=o.slice(e,1<t?1-t:void 0),lr._fallbackText}function U(){return"value"in lr._root?lr._root.value:lr._root[L()]}function H(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface;for(var o in e)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?On.thatReturnsTrue:On.thatReturnsFalse,this.isPropagationStopped=On.thatReturnsFalse,this}function F(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function B(e){e instanceof this||r("223"),e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function z(e){e.eventPool=[],e.getPooled=F,e.release=B}function V(e,t,n,r){return H.call(this,e,t,n,r)}function q(e,t,n,r){return H.call(this,e,t,n,r)}function W(e,t){switch(e){case"topKeyUp":return-1!==dr.indexOf(t.keyCode);case"topKeyDown":return 229!==t.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function K(e){return e=e.detail,"object"===typeof e&&"data"in e?e.data:null}function G(e,t){switch(e){case"topCompositionEnd":return K(t);case"topKeyPress":return 32!==t.which?null:(Tr=!0,Er);case"topTextInput":return e=t.data,e===Er&&Tr?null:e;default:return null}}function Y(e,t){if(_r)return"topCompositionEnd"===e||!hr&&W(e,t)?(e=M(),lr._root=null,lr._startText=null,lr._fallbackText=null,_r=!1,e):null;switch(e){case"topPaste":return null;case"topKeyPress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"topCompositionEnd":return wr?null:t.data;default:return null}}function $(e){if(e=Zn(e)){xr&&"function"===typeof xr.restoreControlledState||r("194");var t=Xn(e.stateNode);xr.restoreControlledState(e.stateNode,e.type,t)}}function Q(e){kr?Nr?Nr.push(e):Nr=[e]:kr=e}function J(){if(kr){var e=kr,t=Nr;if(Nr=kr=null,$(e),t)for(e=0;e<t.length;e++)$(t[e])}}function X(e,t){return e(t)}function Z(e,t){if(Ir)return X(e,t);Ir=!0;try{return X(e,t)}finally{Ir=!1,J()}}function ee(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Sr[e.type]:"textarea"===t}function te(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function ne(e,t){if(!wn.canUseDOM||t&&!("addEventListener"in document))return!1;t="on"+e;var n=t in document;return n||(n=document.createElement("div"),n.setAttribute(t,"return;"),n="function"===typeof n[t]),!n&&br&&"wheel"===e&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}function re(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function oe(e){var t=re(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"function"===typeof n.get&&"function"===typeof n.set)return Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:!0,get:function(){return n.get.call(this)},set:function(e){r=""+e,n.set.call(this,e)}}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}function ae(e){e._valueTracker||(e._valueTracker=oe(e))}function ie(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=re(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ue(e,t,n){return e=H.getPooled(Ar.change,e,t,n),e.type="change",Q(n),R(e),e}function ce(e){O(e),T(!1)}function se(e){if(ie(C(e)))return e}function le(e,t){if("topChange"===e)return t}function fe(){Rr&&(Rr.detachEvent("onpropertychange",pe),Dr=Rr=null)}function pe(e){"value"===e.propertyName&&se(Dr)&&(e=ue(Dr,e,te(e)),Z(ce,e))}function de(e,t,n){"topFocus"===e?(fe(),Rr=t,Dr=n,Rr.attachEvent("onpropertychange",pe)):"topBlur"===e&&fe()}function he(e){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return se(Dr)}function me(e,t){if("topClick"===e)return se(t)}function ye(e,t){if("topInput"===e||"topChange"===e)return se(t)}function ve(e,t,n,r){return H.call(this,e,t,n,r)}function be(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Ur[e])&&!!t[e]}function ge(){return be}function we(e,t,n,r){return H.call(this,e,t,n,r)}function Ee(e){return e=e.type,"string"===typeof e?e:"function"===typeof e?e.displayName||e.name:null}function Oe(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!==(2&t.effectTag))return 1;for(;t.return;)if(t=t.return,0!==(2&t.effectTag))return 1}return 3===t.tag?2:3}function Te(e){return!!(e=e._reactInternalFiber)&&2===Oe(e)}function _e(e){2!==Oe(e)&&r("188")}function Ce(e){var t=e.alternate;if(!t)return t=Oe(e),3===t&&r("188"),1===t?null:e;for(var n=e,o=t;;){var a=n.return,i=a?a.alternate:null;if(!a||!i)break;if(a.child===i.child){for(var u=a.child;u;){if(u===n)return _e(a),e;if(u===o)return _e(a),t;u=u.sibling}r("188")}if(n.return!==o.return)n=a,o=i;else{u=!1;for(var c=a.child;c;){if(c===n){u=!0,n=a,o=i;break}if(c===o){u=!0,o=a,n=i;break}c=c.sibling}if(!u){for(c=i.child;c;){if(c===n){u=!0,n=i,o=a;break}if(c===o){u=!0,o=i,n=a;break}c=c.sibling}u||r("189")}}n.alternate!==o&&r("190")}return 3!==n.tag&&r("188"),n.stateNode.current===n?e:t}function xe(e){if(!(e=Ce(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function ke(e){if(!(e=Ce(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Ne(e){var t=e.targetInst;do{if(!t){e.ancestors.push(t);break}var n;for(n=t;n.return;)n=n.return;if(!(n=3!==n.tag?null:n.stateNode.containerInfo))break;e.ancestors.push(t),t=_(n)}while(t);for(n=0;n<e.ancestors.length;n++)t=e.ancestors[n],qr(e.topLevelType,t,e.nativeEvent,te(e.nativeEvent))}function je(e){Vr=!!e}function Pe(e,t,n){return n?Tn.listen(n,t,Se.bind(null,e)):null}function Ie(e,t,n){return n?Tn.capture(n,t,Se.bind(null,e)):null}function Se(e,t){if(Vr){var n=te(t);if(n=_(n),null===n||"number"!==typeof n.tag||2===Oe(n)||(n=null),zr.length){var r=zr.pop();r.topLevelType=e,r.nativeEvent=t,r.targetInst=n,e=r}else e={topLevelType:e,nativeEvent:t,targetInst:n,ancestors:[]};try{Z(Ne,e)}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>zr.length&&zr.push(e)}}}function Ae(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function Re(e){if(Gr[e])return Gr[e];if(!Kr[e])return e;var t,n=Kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Yr)return Gr[e]=n[t];return""}function De(e){return Object.prototype.hasOwnProperty.call(e,Xr)||(e[Xr]=Jr++,Qr[e[Xr]]={}),Qr[e[Xr]]}function Le(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Me(e,t){var n=Le(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Le(n)}}function Ue(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)}function He(e,t){if(oo||null==to||to!==_n())return null;var n=to;return"selectionStart"in n&&Ue(n)?n={start:n.selectionStart,end:n.selectionEnd}:window.getSelection?(n=window.getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}):n=void 0,ro&&Cn(ro,n)?null:(ro=n,e=H.getPooled(eo.select,no,e,t),e.type="select",e.target=to,R(e),e)}function Fe(e,t,n,r){return H.call(this,e,t,n,r)}function Be(e,t,n,r){return H.call(this,e,t,n,r)}function ze(e,t,n,r){return H.call(this,e,t,n,r)}function Ve(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,32<=e||13===e?e:0}function qe(e,t,n,r){return H.call(this,e,t,n,r)}function We(e,t,n,r){return H.call(this,e,t,n,r)}function Ke(e,t,n,r){return H.call(this,e,t,n,r)}function Ge(e,t,n,r){return H.call(this,e,t,n,r)}function Ye(e,t,n,r){return H.call(this,e,t,n,r)}function $e(e){0>po||(e.current=fo[po],fo[po]=null,po--)}function Qe(e,t){po++,fo[po]=e.current,e.current=t}function Je(e){return Ze(e)?yo:ho.current}function Xe(e,t){var n=e.type.contextTypes;if(!n)return Nn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ze(e){return 2===e.tag&&null!=e.type.childContextTypes}function et(e){Ze(e)&&($e(mo,e),$e(ho,e))}function tt(e,t,n){null!=ho.cursor&&r("168"),Qe(ho,t,e),Qe(mo,n,e)}function nt(e,t){var n=e.stateNode,o=e.type.childContextTypes;if("function"!==typeof n.getChildContext)return t;n=n.getChildContext();for(var a in n)a in o||r("108",Ee(e)||"Unknown",a);return En({},t,n)}function rt(e){if(!Ze(e))return!1;var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Nn,yo=ho.current,Qe(ho,t,e),Qe(mo,mo.current,e),!0}function ot(e,t){var n=e.stateNode;if(n||r("169"),t){var o=nt(e,yo);n.__reactInternalMemoizedMergedChildContext=o,$e(mo,e),$e(ho,e),Qe(ho,o,e)}else $e(mo,e);Qe(mo,t,e)}function at(e,t,n){this.tag=e,this.key=t,this.stateNode=this.type=null,this.sibling=this.child=this.return=null,this.index=0,this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null,this.internalContextTag=n,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function it(e,t,n){var r=e.alternate;return null===r?(r=new at(e.tag,e.key,e.internalContextTag),r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.effectTag=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.expirationTime=n,r.pendingProps=t,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function ut(e,t,n){var o=void 0,a=e.type,i=e.key;return"function"===typeof a?(o=a.prototype&&a.prototype.isReactComponent?new at(2,i,t):new at(0,i,t),o.type=a,o.pendingProps=e.props):"string"===typeof a?(o=new at(5,i,t),o.type=a,o.pendingProps=e.props):"object"===typeof a&&null!==a&&"number"===typeof a.tag?(o=a,o.pendingProps=e.props):r("130",null==a?a:typeof a,""),o.expirationTime=n,o}function ct(e,t,n,r){return t=new at(10,r,t),t.pendingProps=e,t.expirationTime=n,t}function st(e,t,n){return t=new at(6,null,t),t.pendingProps=e,t.expirationTime=n,t}function lt(e,t,n){return t=new at(7,e.key,t),t.type=e.handler,t.pendingProps=e,t.expirationTime=n,t}function ft(e,t,n){return e=new at(9,null,t),e.expirationTime=n,e}function pt(e,t,n){return t=new at(4,e.key,t),t.pendingProps=e.children||[],t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function dt(e){return function(t){try{return e(t)}catch(e){}}}function ht(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);vo=dt(function(e){return t.onCommitFiberRoot(n,e)}),bo=dt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function mt(e){"function"===typeof vo&&vo(e)}function yt(e){"function"===typeof bo&&bo(e)}function vt(e){return{baseState:e,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function bt(e,t){null===e.last?e.first=e.last=t:(e.last.next=t,e.last=t),(0===e.expirationTime||e.expirationTime>t.expirationTime)&&(e.expirationTime=t.expirationTime)}function gt(e,t){var n=e.alternate,r=e.updateQueue;null===r&&(r=e.updateQueue=vt(null)),null!==n?null===(e=n.updateQueue)&&(e=n.updateQueue=vt(null)):e=null,e=e!==r?e:null,null===e?bt(r,t):null===r.last||null===e.last?(bt(r,t),bt(e,t)):(bt(r,t),e.last=t)}function wt(e,t,n,r){return e=e.partialState,"function"===typeof e?e.call(t,n,r):e}function Et(e,t,n,r,o,a){null!==e&&e.updateQueue===n&&(n=t.updateQueue={baseState:n.baseState,expirationTime:n.expirationTime,first:n.first,last:n.last,isInitialized:n.isInitialized,callbackList:null,hasForceUpdate:!1}),n.expirationTime=0,n.isInitialized?e=n.baseState:(e=n.baseState=t.memoizedState,n.isInitialized=!0);for(var i=!0,u=n.first,c=!1;null!==u;){var s=u.expirationTime;if(s>a){var l=n.expirationTime;(0===l||l>s)&&(n.expirationTime=s),c||(c=!0,n.baseState=e)}else c||(n.first=u.next,null===n.first&&(n.last=null)),u.isReplace?(e=wt(u,r,e,o),i=!0):(s=wt(u,r,e,o))&&(e=i?En({},e,s):En(e,s),i=!1),u.isForced&&(n.hasForceUpdate=!0),null!==u.callback&&(s=n.callbackList,null===s&&(s=n.callbackList=[]),s.push(u));u=u.next}return null!==n.callbackList?t.effectTag|=32:null!==n.first||n.hasForceUpdate||(t.updateQueue=null),c||(n.baseState=e),e}function Ot(e,t){var n=e.callbackList;if(null!==n)for(e.callbackList=null,e=0;e<n.length;e++){var o=n[e],a=o.callback;o.callback=null,"function"!==typeof a&&r("191",a),a.call(t)}}function Tt(e,t,n,o){function a(e,t){t.updater=i,e.stateNode=t,t._reactInternalFiber=e}var i={isMounted:Te,enqueueSetState:function(n,r,o){n=n._reactInternalFiber,o=void 0===o?null:o;var a=t(n);gt(n,{expirationTime:a,partialState:r,callback:o,isReplace:!1,isForced:!1,nextCallback:null,next:null}),e(n,a)},enqueueReplaceState:function(n,r,o){n=n._reactInternalFiber,o=void 0===o?null:o;var a=t(n);gt(n,{expirationTime:a,partialState:r,callback:o,isReplace:!0,isForced:!1,nextCallback:null,next:null}),e(n,a)},enqueueForceUpdate:function(n,r){n=n._reactInternalFiber,r=void 0===r?null:r;var o=t(n);gt(n,{expirationTime:o,partialState:null,callback:r,isReplace:!1,isForced:!0,nextCallback:null,next:null}),e(n,o)}};return{adoptClassInstance:a,constructClassInstance:function(e,t){var n=e.type,r=Je(e),o=2===e.tag&&null!=e.type.contextTypes,i=o?Xe(e,r):Nn;return t=new n(t,i),a(e,t),o&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=i),t},mountClassInstance:function(e,t){var n=e.alternate,o=e.stateNode,a=o.state||null,u=e.pendingProps;u||r("158");var c=Je(e);o.props=u,o.state=e.memoizedState=a,o.refs=Nn,o.context=Xe(e,c),null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent&&(e.internalContextTag|=1),"function"===typeof o.componentWillMount&&(a=o.state,o.componentWillMount(),a!==o.state&&i.enqueueReplaceState(o,o.state,null),null!==(a=e.updateQueue)&&(o.state=Et(n,e,a,o,u,t))),"function"===typeof o.componentDidMount&&(e.effectTag|=4)},updateClassInstance:function(e,t,a){var u=t.stateNode;u.props=t.memoizedProps,u.state=t.memoizedState;var c=t.memoizedProps,s=t.pendingProps;s||null==(s=c)&&r("159");var l=u.context,f=Je(t);if(f=Xe(t,f),"function"!==typeof u.componentWillReceiveProps||c===s&&l===f||(l=u.state,u.componentWillReceiveProps(s,f),u.state!==l&&i.enqueueReplaceState(u,u.state,null)),l=t.memoizedState,a=null!==t.updateQueue?Et(e,t,t.updateQueue,u,s,a):l,!(c!==s||l!==a||mo.current||null!==t.updateQueue&&t.updateQueue.hasForceUpdate))return"function"!==typeof u.componentDidUpdate||c===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),!1;var p=s;if(null===c||null!==t.updateQueue&&t.updateQueue.hasForceUpdate)p=!0;else{var d=t.stateNode,h=t.type;p="function"===typeof d.shouldComponentUpdate?d.shouldComponentUpdate(p,a,f):!h.prototype||!h.prototype.isPureReactComponent||(!Cn(c,p)||!Cn(l,a))}return p?("function"===typeof u.componentWillUpdate&&u.componentWillUpdate(s,a,f),"function"===typeof u.componentDidUpdate&&(t.effectTag|=4)):("function"!==typeof u.componentDidUpdate||c===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),n(t,s),o(t,a)),u.props=s,u.state=a,u.context=f,p}}}function _t(e){return null===e||"undefined"===typeof e?null:(e=Co&&e[Co]||e["@@iterator"],"function"===typeof e?e:null)}function Ct(e,t){var n=t.ref;if(null!==n&&"function"!==typeof n){if(t._owner){t=t._owner;var o=void 0;t&&(2!==t.tag&&r("110"),o=t.stateNode),o||r("147",n);var a=""+n;return null!==e&&null!==e.ref&&e.ref._stringRef===a?e.ref:(e=function(e){var t=o.refs===Nn?o.refs={}:o.refs;null===e?delete t[a]:t[a]=e},e._stringRef=a,e)}"string"!==typeof n&&r("148"),t._owner||r("149",n)}return n}function xt(e,t){"textarea"!==e.type&&r("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function kt(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function o(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return e=it(e,t,n),e.index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index,r<n?(t.effectTag=2,n):r):(t.effectTag=2,n):n}function u(t){return e&&null===t.alternate&&(t.effectTag=2),t}function c(e,t,n,r){return null===t||6!==t.tag?(t=st(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function s(e,t,n,r){return null!==t&&t.type===n.type?(r=a(t,n.props,r),r.ref=Ct(t,n),r.return=e,r):(r=ut(n,e.internalContextTag,r),r.ref=Ct(t,n),r.return=e,r)}function l(e,t,n,r){return null===t||7!==t.tag?(t=lt(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function f(e,t,n,r){return null===t||9!==t.tag?(t=ft(n,e.internalContextTag,r),t.type=n.value,t.return=e,t):(t=a(t,null,r),t.type=n.value,t.return=e,t)}function p(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=pt(n,e.internalContextTag,r),t.return=e,t):(t=a(t,n.children||[],r),t.return=e,t)}function d(e,t,n,r,o){return null===t||10!==t.tag?(t=ct(n,e.internalContextTag,r,o),t.return=e,t):(t=a(t,n,r),t.return=e,t)}function h(e,t,n){if("string"===typeof t||"number"===typeof t)return t=st(""+t,e.internalContextTag,n),t.return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case wo:return t.type===_o?(t=ct(t.props.children,e.internalContextTag,n,t.key),t.return=e,t):(n=ut(t,e.internalContextTag,n),n.ref=Ct(null,t),n.return=e,n);case Eo:return t=lt(t,e.internalContextTag,n),t.return=e,t;case Oo:return n=ft(t,e.internalContextTag,n),n.type=t.value,n.return=e,n;case To:return t=pt(t,e.internalContextTag,n),t.return=e,t}if(xo(t)||_t(t))return t=ct(t,e.internalContextTag,n,null),t.return=e,t;xt(e,t)}return null}function m(e,t,n,r){var o=null!==t?t.key:null;if("string"===typeof n||"number"===typeof n)return null!==o?null:c(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case wo:return n.key===o?n.type===_o?d(e,t,n.props.children,r,o):s(e,t,n,r):null;case Eo:return n.key===o?l(e,t,n,r):null;case Oo:return null===o?f(e,t,n,r):null;case To:return n.key===o?p(e,t,n,r):null}if(xo(n)||_t(n))return null!==o?null:d(e,t,n,r,null);xt(e,n)}return null}function y(e,t,n,r,o){if("string"===typeof r||"number"===typeof r)return e=e.get(n)||null,c(t,e,""+r,o);if("object"===typeof r&&null!==r){switch(r.$$typeof){case wo:return e=e.get(null===r.key?n:r.key)||null,r.type===_o?d(t,e,r.props.children,o,r.key):s(t,e,r,o);case Eo:return e=e.get(null===r.key?n:r.key)||null,l(t,e,r,o);case Oo:return e=e.get(n)||null,f(t,e,r,o);case To:return e=e.get(null===r.key?n:r.key)||null,p(t,e,r,o)}if(xo(r)||_t(r))return e=e.get(n)||null,d(t,e,r,o,null);xt(t,r)}return null}function v(r,a,u,c){for(var s=null,l=null,f=a,p=a=0,d=null;null!==f&&p<u.length;p++){f.index>p?(d=f,f=null):d=f.sibling;var v=m(r,f,u[p],c);if(null===v){null===f&&(f=d);break}e&&f&&null===v.alternate&&t(r,f),a=i(v,a,p),null===l?s=v:l.sibling=v,l=v,f=d}if(p===u.length)return n(r,f),s;if(null===f){for(;p<u.length;p++)(f=h(r,u[p],c))&&(a=i(f,a,p),null===l?s=f:l.sibling=f,l=f);return s}for(f=o(r,f);p<u.length;p++)(d=y(f,r,p,u[p],c))&&(e&&null!==d.alternate&&f.delete(null===d.key?p:d.key),a=i(d,a,p),null===l?s=d:l.sibling=d,l=d);return e&&f.forEach(function(e){return t(r,e)}),s}function b(a,u,c,s){var l=_t(c);"function"!==typeof l&&r("150"),null==(c=l.call(c))&&r("151");for(var f=l=null,p=u,d=u=0,v=null,b=c.next();null!==p&&!b.done;d++,b=c.next()){p.index>d?(v=p,p=null):v=p.sibling;var g=m(a,p,b.value,s);if(null===g){p||(p=v);break}e&&p&&null===g.alternate&&t(a,p),u=i(g,u,d),null===f?l=g:f.sibling=g,f=g,p=v}if(b.done)return n(a,p),l;if(null===p){for(;!b.done;d++,b=c.next())null!==(b=h(a,b.value,s))&&(u=i(b,u,d),null===f?l=b:f.sibling=b,f=b);return l}for(p=o(a,p);!b.done;d++,b=c.next())null!==(b=y(p,a,d,b.value,s))&&(e&&null!==b.alternate&&p.delete(null===b.key?d:b.key),u=i(b,u,d),null===f?l=b:f.sibling=b,f=b);return e&&p.forEach(function(e){return t(a,e)}),l}return function(e,o,i,c){"object"===typeof i&&null!==i&&i.type===_o&&null===i.key&&(i=i.props.children);var s="object"===typeof i&&null!==i;if(s)switch(i.$$typeof){case wo:e:{var l=i.key;for(s=o;null!==s;){if(s.key===l){if(10===s.tag?i.type===_o:s.type===i.type){n(e,s.sibling),o=a(s,i.type===_o?i.props.children:i.props,c),o.ref=Ct(s,i),o.return=e,e=o;break e}n(e,s);break}t(e,s),s=s.sibling}i.type===_o?(o=ct(i.props.children,e.internalContextTag,c,i.key),o.return=e,e=o):(c=ut(i,e.internalContextTag,c),c.ref=Ct(o,i),c.return=e,e=c)}return u(e);case Eo:e:{for(s=i.key;null!==o;){if(o.key===s){if(7===o.tag){n(e,o.sibling),o=a(o,i,c),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=lt(i,e.internalContextTag,c),o.return=e,e=o}return u(e);case Oo:e:{if(null!==o){if(9===o.tag){n(e,o.sibling),o=a(o,null,c),o.type=i.value,o.return=e,e=o;break e}n(e,o)}o=ft(i,e.internalContextTag,c),o.type=i.value,o.return=e,e=o}return u(e);case To:e:{for(s=i.key;null!==o;){if(o.key===s){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(e,o.sibling),o=a(o,i.children||[],c),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=pt(i,e.internalContextTag,c),o.return=e,e=o}return u(e)}if("string"===typeof i||"number"===typeof i)return i=""+i,null!==o&&6===o.tag?(n(e,o.sibling),o=a(o,i,c)):(n(e,o),o=st(i,e.internalContextTag,c)),o.return=e,e=o,u(e);if(xo(i))return v(e,o,i,c);if(_t(i))return b(e,o,i,c);if(s&&xt(e,i),"undefined"===typeof i)switch(e.tag){case 2:case 1:c=e.type,r("152",c.displayName||c.name||"Component")}return n(e,o)}}function Nt(e,t,n,o,a){function i(e,t,n){var r=t.expirationTime;t.child=null===e?No(t,null,n,r):ko(t,e.child,n,r)}function u(e,t){var n=t.ref;null===n||e&&e.ref===n||(t.effectTag|=128)}function c(e,t,n,r){if(u(e,t),!n)return r&&ot(t,!1),l(e,t);n=t.stateNode,Br.current=t;var o=n.render();return t.effectTag|=1,i(e,t,o),t.memoizedState=n.state,t.memoizedProps=n.props,r&&ot(t,!0),t.child}function s(e){var t=e.stateNode;t.pendingContext?tt(e,t.pendingContext,t.pendingContext!==t.context):t.context&&tt(e,t.context,!1),y(e,t.containerInfo)}function l(e,t){if(null!==e&&t.child!==e.child&&r("153"),null!==t.child){e=t.child;var n=it(e,e.pendingProps,e.expirationTime);for(t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,n=n.sibling=it(e,e.pendingProps,e.expirationTime),n.return=t;n.sibling=null}return t.child}function f(e,t){switch(t.tag){case 3:s(t);break;case 2:rt(t);break;case 4:y(t,t.stateNode.containerInfo)}return null}var p=e.shouldSetTextContent,d=e.useSyncScheduling,h=e.shouldDeprioritizeSubtree,m=t.pushHostContext,y=t.pushHostContainer,v=n.enterHydrationState,b=n.resetHydrationState,g=n.tryToClaimNextHydratableInstance;e=Tt(o,a,function(e,t){e.memoizedProps=t},function(e,t){e.memoizedState=t});var w=e.adoptClassInstance,E=e.constructClassInstance,O=e.mountClassInstance,T=e.updateClassInstance;return{beginWork:function(e,t,n){if(0===t.expirationTime||t.expirationTime>n)return f(e,t);switch(t.tag){case 0:null!==e&&r("155");var o=t.type,a=t.pendingProps,_=Je(t);return _=Xe(t,_),o=o(a,_),t.effectTag|=1,"object"===typeof o&&null!==o&&"function"===typeof o.render?(t.tag=2,a=rt(t),w(t,o),O(t,n),t=c(e,t,!0,a)):(t.tag=1,i(e,t,o),t.memoizedProps=a,t=t.child),t;case 1:e:{if(a=t.type,n=t.pendingProps,o=t.memoizedProps,mo.current)null===n&&(n=o);else if(null===n||o===n){t=l(e,t);break e}o=Je(t),o=Xe(t,o),a=a(n,o),t.effectTag|=1,i(e,t,a),t.memoizedProps=n,t=t.child}return t;case 2:return a=rt(t),o=void 0,null===e?t.stateNode?r("153"):(E(t,t.pendingProps),O(t,n),o=!0):o=T(e,t,n),c(e,t,o,a);case 3:return s(t),a=t.updateQueue,null!==a?(o=t.memoizedState,a=Et(e,t,a,null,null,n),o===a?(b(),t=l(e,t)):(o=a.element,_=t.stateNode,(null===e||null===e.child)&&_.hydrate&&v(t)?(t.effectTag|=2,t.child=No(t,null,o,n)):(b(),i(e,t,o)),t.memoizedState=a,t=t.child)):(b(),t=l(e,t)),t;case 5:m(t),null===e&&g(t),a=t.type;var C=t.memoizedProps;return o=t.pendingProps,null===o&&null===(o=C)&&r("154"),_=null!==e?e.memoizedProps:null,mo.current||null!==o&&C!==o?(C=o.children,p(a,o)?C=null:_&&p(a,_)&&(t.effectTag|=16),u(e,t),2147483647!==n&&!d&&h(a,o)?(t.expirationTime=2147483647,t=null):(i(e,t,C),t.memoizedProps=o,t=t.child)):t=l(e,t),t;case 6:return null===e&&g(t),e=t.pendingProps,null===e&&(e=t.memoizedProps),t.memoizedProps=e,null;case 8:t.tag=7;case 7:return a=t.pendingProps,mo.current?null===a&&null===(a=e&&e.memoizedProps)&&r("154"):null!==a&&t.memoizedProps!==a||(a=t.memoizedProps),o=a.children,t.stateNode=null===e?No(t,t.stateNode,o,n):ko(t,t.stateNode,o,n),t.memoizedProps=a,t.stateNode;case 9:return null;case 4:e:{if(y(t,t.stateNode.containerInfo),a=t.pendingProps,mo.current)null===a&&null==(a=e&&e.memoizedProps)&&r("154");else if(null===a||t.memoizedProps===a){t=l(e,t);break e}null===e?t.child=ko(t,null,a,n):i(e,t,a),t.memoizedProps=a,t=t.child}return t;case 10:e:{if(n=t.pendingProps,mo.current)null===n&&(n=t.memoizedProps);else if(null===n||t.memoizedProps===n){t=l(e,t);break e}i(e,t,n),t.memoizedProps=n,t=t.child}return t;default:r("156")}},beginFailedWork:function(e,t,n){switch(t.tag){case 2:rt(t);break;case 3:s(t);break;default:r("157")}return t.effectTag|=64,null===e?t.child=null:t.child!==e.child&&(t.child=e.child),0===t.expirationTime||t.expirationTime>n?f(e,t):(t.firstEffect=null,t.lastEffect=null,t.child=null===e?No(t,null,null,n):ko(t,e.child,null,n),2===t.tag&&(e=t.stateNode,t.memoizedProps=e.props,t.memoizedState=e.state),t.child)}}}function jt(e,t,n){function o(e){e.effectTag|=4}var a=e.createInstance,i=e.createTextInstance,u=e.appendInitialChild,c=e.finalizeInitialChildren,s=e.prepareUpdate,l=e.persistence,f=t.getRootHostContainer,p=t.popHostContext,d=t.getHostContext,h=t.popHostContainer,m=n.prepareToHydrateHostInstance,y=n.prepareToHydrateHostTextInstance,v=n.popHydrationState,b=void 0,g=void 0,w=void 0;return e.mutation?(b=function(){},g=function(e,t,n){(t.updateQueue=n)&&o(t)},w=function(e,t,n,r){n!==r&&o(t)}):r(l?"235":"236"),{completeWork:function(e,t,n){var l=t.pendingProps;switch(null===l?l=t.memoizedProps:2147483647===t.expirationTime&&2147483647!==n||(t.pendingProps=null),t.tag){case 1:return null;case 2:return et(t),null;case 3:return h(t),$e(mo,t),$e(ho,t),l=t.stateNode,l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),null!==e&&null!==e.child||(v(t),t.effectTag&=-3),b(t),null;case 5:p(t),n=f();var E=t.type;if(null!==e&&null!=t.stateNode){var O=e.memoizedProps,T=t.stateNode,_=d();T=s(T,E,O,l,n,_),g(e,t,T,E,O,l,n),e.ref!==t.ref&&(t.effectTag|=128)}else{if(!l)return null===t.stateNode&&r("166"),null;if(e=d(),v(t))m(t,n,e)&&o(t);else{e=a(E,l,n,e,t);e:for(O=t.child;null!==O;){if(5===O.tag||6===O.tag)u(e,O.stateNode);else if(4!==O.tag&&null!==O.child){O.child.return=O,O=O.child;continue}if(O===t)break;for(;null===O.sibling;){if(null===O.return||O.return===t)break e;O=O.return}O.sibling.return=O.return,O=O.sibling}c(e,E,l,n)&&o(t),t.stateNode=e}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)w(e,t,e.memoizedProps,l);else{if("string"!==typeof l)return null===t.stateNode&&r("166"),null;e=f(),n=d(),v(t)?y(t)&&o(t):t.stateNode=i(l,e,n,t)}return null;case 7:(l=t.memoizedProps)||r("165"),t.tag=8,E=[];e:for((O=t.stateNode)&&(O.return=t);null!==O;){if(5===O.tag||6===O.tag||4===O.tag)r("247");else if(9===O.tag)E.push(O.type);else if(null!==O.child){O.child.return=O,O=O.child;continue}for(;null===O.sibling;){if(null===O.return||O.return===t)break e;O=O.return}O.sibling.return=O.return,O=O.sibling}return O=l.handler,l=O(l.props,E),t.child=ko(t,null!==e?e.child:null,l,n),t.child;case 8:return t.tag=7,null;case 9:case 10:return null;case 4:return h(t),b(t),null;case 0:r("167");default:r("156")}}}}function Pt(e,t){function n(e){var n=e.ref;if(null!==n)try{n(null)}catch(n){t(e,n)}}function o(e){switch("function"===typeof yt&&yt(e),e.tag){case 2:n(e);var r=e.stateNode;if("function"===typeof r.componentWillUnmount)try{r.props=e.memoizedProps,r.state=e.memoizedState,r.componentWillUnmount()}catch(n){t(e,n)}break;case 5:n(e);break;case 7:a(e.stateNode);break;case 4:s&&u(e)}}function a(e){for(var t=e;;)if(o(t),null===t.child||s&&4===t.tag){if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function i(e){return 5===e.tag||3===e.tag||4===e.tag}function u(e){for(var t=e,n=!1,i=void 0,u=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&r("160"),n.tag){case 5:i=n.stateNode,u=!1;break e;case 3:case 4:i=n.stateNode.containerInfo,u=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag)a(t),u?g(i,t.stateNode):b(i,t.stateNode);else if(4===t.tag?i=t.stateNode.containerInfo:o(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,4===t.tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}var c=e.getPublicInstance,s=e.mutation;e=e.persistence,s||r(e?"235":"236");var l=s.commitMount,f=s.commitUpdate,p=s.resetTextContent,d=s.commitTextUpdate,h=s.appendChild,m=s.appendChildToContainer,y=s.insertBefore,v=s.insertInContainerBefore,b=s.removeChild,g=s.removeChildFromContainer;return{commitResetTextContent:function(e){p(e.stateNode)},commitPlacement:function(e){e:{for(var t=e.return;null!==t;){if(i(t)){var n=t;break e}t=t.return}r("160"),n=void 0}var o=t=void 0;switch(n.tag){case 5:t=n.stateNode,o=!1;break;case 3:case 4:t=n.stateNode.containerInfo,o=!0;break;default:r("161")}16&n.effectTag&&(p(t),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||i(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){if(5===a.tag||6===a.tag)n?o?v(t,a.stateNode,n):y(t,a.stateNode,n):o?m(t,a.stateNode):h(t,a.stateNode);else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}},commitDeletion:function(e){u(e),e.return=null,e.child=null,e.alternate&&(e.alternate.child=null,e.alternate.return=null)},commitWork:function(e,t){switch(t.tag){case 2:break;case 5:var n=t.stateNode;if(null!=n){var o=t.memoizedProps;e=null!==e?e.memoizedProps:o;var a=t.type,i=t.updateQueue;t.updateQueue=null,null!==i&&f(n,i,a,e,o,t)}break;case 6:null===t.stateNode&&r("162"),n=t.memoizedProps,d(t.stateNode,null!==e?e.memoizedProps:n,n);break;case 3:break;default:r("163")}},commitLifeCycles:function(e,t){switch(t.tag){case 2:var n=t.stateNode;if(4&t.effectTag)if(null===e)n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidMount();else{var o=e.memoizedProps;e=e.memoizedState,n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidUpdate(o,e)}t=t.updateQueue,null!==t&&Ot(t,n);break;case 3:n=t.updateQueue,null!==n&&Ot(n,null!==t.child?t.child.stateNode:null);break;case 5:n=t.stateNode,null===e&&4&t.effectTag&&l(n,t.type,t.memoizedProps,t);break;case 6:case 4:break;default:r("163")}},commitAttachRef:function(e){var t=e.ref;if(null!==t){var n=e.stateNode;switch(e.tag){case 5:t(c(n));break;default:t(n)}}},commitDetachRef:function(e){null!==(e=e.ref)&&e(null)}}}function It(e){function t(e){return e===jo&&r("174"),e}var n=e.getChildHostContext,o=e.getRootHostContext,a={current:jo},i={current:jo},u={current:jo};return{getHostContext:function(){return t(a.current)},getRootHostContainer:function(){return t(u.current)},popHostContainer:function(e){$e(a,e),$e(i,e),$e(u,e)},popHostContext:function(e){i.current===e&&($e(a,e),$e(i,e))},pushHostContainer:function(e,t){Qe(u,t,e),t=o(t),Qe(i,e,e),Qe(a,t,e)},pushHostContext:function(e){var r=t(u.current),o=t(a.current);r=n(o,e.type,r),o!==r&&(Qe(i,e,e),Qe(a,r,e))},resetHostContainer:function(){a.current=jo,u.current=jo}}}function St(e){function t(e,t){var n=new at(5,null,0);n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function n(e,t){switch(e.tag){case 5:return null!==(t=i(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=u(t,e.pendingProps))&&(e.stateNode=t,!0);default:return!1}}function o(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag;)e=e.return;p=e}var a=e.shouldSetTextContent;if(!(e=e.hydration))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){r("175")},prepareToHydrateHostTextInstance:function(){r("176")},popHydrationState:function(){return!1}};var i=e.canHydrateInstance,u=e.canHydrateTextInstance,c=e.getNextHydratableSibling,s=e.getFirstHydratableChild,l=e.hydrateInstance,f=e.hydrateTextInstance,p=null,d=null,h=!1;return{enterHydrationState:function(e){return d=s(e.stateNode.containerInfo),p=e,h=!0},resetHydrationState:function(){d=p=null,h=!1},tryToClaimNextHydratableInstance:function(e){if(h){var r=d;if(r){if(!n(e,r)){if(!(r=c(r))||!n(e,r))return e.effectTag|=2,h=!1,void(p=e);t(p,d)}p=e,d=s(r)}else e.effectTag|=2,h=!1,p=e}},prepareToHydrateHostInstance:function(e,t,n){return t=l(e.stateNode,e.type,e.memoizedProps,t,n,e),e.updateQueue=t,null!==t},prepareToHydrateHostTextInstance:function(e){return f(e.stateNode,e.memoizedProps,e)},popHydrationState:function(e){if(e!==p)return!1;if(!h)return o(e),h=!0,!1;var n=e.type;if(5!==e.tag||"head"!==n&&"body"!==n&&!a(n,e.memoizedProps))for(n=d;n;)t(e,n),n=c(n);return o(e),d=p?c(e.stateNode):null,!0}}}function At(e){function t(e){ae=$=!0;var t=e.stateNode;if(t.current===e&&r("177"),t.isReadyForCommit=!1,Br.current=null,1<e.effectTag)if(null!==e.lastEffect){e.lastEffect.nextEffect=e;var n=e.firstEffect}else n=e;else n=e.firstEffect;for(q(),Z=n;null!==Z;){var o=!1,a=void 0;try{for(;null!==Z;){var i=Z.effectTag;if(16&i&&A(Z),128&i){var u=Z.alternate;null!==u&&H(u)}switch(-242&i){case 2:R(Z),Z.effectTag&=-3;break;case 6:R(Z),Z.effectTag&=-3,L(Z.alternate,Z);break;case 4:L(Z.alternate,Z);break;case 8:ie=!0,D(Z),ie=!1}Z=Z.nextEffect}}catch(e){o=!0,a=e}o&&(null===Z&&r("178"),c(Z,a),null!==Z&&(Z=Z.nextEffect))}for(W(),t.current=e,Z=n;null!==Z;){n=!1,o=void 0;try{for(;null!==Z;){var s=Z.effectTag;if(36&s&&M(Z.alternate,Z),128&s&&U(Z),64&s)switch(a=Z,i=void 0,null!==ee&&(i=ee.get(a),ee.delete(a),null==i&&null!==a.alternate&&(a=a.alternate,i=ee.get(a),ee.delete(a))),null==i&&r("184"),a.tag){case 2:a.stateNode.componentDidCatch(i.error,{componentStack:i.componentStack});break;case 3:null===re&&(re=i.error);break;default:r("157")}var l=Z.nextEffect;Z.nextEffect=null,Z=l}}catch(e){n=!0,o=e}n&&(null===Z&&r("178"),c(Z,o),null!==Z&&(Z=Z.nextEffect))}return $=ae=!1,"function"===typeof mt&&mt(e.stateNode),ne&&(ne.forEach(m),ne=null),null!==re&&(e=re,re=null,T(e)),t=t.current.expirationTime,0===t&&(te=ee=null),t}function n(e){for(;;){var t=S(e.alternate,e,X),n=e.return,r=e.sibling,o=e;if(2147483647===X||2147483647!==o.expirationTime){if(2!==o.tag&&3!==o.tag)var a=0;else a=o.updateQueue,a=null===a?0:a.expirationTime;for(var i=o.child;null!==i;)0!==i.expirationTime&&(0===a||a>i.expirationTime)&&(a=i.expirationTime),i=i.sibling;o.expirationTime=a}if(null!==t)return t;if(null!==n&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e)),null!==r)return r;if(null===n){e.stateNode.isReadyForCommit=!0;break}e=n}return null}function o(e){var t=P(e.alternate,e,X);return null===t&&(t=n(e)),Br.current=null,t}function a(e){var t=I(e.alternate,e,X);return null===t&&(t=n(e)),Br.current=null,t}function i(e){if(null!==ee){if(!(0===X||X>e))if(X<=G)for(;null!==Q;)Q=s(Q)?a(Q):o(Q);else for(;null!==Q&&!O();)Q=s(Q)?a(Q):o(Q)}else if(!(0===X||X>e))if(X<=G)for(;null!==Q;)Q=o(Q);else for(;null!==Q&&!O();)Q=o(Q)}function u(e,t){if($&&r("243"),$=!0,e.isReadyForCommit=!1,e!==J||t!==X||null===Q){for(;-1<po;)fo[po]=null,po--;yo=Nn,ho.current=Nn,mo.current=!1,N(),J=e,X=t,Q=it(J.current,null,t)}var n=!1,o=null;try{i(t)}catch(e){n=!0,o=e}for(;n;){if(oe){re=o;break}var u=Q;if(null===u)oe=!0;else{var s=c(u,o);if(null===s&&r("183"),!oe){try{for(n=s,o=t,s=n;null!==u;){switch(u.tag){case 2:et(u);break;case 5:k(u);break;case 3:x(u);break;case 4:x(u)}if(u===s||u.alternate===s)break;u=u.return}Q=a(n),i(o)}catch(e){n=!0,o=e;continue}break}}}return t=re,oe=$=!1,re=null,null!==t&&T(t),e.isReadyForCommit?e.current.alternate:null}function c(e,t){var n=Br.current=null,r=!1,o=!1,a=null;if(3===e.tag)n=e,l(e)&&(oe=!0);else for(var i=e.return;null!==i&&null===n;){if(2===i.tag?"function"===typeof i.stateNode.componentDidCatch&&(r=!0,a=Ee(i),n=i,o=!0):3===i.tag&&(n=i),l(i)){if(ie||null!==ne&&(ne.has(i)||null!==i.alternate&&ne.has(i.alternate)))return null;n=null,o=!1}i=i.return}if(null!==n){null===te&&(te=new Set),te.add(n);var u="";i=e;do{e:switch(i.tag){case 0:case 1:case 2:case 5:var c=i._debugOwner,s=i._debugSource,f=Ee(i),p=null;c&&(p=Ee(c)),c=s,f="\n    in "+(f||"Unknown")+(c?" (at "+c.fileName.replace(/^.*[\\\/]/,"")+":"+c.lineNumber+")":p?" (created by "+p+")":"");break e;default:f=""}u+=f,i=i.return}while(i);i=u,e=Ee(e),null===ee&&(ee=new Map),t={componentName:e,componentStack:i,error:t,errorBoundary:r?n.stateNode:null,errorBoundaryFound:r,errorBoundaryName:a,willRetry:o},ee.set(n,t);try{var d=t.error;d&&d.suppressReactErrorLogging||console.error(d)}catch(e){e&&e.suppressReactErrorLogging||console.error(e)}return ae?(null===ne&&(ne=new Set),ne.add(n)):m(n),n}return null===re&&(re=t),null}function s(e){return null!==ee&&(ee.has(e)||null!==e.alternate&&ee.has(e.alternate))}function l(e){return null!==te&&(te.has(e)||null!==e.alternate&&te.has(e.alternate))}function f(){return 20*(1+((y()+100)/20|0))}function p(e){return 0!==Y?Y:$?ae?1:X:!V||1&e.internalContextTag?f():1}function d(e,t){return h(e,t,!1)}function h(e,t){for(;null!==e;){if((0===e.expirationTime||e.expirationTime>t)&&(e.expirationTime=t),null!==e.alternate&&(0===e.alternate.expirationTime||e.alternate.expirationTime>t)&&(e.alternate.expirationTime=t),null===e.return){if(3!==e.tag)break;var n=e.stateNode;!$&&n===J&&t<X&&(Q=J=null,X=0);var o=n,a=t;if(Oe>we&&r("185"),null===o.nextScheduledRoot)o.remainingExpirationTime=a,null===ce?(ue=ce=o,o.nextScheduledRoot=o):(ce=ce.nextScheduledRoot=o,ce.nextScheduledRoot=ue);else{var i=o.remainingExpirationTime;(0===i||a<i)&&(o.remainingExpirationTime=a)}fe||(be?ge&&(pe=o,de=1,E(pe,de)):1===a?w(1,null):v(a)),!$&&n===J&&t<X&&(Q=J=null,X=0)}e=e.return}}function m(e){h(e,1,!0)}function y(){return G=2+((F()-K)/10|0)}function v(e){if(0!==se){if(e>se)return;z(le)}var t=F()-K;se=e,le=B(g,{timeout:10*(e-2)-t})}function b(){var e=0,t=null;if(null!==ce)for(var n=ce,o=ue;null!==o;){var a=o.remainingExpirationTime;if(0===a){if((null===n||null===ce)&&r("244"),o===o.nextScheduledRoot){ue=ce=o.nextScheduledRoot=null;break}if(o===ue)ue=a=o.nextScheduledRoot,ce.nextScheduledRoot=a,o.nextScheduledRoot=null;else{if(o===ce){ce=n,ce.nextScheduledRoot=ue,o.nextScheduledRoot=null;break}n.nextScheduledRoot=o.nextScheduledRoot,o.nextScheduledRoot=null}o=n.nextScheduledRoot}else{if((0===e||a<e)&&(e=a,t=o),o===ce)break;n=o,o=o.nextScheduledRoot}}n=pe,null!==n&&n===t?Oe++:Oe=0,pe=t,de=e}function g(e){w(0,e)}function w(e,t){for(ve=t,b();null!==pe&&0!==de&&(0===e||de<=e)&&!he;)E(pe,de),b();if(null!==ve&&(se=0,le=-1),0!==de&&v(de),ve=null,he=!1,Oe=0,me)throw e=ye,ye=null,me=!1,e}function E(e,n){if(fe&&r("245"),fe=!0,n<=y()){var o=e.finishedWork;null!==o?(e.finishedWork=null,e.remainingExpirationTime=t(o)):(e.finishedWork=null,null!==(o=u(e,n))&&(e.remainingExpirationTime=t(o)))}else o=e.finishedWork,null!==o?(e.finishedWork=null,e.remainingExpirationTime=t(o)):(e.finishedWork=null,null!==(o=u(e,n))&&(O()?e.finishedWork=o:e.remainingExpirationTime=t(o)));fe=!1}function O(){return!(null===ve||ve.timeRemaining()>Te)&&(he=!0)}function T(e){null===pe&&r("246"),pe.remainingExpirationTime=0,me||(me=!0,ye=e)}var _=It(e),C=St(e),x=_.popHostContainer,k=_.popHostContext,N=_.resetHostContainer,j=Nt(e,_,C,d,p),P=j.beginWork,I=j.beginFailedWork,S=jt(e,_,C).completeWork;_=Pt(e,c);var A=_.commitResetTextContent,R=_.commitPlacement,D=_.commitDeletion,L=_.commitWork,M=_.commitLifeCycles,U=_.commitAttachRef,H=_.commitDetachRef,F=e.now,B=e.scheduleDeferredCallback,z=e.cancelDeferredCallback,V=e.useSyncScheduling,q=e.prepareForCommit,W=e.resetAfterCommit,K=F(),G=2,Y=0,$=!1,Q=null,J=null,X=0,Z=null,ee=null,te=null,ne=null,re=null,oe=!1,ae=!1,ie=!1,ue=null,ce=null,se=0,le=-1,fe=!1,pe=null,de=0,he=!1,me=!1,ye=null,ve=null,be=!1,ge=!1,we=1e3,Oe=0,Te=1;return{computeAsyncExpiration:f,computeExpirationForFiber:p,scheduleWork:d,batchedUpdates:function(e,t){var n=be;be=!0;try{return e(t)}finally{(be=n)||fe||w(1,null)}},unbatchedUpdates:function(e){if(be&&!ge){ge=!0;try{return e()}finally{ge=!1}}return e()},flushSync:function(e){var t=be;be=!0;try{e:{var n=Y;Y=1;try{var o=e();break e}finally{Y=n}o=void 0}return o}finally{be=t,fe&&r("187"),w(1,null)}},deferredUpdates:function(e){var t=Y;Y=f();try{return e()}finally{Y=t}}}}function Rt(e){function t(e){return e=xe(e),null===e?null:e.stateNode}var n=e.getPublicInstance;e=At(e);var o=e.computeAsyncExpiration,a=e.computeExpirationForFiber,i=e.scheduleWork;return{createContainer:function(e,t){var n=new at(3,null,0);return e={current:n,containerInfo:e,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:t,nextScheduledRoot:null},n.stateNode=e},updateContainer:function(e,t,n,u){var c=t.current;if(n){n=n._reactInternalFiber;var s;e:{for(2===Oe(n)&&2===n.tag||r("170"),s=n;3!==s.tag;){if(Ze(s)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break e}(s=s.return)||r("171")}s=s.stateNode.context}n=Ze(n)?nt(n,s):s}else n=Nn;null===t.context?t.context=n:t.pendingContext=n,t=u,t=void 0===t?null:t,u=null!=e&&null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent?o():a(c),gt(c,{expirationTime:u,partialState:{element:e},callback:t,isReplace:!1,isForced:!1,nextCallback:null,next:null}),i(c,u)},batchedUpdates:e.batchedUpdates,unbatchedUpdates:e.unbatchedUpdates,deferredUpdates:e.deferredUpdates,flushSync:e.flushSync,getPublicRootInstance:function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return n(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:t,findHostInstanceWithNoPortals:function(e){return e=ke(e),null===e?null:e.stateNode},injectIntoDevTools:function(e){var n=e.findFiberByHostInstance;return ht(En({},e,{findHostInstanceByFiber:function(e){return t(e)},findFiberByHostInstance:function(e){return n?n(e):null}}))}}}function Dt(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:To,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Lt(e){return!!$o.hasOwnProperty(e)||!Yo.hasOwnProperty(e)&&(Go.test(e)?$o[e]=!0:(Yo[e]=!0,!1))}function Mt(e,t,n){var r=i(t);if(r&&a(t,n)){var o=r.mutationMethod;o?o(e,n):null==n||r.hasBooleanValue&&!n||r.hasNumericValue&&isNaN(n)||r.hasPositiveNumericValue&&1>n||r.hasOverloadedBooleanValue&&!1===n?Ht(e,t):r.mustUseProperty?e[r.propertyName]=n:(t=r.attributeName,(o=r.attributeNamespace)?e.setAttributeNS(o,t,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?e.setAttribute(t,""):e.setAttribute(t,""+n))}else Ut(e,t,a(t,n)?n:null)}function Ut(e,t,n){Lt(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))}function Ht(e,t){var n=i(t);n?(t=n.mutationMethod)?t(e,void 0):n.mustUseProperty?e[n.propertyName]=!n.hasBooleanValue&&"":e.removeAttribute(n.attributeName):e.removeAttribute(t)}function Ft(e,t){var n=t.value,r=t.checked;return En({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked})}function Bt(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function zt(e,t){null!=(t=t.checked)&&Mt(e,"checked",t)}function Vt(e,t){zt(e,t);var n=t.value;null!=n?0===n&&""===e.value?e.value="0":"number"===t.type?(t=parseFloat(e.value)||0,(n!=t||n==t&&e.value!=n)&&(e.value=""+n)):e.value!==""+n&&(e.value=""+n):(null==t.value&&null!=t.defaultValue&&e.defaultValue!==""+t.defaultValue&&(e.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked))}function qt(e,t){switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":e.value="",e.value=e.defaultValue;break;default:e.value=e.value}t=e.name,""!==t&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!e.defaultChecked,""!==t&&(e.name=t)}function Wt(e){var t="";return gn.Children.forEach(e,function(e){null==e||"string"!==typeof e&&"number"!==typeof e||(t+=e)}),t}function Kt(e,t){return e=En({children:void 0},t),(t=Wt(t.children))&&(e.children=t),e}function Gt(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+n,t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Yt(e,t){var n=t.value;e._wrapperState={initialValue:null!=n?n:t.defaultValue,wasMultiple:!!t.multiple}}function $t(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),En({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Qt(e,t){var n=t.value;null==n&&(n=t.defaultValue,t=t.children,null!=t&&(null!=n&&r("92"),Array.isArray(t)&&(1>=t.length||r("93"),t=t[0]),n=""+t),null==n&&(n="")),e._wrapperState={initialValue:""+n}}function Jt(e,t){var n=t.value;null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&(e.defaultValue=n)),null!=t.defaultValue&&(e.defaultValue=t.defaultValue)}function Xt(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function Zt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function en(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Zt(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function tn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function nn(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=n,a=t[n];o=null==a||"boolean"===typeof a||""===a?"":r||"number"!==typeof a||0===a||Zo.hasOwnProperty(o)&&Zo[o]?(""+a).trim():a+"px","float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}function rn(e,t,n){t&&(ta[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e,n()),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"===typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!==typeof t.style&&r("62",n()))}function on(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function an(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=De(e);t=Qn[t];for(var r=0;r<t.length;r++){var o=t[r];n.hasOwnProperty(o)&&n[o]||("topScroll"===o?Ie("topScroll","scroll",e):"topFocus"===o||"topBlur"===o?(Ie("topFocus","focus",e),Ie("topBlur","blur",e),n.topBlur=!0,n.topFocus=!0):"topCancel"===o?(ne("cancel",!0)&&Ie("topCancel","cancel",e),n.topCancel=!0):"topClose"===o?(ne("close",!0)&&Ie("topClose","close",e),n.topClose=!0):$r.hasOwnProperty(o)&&Pe(o,$r[o],e),n[o]=!0)}}function un(e,t,n,r){return n=9===n.nodeType?n:n.ownerDocument,r===na&&(r=Zt(e)),r===na?"script"===e?(e=n.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):e="string"===typeof t.is?n.createElement(e,{is:t.is}):n.createElement(e):e=n.createElementNS(r,e),e}function cn(e,t){return(9===t.nodeType?t:t.ownerDocument).createTextNode(e)}function sn(e,t,n,r){var o=on(t,n);switch(t){case"iframe":case"object":Pe("topLoad","load",e);var a=n;break;case"video":case"audio":for(a in oa)oa.hasOwnProperty(a)&&Pe(a,oa[a],e);a=n;break;case"source":Pe("topError","error",e),a=n;break;case"img":case"image":Pe("topError","error",e),Pe("topLoad","load",e),a=n;break;case"form":Pe("topReset","reset",e),Pe("topSubmit","submit",e),a=n;break;case"details":Pe("topToggle","toggle",e),a=n;break;case"input":Bt(e,n),a=Ft(e,n),Pe("topInvalid","invalid",e),an(r,"onChange");break;case"option":a=Kt(e,n);break;case"select":Yt(e,n),a=En({},n,{value:void 0}),Pe("topInvalid","invalid",e),an(r,"onChange");break;case"textarea":Qt(e,n),a=$t(e,n),Pe("topInvalid","invalid",e),an(r,"onChange");break;default:a=n}rn(t,a,ra);var i,u=a;for(i in u)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?nn(e,c,ra):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&Xo(e,c):"children"===i?"string"===typeof c?("textarea"!==t||""!==c)&&tn(e,c):"number"===typeof c&&tn(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&($n.hasOwnProperty(i)?null!=c&&an(r,i):o?Ut(e,i,c):null!=c&&Mt(e,i,c))}switch(t){case"input":ae(e),qt(e,n);break;case"textarea":ae(e),Xt(e,n);break;case"option":null!=n.value&&e.setAttribute("value",n.value);break;case"select":e.multiple=!!n.multiple,t=n.value,null!=t?Gt(e,!!n.multiple,t,!1):null!=n.defaultValue&&Gt(e,!!n.multiple,n.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=On)}}function ln(e,t,n,r,o){var a=null;switch(t){case"input":n=Ft(e,n),r=Ft(e,r),a=[];break;case"option":n=Kt(e,n),r=Kt(e,r),a=[];break;case"select":n=En({},n,{value:void 0}),r=En({},r,{value:void 0}),a=[];break;case"textarea":n=$t(e,n),r=$t(e,r),a=[];break;default:"function"!==typeof n.onClick&&"function"===typeof r.onClick&&(e.onclick=On)}rn(t,r,ra);var i,u;e=null;for(i in n)if(!r.hasOwnProperty(i)&&n.hasOwnProperty(i)&&null!=n[i])if("style"===i)for(u in t=n[i])t.hasOwnProperty(u)&&(e||(e={}),e[u]="");else"dangerouslySetInnerHTML"!==i&&"children"!==i&&"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&($n.hasOwnProperty(i)?a||(a=[]):(a=a||[]).push(i,null));for(i in r){var c=r[i];if(t=null!=n?n[i]:void 0,r.hasOwnProperty(i)&&c!==t&&(null!=c||null!=t))if("style"===i)if(t){for(u in t)!t.hasOwnProperty(u)||c&&c.hasOwnProperty(u)||(e||(e={}),e[u]="");for(u in c)c.hasOwnProperty(u)&&t[u]!==c[u]&&(e||(e={}),e[u]=c[u])}else e||(a||(a=[]),a.push(i,e)),e=c;else"dangerouslySetInnerHTML"===i?(c=c?c.__html:void 0,t=t?t.__html:void 0,null!=c&&t!==c&&(a=a||[]).push(i,""+c)):"children"===i?t===c||"string"!==typeof c&&"number"!==typeof c||(a=a||[]).push(i,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&($n.hasOwnProperty(i)?(null!=c&&an(o,i),a||t===c||(a=[])):(a=a||[]).push(i,c))}return e&&(a=a||[]).push("style",e),a}function fn(e,t,n,r,o){"input"===n&&"radio"===o.type&&null!=o.name&&zt(e,o),on(n,r),r=on(n,o);for(var a=0;a<t.length;a+=2){var i=t[a],u=t[a+1];"style"===i?nn(e,u,ra):"dangerouslySetInnerHTML"===i?Xo(e,u):"children"===i?tn(e,u):r?null!=u?Ut(e,i,u):e.removeAttribute(i):null!=u?Mt(e,i,u):Ht(e,i)}switch(n){case"input":Vt(e,o);break;case"textarea":Jt(e,o);break;case"select":e._wrapperState.initialValue=void 0,t=e._wrapperState.wasMultiple,e._wrapperState.wasMultiple=!!o.multiple,n=o.value,null!=n?Gt(e,!!o.multiple,n,!1):t!==!!o.multiple&&(null!=o.defaultValue?Gt(e,!!o.multiple,o.defaultValue,!0):Gt(e,!!o.multiple,o.multiple?[]:"",!1))}}function pn(e,t,n,r,o){switch(t){case"iframe":case"object":Pe("topLoad","load",e);break;case"video":case"audio":for(var a in oa)oa.hasOwnProperty(a)&&Pe(a,oa[a],e);break;case"source":Pe("topError","error",e);break;case"img":case"image":Pe("topError","error",e),Pe("topLoad","load",e);break;case"form":Pe("topReset","reset",e),Pe("topSubmit","submit",e);break;case"details":Pe("topToggle","toggle",e);break;case"input":Bt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange");break;case"select":Yt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange");break;case"textarea":Qt(e,n),Pe("topInvalid","invalid",e),an(o,"onChange")}rn(t,n,ra),r=null;for(var i in n)n.hasOwnProperty(i)&&(a=n[i],"children"===i?"string"===typeof a?e.textContent!==a&&(r=["children",a]):"number"===typeof a&&e.textContent!==""+a&&(r=["children",""+a]):$n.hasOwnProperty(i)&&null!=a&&an(o,i));switch(t){case"input":ae(e),qt(e,n);break;case"textarea":ae(e),Xt(e,n);break;case"select":case"option":break;default:"function"===typeof n.onClick&&(e.onclick=On)}return r}function dn(e,t){return e.nodeValue!==t}function hn(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function mn(e){return!(!(e=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==e.nodeType||!e.hasAttribute("data-reactroot"))}function yn(e,t,n,o,a){hn(n)||r("200");var i=n._reactRootContainer;if(i)ca.updateContainer(t,i,e,a);else{if(!(o=o||mn(n)))for(i=void 0;i=n.lastChild;)n.removeChild(i);var u=ca.createContainer(n,o);i=n._reactRootContainer=u,ca.unbatchedUpdates(function(){ca.updateContainer(t,u,e,a)})}return ca.getPublicRootInstance(i)}function vn(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return hn(t)||r("200"),Dt(e,t,null,n)}function bn(e,t){this._reactRootContainer=ca.createContainer(e,t)}var gn=n(0),wn=n(56),En=n(22),On=n(18),Tn=n(57),_n=n(58),Cn=n(59),xn=n(60),kn=n(63),Nn=n(31);gn||r("227");var jn={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0},Pn={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=Pn,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},i=e.DOMAttributeNames||{};e=e.DOMMutationMethods||{};for(var u in n){In.hasOwnProperty(u)&&r("48",u);var c=u.toLowerCase(),s=n[u];c={attributeName:c,attributeNamespace:null,propertyName:u,mutationMethod:null,mustUseProperty:o(s,t.MUST_USE_PROPERTY),hasBooleanValue:o(s,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(s,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(s,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(s,t.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:o(s,t.HAS_STRING_BOOLEAN_VALUE)},1>=c.hasBooleanValue+c.hasNumericValue+c.hasOverloadedBooleanValue||r("50",u),i.hasOwnProperty(u)&&(c.attributeName=i[u]),a.hasOwnProperty(u)&&(c.attributeNamespace=a[u]),e.hasOwnProperty(u)&&(c.mutationMethod=e[u]),In[u]=c}}},In={},Sn=Pn,An=Sn.MUST_USE_PROPERTY,Rn=Sn.HAS_BOOLEAN_VALUE,Dn=Sn.HAS_NUMERIC_VALUE,Ln=Sn.HAS_POSITIVE_NUMERIC_VALUE,Mn=Sn.HAS_OVERLOADED_BOOLEAN_VALUE,Un=Sn.HAS_STRING_BOOLEAN_VALUE,Hn={Properties:{allowFullScreen:Rn,async:Rn,autoFocus:Rn,autoPlay:Rn,capture:Mn,checked:An|Rn,cols:Ln,contentEditable:Un,controls:Rn,default:Rn,defer:Rn,disabled:Rn,download:Mn,draggable:Un,formNoValidate:Rn,hidden:Rn,loop:Rn,multiple:An|Rn,muted:An|Rn,noValidate:Rn,open:Rn,playsInline:Rn,readOnly:Rn,required:Rn,reversed:Rn,rows:Ln,rowSpan:Dn,scoped:Rn,seamless:Rn,selected:An|Rn,size:Ln,start:Dn,span:Ln,spellCheck:Un,style:0,tabIndex:0,itemScope:Rn,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Un},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}},Fn=Sn.HAS_STRING_BOOLEAN_VALUE,Bn={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},zn={Properties:{autoReverse:Fn,externalResourcesRequired:Fn,preserveAlpha:Fn},DOMAttributeNames:{autoReverse:"autoReverse",externalResourcesRequired:"externalResourcesRequired",preserveAlpha:"preserveAlpha"},DOMAttributeNamespaces:{xlinkActuate:Bn.xlink,xlinkArcrole:Bn.xlink,xlinkHref:Bn.xlink,xlinkRole:Bn.xlink,xlinkShow:Bn.xlink,xlinkTitle:Bn.xlink,xlinkType:Bn.xlink,xmlBase:Bn.xml,xmlLang:Bn.xml,xmlSpace:Bn.xml}},Vn=/[\-\:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space".split(" ").forEach(function(e){var t=e.replace(Vn,u);zn.Properties[t]=0,zn.DOMAttributeNames[t]=e}),Sn.injectDOMPropertyConfig(Hn),Sn.injectDOMPropertyConfig(zn);var qn={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(e){"function"!==typeof e.invokeGuardedCallback&&r("197"),c=e.invokeGuardedCallback}},invokeGuardedCallback:function(e,t,n,r,o,a,i,u,s){c.apply(qn,arguments)},invokeGuardedCallbackAndCatchFirstError:function(e,t,n,r,o,a,i,u,c){if(qn.invokeGuardedCallback.apply(this,arguments),qn.hasCaughtError()){var s=qn.clearCaughtError();qn._hasRethrowError||(qn._hasRethrowError=!0,qn._rethrowError=s)}},rethrowCaughtError:function(){return s.apply(qn,arguments)},hasCaughtError:function(){return qn._hasCaughtError},clearCaughtError:function(){if(qn._hasCaughtError){var e=qn._caughtError;return qn._caughtError=null,qn._hasCaughtError=!1,e}r("198")}},Wn=null,Kn={},Gn=[],Yn={},$n={},Qn={},Jn=Object.freeze({plugins:Gn,eventNameDispatchConfigs:Yn,registrationNameModules:$n,registrationNameDependencies:Qn,possibleRegistrationNames:null,injectEventPluginOrder:p,injectEventPluginsByName:d}),Xn=null,Zn=null,er=null,tr=null,nr={injectEventPluginOrder:p,injectEventPluginsByName:d},rr=Object.freeze({injection:nr,getListener:w,extractEvents:E,enqueueEvents:O,processEventQueue:T}),or=Math.random().toString(36).slice(2),ar="__reactInternalInstance$"+or,ir="__reactEventHandlers$"+or,ur=Object.freeze({precacheFiberNode:function(e,t){t[ar]=e},getClosestInstanceFromNode:_,getInstanceFromNode:function(e){return e=e[ar],!e||5!==e.tag&&6!==e.tag?null:e},getNodeFromInstance:C,getFiberCurrentPropsFromNode:x,updateFiberProps:function(e,t){e[ir]=t}}),cr=Object.freeze({accumulateTwoPhaseDispatches:R,accumulateTwoPhaseDispatchesSkipTarget:function(e){y(e,I)},accumulateEnterLeaveDispatches:D,accumulateDirectDispatches:function(e){y(e,A)}}),sr=null,lr={_root:null,_startText:null,_fallbackText:null},fr="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),pr={type:null,target:null,currentTarget:On.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};En(H.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=On.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=On.thatReturnsTrue)},persist:function(){this.isPersistent=On.thatReturnsTrue},isPersistent:On.thatReturnsFalse,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;for(t=0;t<fr.length;t++)this[fr[t]]=null}}),H.Interface=pr,H.augmentClass=function(e,t){function n(){}n.prototype=this.prototype;var r=new n;En(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=En({},this.Interface,t),e.augmentClass=this.augmentClass,z(e)},z(H),H.augmentClass(V,{data:null}),H.augmentClass(q,{data:null});var dr=[9,13,27,32],hr=wn.canUseDOM&&"CompositionEvent"in window,mr=null;wn.canUseDOM&&"documentMode"in document&&(mr=document.documentMode);var yr;if(yr=wn.canUseDOM&&"TextEvent"in window&&!mr){var vr=window.opera;yr=!("object"===typeof vr&&"function"===typeof vr.version&&12>=parseInt(vr.version(),10))}var br,gr=yr,wr=wn.canUseDOM&&(!hr||mr&&8<mr&&11>=mr),Er=String.fromCharCode(32),Or={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},Tr=!1,_r=!1,Cr={eventTypes:Or,extractEvents:function(e,t,n,r){var o;if(hr)e:{switch(e){case"topCompositionStart":var a=Or.compositionStart;break e;case"topCompositionEnd":a=Or.compositionEnd;break e;case"topCompositionUpdate":a=Or.compositionUpdate;break e}a=void 0}else _r?W(e,n)&&(a=Or.compositionEnd):"topKeyDown"===e&&229===n.keyCode&&(a=Or.compositionStart);return a?(wr&&(_r||a!==Or.compositionStart?a===Or.compositionEnd&&_r&&(o=M()):(lr._root=r,lr._startText=U(),_r=!0)),a=V.getPooled(a,t,n,r),o?a.data=o:null!==(o=K(n))&&(a.data=o),R(a),o=a):o=null,(e=gr?G(e,n):Y(e,n))?(t=q.getPooled(Or.beforeInput,t,n,r),t.data=e,R(t)):t=null,[o,t]}},xr=null,kr=null,Nr=null,jr={injectFiberControlledHostComponent:function(e){xr=e}},Pr=Object.freeze({injection:jr,enqueueStateRestore:Q,restoreStateIfNeeded:J}),Ir=!1,Sr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};wn.canUseDOM&&(br=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Ar={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},Rr=null,Dr=null,Lr=!1;wn.canUseDOM&&(Lr=ne("input")&&(!document.documentMode||9<document.documentMode));var Mr={eventTypes:Ar,_isInputEventSupported:Lr,extractEvents:function(e,t,n,r){var o=t?C(t):window,a=o.nodeName&&o.nodeName.toLowerCase();if("select"===a||"input"===a&&"file"===o.type)var i=le;else if(ee(o))if(Lr)i=ye;else{i=he;var u=de}else!(a=o.nodeName)||"input"!==a.toLowerCase()||"checkbox"!==o.type&&"radio"!==o.type||(i=me);if(i&&(i=i(e,t)))return ue(i,n,r);u&&u(e,o,t),"topBlur"===e&&null!=t&&(e=t._wrapperState||o._wrapperState)&&e.controlled&&"number"===o.type&&(e=""+o.value,o.getAttribute("value")!==e&&o.setAttribute("value",e))}};H.augmentClass(ve,{view:null,detail:null});var Ur={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};ve.augmentClass(we,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ge,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)}});var Hr={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},Fr={eventTypes:Hr,extractEvents:function(e,t,n,r){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement)||"topMouseOut"!==e&&"topMouseOver"!==e)return null;var o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window;if("topMouseOut"===e?(e=t,t=(t=n.relatedTarget||n.toElement)?_(t):null):e=null,e===t)return null;var a=null==e?o:C(e);o=null==t?o:C(t);var i=we.getPooled(Hr.mouseLeave,e,n,r);return i.type="mouseleave",i.target=a,i.relatedTarget=o,n=we.getPooled(Hr.mouseEnter,t,n,r),n.type="mouseenter",n.target=o,n.relatedTarget=a,D(i,n,e,t),[i,n]}},Br=gn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,zr=[],Vr=!0,qr=void 0,Wr=Object.freeze({get _enabled(){return Vr},get _handleTopLevel(){return qr},setHandleTopLevel:function(e){qr=e},setEnabled:je,isEnabled:function(){return Vr},trapBubbledEvent:Pe,trapCapturedEvent:Ie,dispatchEvent:Se}),Kr={animationend:Ae("Animation","AnimationEnd"),animationiteration:Ae("Animation","AnimationIteration"),animationstart:Ae("Animation","AnimationStart"),transitionend:Ae("Transition","TransitionEnd")},Gr={},Yr={};wn.canUseDOM&&(Yr=document.createElement("div").style,"AnimationEvent"in window||(delete Kr.animationend.animation,delete Kr.animationiteration.animation,delete Kr.animationstart.animation),"TransitionEvent"in window||delete Kr.transitionend.transition);var $r={topAbort:"abort",topAnimationEnd:Re("animationend")||"animationend",topAnimationIteration:Re("animationiteration")||"animationiteration",topAnimationStart:Re("animationstart")||"animationstart",topBlur:"blur",topCancel:"cancel",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topClose:"close",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoad:"load",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topToggle:"toggle",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:Re("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},Qr={},Jr=0,Xr="_reactListenersID"+(""+Math.random()).slice(2),Zr=wn.canUseDOM&&"documentMode"in document&&11>=document.documentMode,eo={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},to=null,no=null,ro=null,oo=!1,ao={eventTypes:eo,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=De(a),o=Qn.onSelect;for(var i=0;i<o.length;i++){var u=o[i];if(!a.hasOwnProperty(u)||!a[u]){a=!1;break e}}a=!0}o=!a}if(o)return null;switch(a=t?C(t):window,e){case"topFocus":(ee(a)||"true"===a.contentEditable)&&(to=a,no=t,ro=null);break;case"topBlur":ro=no=to=null;break;case"topMouseDown":oo=!0;break;case"topContextMenu":case"topMouseUp":return oo=!1,He(n,r);case"topSelectionChange":if(Zr)break;case"topKeyDown":case"topKeyUp":return He(n,r)}return null}};H.augmentClass(Fe,{animationName:null,elapsedTime:null,pseudoElement:null}),H.augmentClass(Be,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ve.augmentClass(ze,{relatedTarget:null});var io={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},uo={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};ve.augmentClass(qe,{key:function(e){if(e.key){var t=io[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?(e=Ve(e),13===e?"Enter":String.fromCharCode(e)):"keydown"===e.type||"keyup"===e.type?uo[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ge,charCode:function(e){return"keypress"===e.type?Ve(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Ve(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),we.augmentClass(We,{dataTransfer:null}),ve.augmentClass(Ke,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ge}),H.augmentClass(Ge,{propertyName:null,elapsedTime:null,pseudoElement:null}),we.augmentClass(Ye,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null});var co={},so={};"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel".split(" ").forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t;t="top"+t,n={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[t]},co[e]=n,so[t]=n});var lo={eventTypes:co,extractEvents:function(e,t,n,r){var o=so[e];if(!o)return null;switch(e){case"topKeyPress":if(0===Ve(n))return null;case"topKeyDown":case"topKeyUp":e=qe;break;case"topBlur":case"topFocus":e=ze;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":e=we;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":e=We;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":e=Ke;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":e=Fe;break;case"topTransitionEnd":e=Ge;break;case"topScroll":e=ve;break;case"topWheel":e=Ye;break;case"topCopy":case"topCut":case"topPaste":e=Be;break;default:e=H}return t=e.getPooled(o,t,n,r),R(t),t}};qr=function(e,t,n,r){e=E(e,t,n,r),O(e),T(!1)},nr.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),Xn=ur.getFiberCurrentPropsFromNode,Zn=ur.getInstanceFromNode,er=ur.getNodeFromInstance,nr.injectEventPluginsByName({SimpleEventPlugin:lo,EnterLeaveEventPlugin:Fr,ChangeEventPlugin:Mr,SelectEventPlugin:ao,BeforeInputEventPlugin:Cr});var fo=[],po=-1;new Set;var ho={current:Nn},mo={current:!1},yo=Nn,vo=null,bo=null,go="function"===typeof Symbol&&Symbol.for,wo=go?Symbol.for("react.element"):60103,Eo=go?Symbol.for("react.call"):60104,Oo=go?Symbol.for("react.return"):60105,To=go?Symbol.for("react.portal"):60106,_o=go?Symbol.for("react.fragment"):60107,Co="function"===typeof Symbol&&Symbol.iterator,xo=Array.isArray,ko=kt(!0),No=kt(!1),jo={},Po=Object.freeze({default:Rt}),Io=Po&&Rt||Po,So=Io.default?Io.default:Io,Ao="object"===typeof performance&&"function"===typeof performance.now,Ro=void 0;Ro=Ao?function(){return performance.now()}:function(){return Date.now()};var Do=void 0,Lo=void 0;if(wn.canUseDOM)if("function"!==typeof requestIdleCallback||"function"!==typeof cancelIdleCallback){var Mo,Uo=null,Ho=!1,Fo=-1,Bo=!1,zo=0,Vo=33,qo=33;Mo=Ao?{didTimeout:!1,timeRemaining:function(){var e=zo-performance.now();return 0<e?e:0}}:{didTimeout:!1,timeRemaining:function(){var e=zo-Date.now();return 0<e?e:0}};var Wo="__reactIdleCallback$"+Math.random().toString(36).slice(2);window.addEventListener("message",function(e){if(e.source===window&&e.data===Wo){if(Ho=!1,e=Ro(),0>=zo-e){if(!(-1!==Fo&&Fo<=e))return void(Bo||(Bo=!0,requestAnimationFrame(Ko)));Mo.didTimeout=!0}else Mo.didTimeout=!1;Fo=-1,e=Uo,Uo=null,null!==e&&e(Mo)}},!1);var Ko=function(e){Bo=!1;var t=e-zo+qo;t<qo&&Vo<qo?(8>t&&(t=8),qo=t<Vo?Vo:t):Vo=t,zo=e+qo,Ho||(Ho=!0,window.postMessage(Wo,"*"))};Do=function(e,t){return Uo=e,null!=t&&"number"===typeof t.timeout&&(Fo=Ro()+t.timeout),Bo||(Bo=!0,requestAnimationFrame(Ko)),0},Lo=function(){Uo=null,Ho=!1,Fo=-1}}else Do=window.requestIdleCallback,Lo=window.cancelIdleCallback;else Do=function(e){return setTimeout(function(){e({timeRemaining:function(){return 1/0}})})},Lo=function(e){clearTimeout(e)};var Go=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Yo={},$o={},Qo={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},Jo=void 0,Xo=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n)})}:e}(function(e,t){if(e.namespaceURI!==Qo.svg||"innerHTML"in e)e.innerHTML=t;else{for(Jo=Jo||document.createElement("div"),Jo.innerHTML="<svg>"+t+"</svg>",t=Jo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),Zo={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ea=["Webkit","ms","Moz","O"];Object.keys(Zo).forEach(function(e){ea.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Zo[t]=Zo[e]})});var ta=En({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),na=Qo.html,ra=On.thatReturns(""),oa={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},aa=Object.freeze({createElement:un,createTextNode:cn,setInitialProperties:sn,diffProperties:ln,updateProperties:fn,diffHydratedProperties:pn,diffHydratedText:dn,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(e,t,n){switch(t){case"input":if(Vt(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var o=n[t];if(o!==e&&o.form===e.form){var a=x(o);a||r("90"),ie(o),Vt(o,a)}}}break;case"textarea":Jt(e,n);break;case"select":null!=(t=n.value)&&Gt(e,!!n.multiple,t,!1)}}});jr.injectFiberControlledHostComponent(aa);var ia=null,ua=null,ca=So({getRootHostContext:function(e){var t=e.nodeType;switch(t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:en(null,"");break;default:t=8===t?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=en(e,t)}return e},getChildHostContext:function(e,t){return en(e,t)},getPublicInstance:function(e){return e},prepareForCommit:function(){ia=Vr;var e=_n();if(Ue(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var n=window.getSelection&&window.getSelection();if(n&&0!==n.rangeCount){t=n.anchorNode;var r=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{t.nodeType,o.nodeType}catch(e){t=null;break e}var a=0,i=-1,u=-1,c=0,s=0,l=e,f=null;t:for(;;){for(var p;l!==t||0!==r&&3!==l.nodeType||(i=a+r),l!==o||0!==n&&3!==l.nodeType||(u=a+n),3===l.nodeType&&(a+=l.nodeValue.length),null!==(p=l.firstChild);)f=l,l=p;for(;;){if(l===e)break t;if(f===t&&++c===r&&(i=a),f===o&&++s===n&&(u=a),null!==(p=l.nextSibling))break;l=f,f=l.parentNode}l=p}t=-1===i||-1===u?null:{start:i,end:u}}else t=null}t=t||{start:0,end:0}}else t=null;ua={focusedElem:e,selectionRange:t},je(!1)},resetAfterCommit:function(){var e=ua,t=_n(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&xn(document.documentElement,n)){if(Ue(n))if(t=r.start,e=r.end,void 0===e&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(window.getSelection){t=window.getSelection();var o=n[L()].length;e=Math.min(r.start,o),r=void 0===r.end?e:Math.min(r.end,o),!t.extend&&e>r&&(o=r,r=e,e=o),o=Me(n,e);var a=Me(n,r);if(o&&a&&(1!==t.rangeCount||t.anchorNode!==o.node||t.anchorOffset!==o.offset||t.focusNode!==a.node||t.focusOffset!==a.offset)){var i=document.createRange();i.setStart(o.node,o.offset),t.removeAllRanges(),e>r?(t.addRange(i),t.extend(a.node,a.offset)):(i.setEnd(a.node,a.offset),t.addRange(i))}}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(kn(n),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}ua=null,je(ia),ia=null},createInstance:function(e,t,n,r,o){return e=un(e,t,n,r),e[ar]=o,e[ir]=t,e},appendInitialChild:function(e,t){e.appendChild(t)},finalizeInitialChildren:function(e,t,n,r){sn(e,t,n,r);e:{switch(t){case"button":case"input":case"select":case"textarea":e=!!n.autoFocus;break e}e=!1}return e},prepareUpdate:function(e,t,n,r,o){return ln(e,t,n,r,o)},shouldSetTextContent:function(e,t){return"textarea"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&"string"===typeof t.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(e,t){return!!t.hidden},createTextInstance:function(e,t,n,r){return e=cn(e,t),e[ar]=r,e},now:Ro,mutation:{commitMount:function(e){e.focus()},commitUpdate:function(e,t,n,r,o){e[ir]=o,fn(e,t,n,r,o)},resetTextContent:function(e){e.textContent=""},commitTextUpdate:function(e,t,n){e.nodeValue=n},appendChild:function(e,t){e.appendChild(t)},appendChildToContainer:function(e,t){8===e.nodeType?e.parentNode.insertBefore(t,e):e.appendChild(t)},insertBefore:function(e,t,n){e.insertBefore(t,n)},insertInContainerBefore:function(e,t,n){8===e.nodeType?e.parentNode.insertBefore(t,n):e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},removeChildFromContainer:function(e,t){8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)}},hydration:{canHydrateInstance:function(e,t){return 1!==e.nodeType||t.toLowerCase()!==e.nodeName.toLowerCase()?null:e},canHydrateTextInstance:function(e,t){return""===t||3!==e.nodeType?null:e},getNextHydratableSibling:function(e){for(e=e.nextSibling;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e},getFirstHydratableChild:function(e){for(e=e.firstChild;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e},hydrateInstance:function(e,t,n,r,o,a){return e[ar]=a,e[ir]=n,pn(e,t,n,o,r)},hydrateTextInstance:function(e,t,n){return e[ar]=n,dn(e,t)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},didNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:Do,cancelDeferredCallback:Lo,useSyncScheduling:!0});X=ca.batchedUpdates,bn.prototype.render=function(e,t){ca.updateContainer(e,this._reactRootContainer,null,t)},bn.prototype.unmount=function(e){ca.updateContainer(null,this._reactRootContainer,null,e)};var sa={createPortal:vn,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(t)return ca.findHostInstance(t);"function"===typeof e.render?r("188"):r("213",Object.keys(e))},hydrate:function(e,t,n){return yn(null,e,t,!0,n)},render:function(e,t,n){return yn(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,o){return(null==e||void 0===e._reactInternalFiber)&&r("38"),yn(e,t,n,!1,o)},unmountComponentAtNode:function(e){return hn(e)||r("40"),!!e._reactRootContainer&&(ca.unbatchedUpdates(function(){yn(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:vn,unstable_batchedUpdates:Z,unstable_deferredUpdates:ca.deferredUpdates,flushSync:ca.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:rr,EventPluginRegistry:Jn,EventPropagators:cr,ReactControlledComponent:Pr,ReactDOMComponentTree:ur,ReactDOMEventListener:Wr}};ca.injectIntoDevTools({findFiberByHostInstance:_,bundleType:0,version:"16.2.0",rendererPackageName:"react-dom"});var la=Object.freeze({default:sa}),fa=la&&sa||la;e.exports=fa.default?fa.default:fa},function(e,t,n){"use strict";var r=!("undefined"===typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!==typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";var r=n(18),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";function r(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=r},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var i=0;i<n.length;i++)if(!a.call(t,n[i])||!r(e[n[i]],t[n[i]]))return!1;return!0}var a=Object.prototype.hasOwnProperty;e.exports=o},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(61);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(62);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"===typeof n.Node?e instanceof n.Node:"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName))}e.exports=r},function(e,t,n){"use strict";function r(e){try{e.focus()}catch(e){}}e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),s=n.n(c),l=n(1),f=n.n(l),p=n(68),d=n.n(p),h=n(25),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<BrowserRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { BrowserRouter as Router }`.")},t.prototype.render=function(){return s.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(s.a.Component);m.propTypes={basename:f.a.string,forceRefresh:f.a.bool,getUserConfirmation:f.a.func,keyLength:f.a.number,children:f.a.node},t.a=m},function(e,t,n){"use strict";var r=n(18),o=n(66),a=n(67);e.exports=function(){function e(e,t,n,r,i,u){u!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e,t,n,r,a,i,u,c){if(o(t),!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,i,u,c],f=0;s=new Error(t.replace(/%s/g,function(){return l[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(5),u=r(i),c=n(8),s=r(c),l=n(23),f=n(14),p=n(24),d=r(p),h=n(34),m=function(){try{return window.history.state||{}}catch(e){return{}}},y=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,s.default)(h.canUseDOM,"Browser history needs a DOM");var t=window.history,n=(0,h.supportsHistory)(),r=!(0,h.supportsPopStateOnHashChange)(),i=e.forceRefresh,c=void 0!==i&&i,p=e.getUserConfirmation,y=void 0===p?h.getConfirmation:p,v=e.keyLength,b=void 0===v?6:v,g=e.basename?(0,f.stripTrailingSlash)((0,f.addLeadingSlash)(e.basename)):"",w=function(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname,i=o.search,c=o.hash,s=a+i+c;return(0,u.default)(!g||(0,f.hasBasename)(s,g),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+s+'" to begin with "'+g+'".'),g&&(s=(0,f.stripBasename)(s,g)),(0,l.createLocation)(s,r,n)},E=function(){return Math.random().toString(36).substr(2,b)},O=(0,d.default)(),T=function(e){a(z,e),z.length=t.length,O.notifyListeners(z.location,z.action)},_=function(e){(0,h.isExtraneousPopstateEvent)(e)||k(w(e.state))},C=function(){k(w(m()))},x=!1,k=function(e){if(x)x=!1,T();else{O.confirmTransitionTo(e,"POP",y,function(t){t?T({action:"POP",location:e}):N(e)})}},N=function(e){var t=z.location,n=P.indexOf(t.key);-1===n&&(n=0);var r=P.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(x=!0,R(o))},j=w(m()),P=[j.key],I=function(e){return g+(0,f.createPath)(e)},S=function(e,r){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var a=(0,l.createLocation)(e,r,E(),z.location);O.confirmTransitionTo(a,"PUSH",y,function(e){if(e){var r=I(a),o=a.key,i=a.state;if(n)if(t.pushState({key:o,state:i},null,r),c)window.location.href=r;else{var s=P.indexOf(z.location.key),l=P.slice(0,-1===s?0:s+1);l.push(a.key),P=l,T({action:"PUSH",location:a})}else(0,u.default)(void 0===i,"Browser history cannot push state in browsers that do not support HTML5 history"),window.location.href=r}})},A=function(e,r){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var a=(0,l.createLocation)(e,r,E(),z.location);O.confirmTransitionTo(a,"REPLACE",y,function(e){if(e){var r=I(a),o=a.key,i=a.state;if(n)if(t.replaceState({key:o,state:i},null,r),c)window.location.replace(r);else{var s=P.indexOf(z.location.key);-1!==s&&(P[s]=a.key),T({action:"REPLACE",location:a})}else(0,u.default)(void 0===i,"Browser history cannot replace state in browsers that do not support HTML5 history"),window.location.replace(r)}})},R=function(e){t.go(e)},D=function(){return R(-1)},L=function(){return R(1)},M=0,U=function(e){M+=e,1===M?((0,h.addEventListener)(window,"popstate",_),r&&(0,h.addEventListener)(window,"hashchange",C)):0===M&&((0,h.removeEventListener)(window,"popstate",_),r&&(0,h.removeEventListener)(window,"hashchange",C))},H=!1,F=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=O.setPrompt(e);return H||(U(1),H=!0),function(){return H&&(H=!1,U(-1)),t()}},B=function(e){var t=O.appendListener(e);return U(1),function(){U(-1),t()}},z={length:t.length,action:"POP",location:j,createHref:I,push:S,replace:A,go:R,goBack:D,goForward:L,block:F,listen:B};return z};t.default=y},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),s=n.n(c),l=n(1),f=n.n(l),p=n(70),d=n.n(p),h=n(25),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<HashRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { HashRouter as Router }`.")},t.prototype.render=function(){return s.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(s.a.Component);m.propTypes={basename:f.a.string,getUserConfirmation:f.a.func,hashType:f.a.oneOf(["hashbang","noslash","slash"]),children:f.a.node}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(5),i=r(a),u=n(8),c=r(u),s=n(23),l=n(14),f=n(24),p=r(f),d=n(34),h={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+(0,l.stripLeadingSlash)(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:l.stripLeadingSlash,decodePath:l.addLeadingSlash},slash:{encodePath:l.addLeadingSlash,decodePath:l.addLeadingSlash}},m=function(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)},y=function(e){return window.location.hash=e},v=function(e){var t=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,t>=0?t:0)+"#"+e)},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.default)(d.canUseDOM,"Hash history needs a DOM");var t=window.history,n=(0,d.supportsGoWithoutReloadUsingHash)(),r=e.getUserConfirmation,a=void 0===r?d.getConfirmation:r,u=e.hashType,f=void 0===u?"slash":u,b=e.basename?(0,l.stripTrailingSlash)((0,l.addLeadingSlash)(e.basename)):"",g=h[f],w=g.encodePath,E=g.decodePath,O=function(){var e=E(m());return(0,i.default)(!b||(0,l.hasBasename)(e,b),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+e+'" to begin with "'+b+'".'),b&&(e=(0,l.stripBasename)(e,b)),(0,s.createLocation)(e)},T=(0,p.default)(),_=function(e){o(W,e),W.length=t.length,T.notifyListeners(W.location,W.action)},C=!1,x=null,k=function(){var e=m(),t=w(e);if(e!==t)v(t);else{var n=O(),r=W.location;if(!C&&(0,s.locationsAreEqual)(r,n))return;if(x===(0,l.createPath)(n))return;x=null,N(n)}},N=function(e){if(C)C=!1,_();else{T.confirmTransitionTo(e,"POP",a,function(t){t?_({action:"POP",location:e}):j(e)})}},j=function(e){var t=W.location,n=A.lastIndexOf((0,l.createPath)(t));-1===n&&(n=0);var r=A.lastIndexOf((0,l.createPath)(e));-1===r&&(r=0);var o=n-r;o&&(C=!0,M(o))},P=m(),I=w(P);P!==I&&v(I);var S=O(),A=[(0,l.createPath)(S)],R=function(e){return"#"+w(b+(0,l.createPath)(e))},D=function(e,t){(0,i.default)(void 0===t,"Hash history cannot push state; it is ignored");var n=(0,s.createLocation)(e,void 0,void 0,W.location);T.confirmTransitionTo(n,"PUSH",a,function(e){if(e){var t=(0,l.createPath)(n),r=w(b+t);if(m()!==r){x=t,y(r);var o=A.lastIndexOf((0,l.createPath)(W.location)),a=A.slice(0,-1===o?0:o+1);a.push(t),A=a,_({action:"PUSH",location:n})}else(0,i.default)(!1,"Hash history cannot PUSH the same path; a new entry will not be added to the history stack"),_()}})},L=function(e,t){(0,i.default)(void 0===t,"Hash history cannot replace state; it is ignored");var n=(0,s.createLocation)(e,void 0,void 0,W.location);T.confirmTransitionTo(n,"REPLACE",a,function(e){if(e){var t=(0,l.createPath)(n),r=w(b+t);m()!==r&&(x=t,v(r));var o=A.indexOf((0,l.createPath)(W.location));-1!==o&&(A[o]=t),_({action:"REPLACE",location:n})}})},M=function(e){(0,i.default)(n,"Hash history go(n) causes a full page reload in this browser"),t.go(e)},U=function(){return M(-1)},H=function(){return M(1)},F=0,B=function(e){F+=e,1===F?(0,d.addEventListener)(window,"hashchange",k):0===F&&(0,d.removeEventListener)(window,"hashchange",k)},z=!1,V=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=T.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},q=function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}},W={length:t.length,action:"POP",location:S,createHref:R,push:D,replace:L,go:M,goBack:U,goForward:H,block:V,listen:q};return W};t.default=b},function(e,t,n){"use strict";var r=n(72);r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(5),u=n.n(i),c=n(0),s=n.n(c),l=n(1),f=n.n(l),p=n(73),d=n.n(p),h=n(26),m=function(e){function t(){var n,a,i;r(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=a=o(this,e.call.apply(e,[this].concat(c))),a.history=d()(a.props),i=n,o(a,i)}return a(t,e),t.prototype.componentWillMount=function(){u()(!this.props.history,"<MemoryRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { MemoryRouter as Router }`.")},t.prototype.render=function(){return s.a.createElement(h.a,{history:this.history,children:this.props.children})},t}(s.a.Component);m.propTypes={initialEntries:f.a.array,initialIndex:f.a.number,getUserConfirmation:f.a.func,keyLength:f.a.number,children:f.a.node},t.a=m},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(5),u=r(i),c=n(14),s=n(23),l=n(24),f=r(l),p=function(e,t,n){return Math.min(Math.max(e,t),n)},d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.getUserConfirmation,n=e.initialEntries,r=void 0===n?["/"]:n,i=e.initialIndex,l=void 0===i?0:i,d=e.keyLength,h=void 0===d?6:d,m=(0,f.default)(),y=function(e){a(j,e),j.length=j.entries.length,m.notifyListeners(j.location,j.action)},v=function(){return Math.random().toString(36).substr(2,h)},b=p(l,0,r.length-1),g=r.map(function(e){return"string"===typeof e?(0,s.createLocation)(e,void 0,v()):(0,s.createLocation)(e,void 0,e.key||v())}),w=c.createPath,E=function(e,n){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var r=(0,s.createLocation)(e,n,v(),j.location);m.confirmTransitionTo(r,"PUSH",t,function(e){if(e){var t=j.index,n=t+1,o=j.entries.slice(0);o.length>n?o.splice(n,o.length-n,r):o.push(r),y({action:"PUSH",location:r,index:n,entries:o})}})},O=function(e,n){(0,u.default)(!("object"===("undefined"===typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var r=(0,s.createLocation)(e,n,v(),j.location);m.confirmTransitionTo(r,"REPLACE",t,function(e){e&&(j.entries[j.index]=r,y({action:"REPLACE",location:r}))})},T=function(e){var n=p(j.index+e,0,j.entries.length-1),r=j.entries[n];m.confirmTransitionTo(r,"POP",t,function(e){e?y({action:"POP",location:r,index:n}):y()})},_=function(){return T(-1)},C=function(){return T(1)},x=function(e){var t=j.index+e;return t>=0&&t<j.entries.length},k=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return m.setPrompt(e)},N=function(e){return m.appendListener(e)},j={length:g.length,action:"POP",location:g[b],index:b,entries:g,createHref:w,push:E,replace:O,go:T,goBack:_,goForward:C,canGo:x,block:k,listen:N};return j};t.default=d},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(36),s=n(35),l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=function(e){var t=e.to,n=e.exact,o=e.strict,i=e.location,u=e.activeClassName,p=e.className,d=e.activeStyle,h=e.style,m=e.isActive,y=e.ariaCurrent,v=r(e,["to","exact","strict","location","activeClassName","className","activeStyle","style","isActive","ariaCurrent"]);return a.a.createElement(c.a,{path:"object"===("undefined"===typeof t?"undefined":f(t))?t.pathname:t,exact:n,strict:o,location:i,children:function(e){var n=e.location,r=e.match,o=!!(m?m(r,n):r);return a.a.createElement(s.a,l({to:t,className:o?[p,u].filter(function(e){return e}).join(" "):p,style:o?l({},h,d):h,"aria-current":o&&y},v))}})};p.propTypes={to:s.a.propTypes.to,exact:u.a.bool,strict:u.a.bool,location:u.a.object,activeClassName:u.a.string,className:u.a.string,activeStyle:u.a.object,style:u.a.object,isActive:u.a.func,ariaCurrent:u.a.oneOf(["page","step","location","true"])},p.defaultProps={activeClassName:"active",ariaCurrent:"true"}},function(e,t,n){function r(e,t){for(var n,r=[],o=0,a=0,i="",u=t&&t.delimiter||"/";null!=(n=b.exec(e));){var l=n[0],f=n[1],p=n.index;if(i+=e.slice(a,p),a=p+l.length,f)i+=f[1];else{var d=e[a],h=n[2],m=n[3],y=n[4],v=n[5],g=n[6],w=n[7];i&&(r.push(i),i="");var E=null!=h&&null!=d&&d!==h,O="+"===g||"*"===g,T="?"===g||"*"===g,_=n[2]||u,C=y||v;r.push({name:m||o++,prefix:h||"",delimiter:_,optional:T,repeat:O,partial:E,asterisk:!!w,pattern:C?s(C):w?".*":"[^"+c(_)+"]+?"})}}return a<e.length&&(i+=e.substr(a)),i&&r.push(i),r}function o(e,t){return u(r(e,t))}function a(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function i(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function u(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"===typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var o="",u=n||{},c=r||{},s=c.pretty?a:encodeURIComponent,l=0;l<e.length;l++){var f=e[l];if("string"!==typeof f){var p,d=u[f.name];if(null==d){if(f.optional){f.partial&&(o+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(v(d)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+JSON.stringify(d)+"`");if(0===d.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var h=0;h<d.length;h++){if(p=s(d[h]),!t[l].test(p))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+JSON.stringify(p)+"`");o+=(0===h?f.prefix:f.delimiter)+p}}else{if(p=f.asterisk?i(d):s(d),!t[l].test(p))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+p+'"');o+=f.prefix+p}}else o+=f}return o}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function l(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function p(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return l(e,t)}function d(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(y(e[o],t,n).source);return l(new RegExp("(?:"+r.join("|")+")",f(n)),t)}function h(e,t,n){return m(r(e,n),t,n)}function m(e,t,n){v(t)||(n=t||n,t=[]),n=n||{};for(var r=n.strict,o=!1!==n.end,a="",i=0;i<e.length;i++){var u=e[i];if("string"===typeof u)a+=c(u);else{var s=c(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+s+p+")*"),p=u.optional?u.partial?s+"("+p+")?":"(?:"+s+"("+p+"))?":s+"("+p+")",a+=p}}var d=c(n.delimiter||"/"),h=a.slice(-d.length)===d;return r||(a=(h?a.slice(0,-d.length):a)+"(?:"+d+"(?=$))?"),a+=o?"$":r&&h?"":"(?="+d+"|$)",l(new RegExp("^"+a,f(n)),t)}function y(e,t,n){return v(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?p(e,t):v(e)?d(e,t,n):h(e,t,n)}var v=n(76);e.exports=y,e.exports.parse=r,e.exports.compile=o,e.exports.tokensToFunction=u,e.exports.tokensToRegExp=m;var b=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=n(78);r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(8),f=n.n(l),p=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.enable=function(e){this.unblock&&this.unblock(),this.unblock=this.context.router.history.block(e)},t.prototype.disable=function(){this.unblock&&(this.unblock(),this.unblock=null)},t.prototype.componentWillMount=function(){f()(this.context.router,"You should not use <Prompt> outside a <Router>"),this.props.when&&this.enable(this.props.message)},t.prototype.componentWillReceiveProps=function(e){e.when?this.props.when&&this.props.message===e.message||this.enable(e.message):this.disable()},t.prototype.componentWillUnmount=function(){this.disable()},t.prototype.render=function(){return null},t}(u.a.Component);p.propTypes={when:s.a.bool,message:s.a.oneOfType([s.a.func,s.a.string]).isRequired},p.defaultProps={when:!0},p.contextTypes={router:s.a.shape({history:s.a.shape({block:s.a.func.isRequired}).isRequired}).isRequired},t.a=p},function(e,t,n){"use strict";var r=n(80);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(5),f=n.n(l),p=n(8),d=n.n(p),h=n(81),m=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.isStatic=function(){return this.context.router&&this.context.router.staticContext},t.prototype.componentWillMount=function(){d()(this.context.router,"You should not use <Redirect> outside a <Router>"),this.isStatic()&&this.perform()},t.prototype.componentDidMount=function(){this.isStatic()||this.perform()},t.prototype.componentDidUpdate=function(e){var t=Object(h.a)(e.to),n=Object(h.a)(this.props.to);if(Object(h.b)(t,n))return void f()(!1,"You tried to redirect to the same route you're currently on: \""+n.pathname+n.search+'"');this.perform()},t.prototype.perform=function(){var e=this.context.router.history,t=this.props,n=t.push,r=t.to;n?e.push(r):e.replace(r)},t.prototype.render=function(){return null},t}(u.a.Component);m.propTypes={push:s.a.bool,from:s.a.string,to:s.a.oneOfType([s.a.string,s.a.object]).isRequired},m.defaultProps={push:!1},m.contextTypes={router:s.a.shape({history:s.a.shape({push:s.a.func.isRequired,replace:s.a.func.isRequired}).isRequired,staticContext:s.a.object}).isRequired},t.a=m},function(e,t,n){"use strict";var r=(n(82),n(83),n(84),n(19));n.d(t,"a",function(){return r.a}),n.d(t,"b",function(){return r.b});n(15)},function(e,t,n){"use strict";var r=n(5),o=(n.n(r),n(8));n.n(o),n(19),n(15),n(28),n(38),"function"===typeof Symbol&&Symbol.iterator,Object.assign},function(e,t,n){"use strict";var r=n(5),o=(n.n(r),n(8)),a=(n.n(o),n(19),n(15));n(28),n(38),Object.assign,a.f,a.a,a.a,a.a},function(e,t,n){"use strict";var r=n(5);n.n(r),n(15),n(19),n(28),"function"===typeof Symbol&&Symbol.iterator,Object.assign},function(e,t,n){"use strict";var r=n(86);r.a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=n(5),c=n.n(u),s=n(8),l=n.n(s),f=n(0),p=n.n(f),d=n(1),h=n.n(d),m=n(14),y=(n.n(m),n(26)),v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b=function(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,a=e.hash,i=void 0===a?"":a;return{pathname:n,search:"?"===o?"":o,hash:"#"===i?"":i}},g=function(e,t){return e?v({},t,{pathname:Object(m.addLeadingSlash)(e)+t.pathname}):t},w=function(e,t){if(!e)return t;var n=Object(m.addLeadingSlash)(e);return 0!==t.pathname.indexOf(n)?t:v({},t,{pathname:t.pathname.substr(n.length)})},E=function(e){return"string"===typeof e?Object(m.parsePath)(e):b(e)},O=function(e){return"string"===typeof e?e:Object(m.createPath)(e)},T=function(e){return function(){l()(!1,"You cannot %s with <StaticRouter>",e)}},_=function(){},C=function(e){function t(){var n,r,i;o(this,t);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return n=r=a(this,e.call.apply(e,[this].concat(c))),r.createHref=function(e){return Object(m.addLeadingSlash)(r.props.basename+O(e))},r.handlePush=function(e){var t=r.props,n=t.basename,o=t.context;o.action="PUSH",o.location=g(n,E(e)),o.url=O(o.location)},r.handleReplace=function(e){var t=r.props,n=t.basename,o=t.context;o.action="REPLACE",o.location=g(n,E(e)),o.url=O(o.location)},r.handleListen=function(){return _},r.handleBlock=function(){return _},i=n,a(r,i)}return i(t,e),t.prototype.getChildContext=function(){return{router:{staticContext:this.props.context}}},t.prototype.componentWillMount=function(){c()(!this.props.history,"<StaticRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { StaticRouter as Router }`.")},t.prototype.render=function(){var e=this.props,t=e.basename,n=(e.context,e.location),o=r(e,["basename","context","location"]),a={createHref:this.createHref,action:"POP",location:w(t,E(n)),push:this.handlePush,replace:this.handleReplace,go:T("go"),goBack:T("goBack"),goForward:T("goForward"),listen:this.handleListen,block:this.handleBlock};return p.a.createElement(y.a,v({},o,{history:a}))},t}(p.a.Component);C.propTypes={basename:h.a.string,context:h.a.object.isRequired,location:h.a.oneOfType([h.a.string,h.a.object])},C.defaultProps={basename:"",location:"/"},C.childContextTypes={router:h.a.object.isRequired},t.a=C},function(e,t,n){"use strict";var r=n(88);t.a=r.a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(5),f=n.n(l),p=n(8),d=n.n(p),h=n(27),m=function(e){function t(){return r(this,t),o(this,e.apply(this,arguments))}return a(t,e),t.prototype.componentWillMount=function(){d()(this.context.router,"You should not use <Switch> outside a <Router>")},t.prototype.componentWillReceiveProps=function(e){f()(!(e.location&&!this.props.location),'<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),f()(!(!e.location&&this.props.location),'<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.')},t.prototype.render=function(){var e=this.context.router.route,t=this.props.children,n=this.props.location||e.location,r=void 0,o=void 0;return u.a.Children.forEach(t,function(t){if(u.a.isValidElement(t)){var a=t.props,i=a.path,c=a.exact,s=a.strict,l=a.sensitive,f=a.from,p=i||f;null==r&&(o=t,r=p?Object(h.a)(n.pathname,{path:p,exact:c,strict:s,sensitive:l}):e.match)}}),r?u.a.cloneElement(o,{location:n,computedMatch:r}):null},t}(u.a.Component);m.contextTypes={router:s.a.shape({route:s.a.object.isRequired}).isRequired},m.propTypes={children:s.a.node,location:s.a.object},t.a=m},function(e,t,n){"use strict";var r=n(27);r.a},function(e,t,n){"use strict";var r=n(91);t.a=r.a},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(92),s=n.n(c),l=n(37),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p=function(e){var t=function(t){var n=t.wrappedComponentRef,o=r(t,["wrappedComponentRef"]);return a.a.createElement(l.a,{render:function(t){return a.a.createElement(e,f({},o,t,{ref:n}))}})};return t.displayName="withRouter("+(e.displayName||e.name)+")",t.WrappedComponent=e,t.propTypes={wrappedComponentRef:u.a.func},s()(t,e)};t.a=p},function(e,t,n){!function(t,n){e.exports=n()}(0,function(){"use strict";var e={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},t={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},n=Object.defineProperty,r=Object.getOwnPropertyNames,o=Object.getOwnPropertySymbols,a=Object.getOwnPropertyDescriptor,i=Object.getPrototypeOf,u=i&&i(Object);return function c(s,l,f){if("string"!==typeof l){if(u){var p=i(l);p&&p!==u&&c(s,p,f)}var d=r(l);o&&(d=d.concat(o(l)));for(var h=0;h<d.length;++h){var m=d[h];if(!e[m]&&!t[m]&&(!f||!f[m])){var y=a(l,m);try{n(s,m,y)}catch(e){}}}return s}return s}})},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(94),s=n(96),l=n(147),f=n(4),p=n(3),d=n(149),h=(n.n(d),n(150)),m=(n.n(h),function(e){var t=e.className,n=r(e,["className"]),o=n.location,i=o.search;"?"===i[0]&&(i=i.substring(1));for(var d=i.split("&"),h={},m=0;m<d.length;m++){var y=d[m].split("=");h[decodeURIComponent(y[0])]=decodeURIComponent(y[1])}var v=h.fullscreen,b=Object(u.a)("app",t),g=a.a.createElement("div",{className:"app-container"},a.a.createElement(c.a,{className:"app-aside"}),a.a.createElement(s.a,{className:"app-main"}));return v&&(b=Object(u.a)("app","fullscreen",t),g=a.a.createElement("div",{className:"app-container"},a.a.createElement(s.a,{className:"app-main"}))),!!window.MSInputMethodContext&&!!document.documentMode&&(b=Object(u.a)(b,"ie11")),a.a.createElement("div",{className:b},a.a.createElement(l.a,{className:"app-navbar"}),a.a.createElement(f.a,{top:p.a,right:p.b,bottom:p.d,left:p.b},g))}),y=Object(i.f)(m)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return s});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(95),s=(n.n(c),function(e){var t=e.className,n=r(e,["className"]),o=Object(u.a)("aside",t);return a.a.createElement("aside",Object.assign({className:o},n),a.a.createElement("div",{className:"aside-mainlinks"},a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement(i.b,{className:"title-s",to:"/"},"Dashboard")),a.a.createElement("li",null,a.a.createElement(i.b,{className:"title-s",to:"/projects"},"Projects")))),a.a.createElement("div",{className:"aside-additionallinks"},a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement("a",{className:"caption-s",href:"https://github.com/eclipse/sirius-components/issues",target:"_blank",rel:"noopener noreferrer"},"Report an issue")),a.a.createElement("li",null,a.a.createElement("a",{className:"caption-s",href:"https://stackoverflow.com/questions/tagged/sirius",target:"_blank",rel:"noopener noreferrer"},"Help")))))})},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(10),u=n(2),c=n(97),s=n(106),l=n(107),f=n(113),p=n(118),d=n(4),h=n(3),m=n(137),y=n(141),v=n(143),b=n(145),g=function(e){var t=e.className,n=r(e,["className"]),o=Object(u.a)("main",t);return a.a.createElement("main",Object.assign({className:o},n),a.a.createElement(d.a,{right:h.a,left:h.a},a.a.createElement(s.a,null,a.a.createElement(i.e,null,a.a.createElement(i.d,{exact:!0,path:"/",render:w}),a.a.createElement(i.d,{exact:!0,path:"/projects",render:E}),a.a.createElement(i.d,{exact:!0,path:"/projects/:projectName",render:O}),a.a.createElement(i.d,{exact:!0,path:"/newproject",render:T})))))},w=function(){return a.a.createElement(m.a,null,function(e,t,n){return a.a.createElement(c.a,{stateId:e,error:t,dashboard:n})})},E=function(){return a.a.createElement(y.a,null,function(e,t,n){return a.a.createElement(l.a,{stateId:e,error:t,projects:n})})},O=function(){return a.a.createElement(b.a,null,function(e,t,n,r,o,i,u){return a.a.createElement(p.a,{stateId:e,error:t,project:n,pageIdentifier:r,onTabClick:o,onActivityClick:i,onNewDescription:u})})},T=function(){return a.a.createElement(v.a,null,function(e,t,n,r,o,i,u,c){return a.a.createElement(f.a,{stateId:e,errors:t,isValid:n,onSubmit:r,name:o,nameIsValid:i,nameErrors:u,onNameChange:c})})}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return b});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),s=n(2),l=n(12),f=n(16),p=n(100),d=n(11),h=n(103),m=n(39),y=n(105),v=(n.n(y),{stateId:c.a.string.isRequired}),b=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.dashboard,i=r(e,["className","stateId","error","dashboard"]);switch(n){case m.h:return g(t,i);case m.b:return w(t,o,i);case m.a:return E(t,a,i);default:var u={title:"The dashboard is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:l.c};return w(t,u,i)}};b.propTypes=v;var g=function(e,t){return a.a.createElement(d.a,Object.assign({className:e},t))},w=function(e,t,n){return a.a.createElement(f.a,Object.assign({className:e},t,n))},E=function(e,t,n){var r=Object(s.a)("dashboardview",e),o=t.projectsCount,u=t.viewpointsCount,c=t.metamodelsCount;return a.a.createElement("div",Object.assign({className:r},n),a.a.createElement("div",{className:"info"},a.a.createElement(p.a,{className:"projectsinfo",title:o.toString(),message:"Projects"}),a.a.createElement(p.a,{className:"viewpointsinfo",title:u.toString(),message:"Viewpoints"}),a.a.createElement(p.a,{className:"metamodelsinfo",title:c.toString(),message:"Metamodels"})),a.a.createElement("div",{className:"projects"},a.a.createElement("div",{className:"projects-body"},a.a.createElement(i.b,{to:"/newproject"},a.a.createElement(p.a,{className:"newprojectinfo",title:"+",message:"New Project",to:""})),t.projects.map(function(e){return a.a.createElement(h.a,{key:e.name,project:e})}))))}},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(4),f=n(3),p=n(101),d=(n.n(p),{title:u.a.string.isRequired,message:u.a.string}),h=function(e){var t=e.className,n=e.title,o=e.message,i=r(e,["className","title","message"]),u=Object(c.a)("infocard",t);return a.a.createElement(s.a,Object.assign({},i,{className:u}),a.a.createElement(l.a,{top:f.a,right:f.a,bottom:f.a,left:f.a},a.a.createElement("div",{className:"infocard-container"},a.a.createElement("h1",{className:"infocard-title"},n),a.a.createElement("p",{className:"infocard-message"},o))))};h.propTypes=d},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return m});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),s=n(9),l=n(4),f=n(3),p=n(6),d=n(7),h={project:c.a.object.isRequired},m=function(e){var t=e.project,n=r(e,["project"]);return a.a.createElement(s.a,Object.assign({className:"projectsummarycard"},n),a.a.createElement(i.b,{to:"/projects/"+t.name},a.a.createElement(l.a,{top:f.b,right:f.b,bottom:f.b,left:f.b},a.a.createElement(p.a,{weight:d.j,size:d.f,hideOverflow:!0},t.name))),a.a.createElement(l.a,{top:f.c,right:f.b,bottom:f.b,left:f.b},a.a.createElement(p.a,null,t.description||"No description provided")))};m.propTypes=h},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return f});var i=n(0),u=n.n(i),c=n(12),s=n(16),l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),f=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={error:null},n}return a(t,e),l(t,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e})}},{key:"render",value:function(){var e=this.state.error;return e?u.a.createElement(s.a,{code:c.a,title:"An unexpected error has appeared during the rendering",message:e.message}):this.props.children}}]),t}(i.Component)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(12),l=n(108),f=n(16),p=n(11),d=n(110),h=n(40),m={stateId:u.a.string.isRequired},y=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.projects,i=r(e,["className","stateId","error","projects"]);switch(n){case h.g:return v(t,i);case h.a:return b(t,o,i);case h.h:return g(t,i);case h.i:return w(t,a,i);default:var u={title:"The projects list is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:s.c};return b(t,u,i)}};y.propTypes=m;var v=function(e,t){var n=Object(c.a)("",e);return a.a.createElement(p.a,Object.assign({className:n},t))},b=function(e,t,n){var r=Object(c.a)("",e);return a.a.createElement(f.a,Object.assign({className:r},t,n))},g=function(e,t){var n=Object(c.a)("",e);return a.a.createElement(l.a,Object.assign({title:"You haven't created any projects yet",message:"Once you start creating new projects, you will be able to see them here",className:n},t))},w=function(e,t,n){var r=Object(c.a)("listprojectsview",e);return a.a.createElement("div",{className:r},a.a.createElement(d.a,Object.assign({projects:t},n)))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return h});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(4),f=n(3),p=n(109),d=(n.n(p),{title:u.a.string.isRequired,message:u.a.string.isRequired}),h=function(e){var t=e.className,n=e.title,o=e.message,i=r(e,["className","title","message"]),u=Object(c.a)("blankcard",t);return a.a.createElement(s.a,Object.assign({},i,{className:u}),a.a.createElement(l.a,{top:f.a,right:f.a,left:f.a,bottom:f.a},a.a.createElement("div",{className:"blankcard-container"},a.a.createElement(l.a,{bottom:f.b},a.a.createElement("h1",{className:"title-l"},n)),a.a.createElement("p",null,o))))};h.propTypes=d},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return w});var o=n(0),a=n.n(o),i=n(10),u=n(1),c=n.n(u),s=n(2),l=n(9),f=n(20),p=n(13),d=n(4),h=n(3),m=n(6),y=n(7),v=n(112),b=(n.n(v),{projects:c.a.array.isRequired}),g={projects:[]},w=function(e){var t=e.className,n=e.projects,o=r(e,["className","projects"]),u=Object(s.a)("projectslistcard",t);return a.a.createElement(l.a,Object.assign({className:u},o),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(m.a,{weight:y.j,size:y.f},"Projects")),a.a.createElement(f.c,{kind:p.a},n.map(function(e){return a.a.createElement(i.b,{to:"projects/"+e.name,key:e.name},a.a.createElement(f.e,{kind:p.d},a.a.createElement("div",null,a.a.createElement(f.d,null,e.name),a.a.createElement(f.b,null,e.description||"No description provided"))))})))};w.propTypes=b,w.defaultProps=g},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return v});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(10),s=n(2),l=n(12),f=n(16),p=n(114),d=n(43),h=n(117),m=(n.n(h),{stateId:u.a.string.isRequired,errors:u.a.arrayOf(u.a.string).isRequired,isValid:u.a.bool.isRequired,onSubmit:u.a.func.isRequired,name:u.a.string.isRequired,nameIsValid:u.a.bool.isRequired,nameErrors:u.a.arrayOf(u.a.string).isRequired,onNameChange:u.a.func.isRequired}),y={errors:[],isValid:!1,onSubmit:function(){},name:"",nameIsValid:!1,nameErrors:[],onNameChange:function(){}},v=function(e){var t=e.className,n=e.stateId,o=e.errors,a=e.isValid,i=e.onSubmit,u=e.name,c=e.nameIsValid,s=e.nameErrors,f=e.onNameChange,p=r(e,["className","stateId","errors","isValid","onSubmit","name","nameIsValid","nameErrors","onNameChange"]);switch(n){case d.h:case d.f:return b(t,o,a,i,u,c,s,f);case d.i:return g(u);default:var h={title:"The new project page is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:l.c};return w(t,h,p)}};v.propTypes=m,v.defaultProps=y;var b=function(e,t,n,r,o,i,u,c){var l=Object(s.a)("newprojectview",e);return a.a.createElement("div",{className:l},a.a.createElement(p.a,{errors:t,isValid:n,onSubmit:r,name:o,nameIsValid:i,nameErrors:u,onNameChange:c}))},g=function(e){return a.a.createElement(c.c,{to:"/projects/"+e})},w=function(e,t,n){var r=Object(s.a)("",e);return a.a.createElement(f.a,Object.assign({className:r},t,n))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(2),u=n(29),c=n(41),s=n(9),l=n(42),f=n(4),p=n(3),d=n(6),h=n(7),m={},y=function(e){var t=e.className,n=e.errors,o=e.isValid,m=e.onSubmit,y=e.name,v=e.nameIsValid,b=e.nameErrors,g=e.onNameChange,w=r(e,["className","errors","isValid","onSubmit","name","nameIsValid","nameErrors","onNameChange"]),E=Object(i.a)("newprojectcard",t),O="";return!v&&b.length>0&&(O="fielderror"),a.a.createElement(s.a,Object.assign({className:E},w),a.a.createElement(f.a,{top:p.b,right:p.b,bottom:p.b,left:p.b},a.a.createElement(d.a,{weight:h.j,size:h.f,hideOverflow:!0},"New Project")),a.a.createElement(s.b,null),a.a.createElement(l.f,{onSubmit:m},a.a.createElement(l.d,null,n.map(function(e){return a.a.createElement(l.c,{key:e},e)})),a.a.createElement(l.e,null,a.a.createElement(l.g,{htmlFor:"name"},"Name"),a.a.createElement(l.b,null,"The name of the project can only contain letters and numbers separated by dots, dashes or underscores."),a.a.createElement(l.h,{id:"name",name:"name",className:O,placeholder:"Enter the name",value:y,onChange:g}),a.a.createElement(l.d,null,b.map(function(e){return a.a.createElement(l.c,{key:e},e)}))),a.a.createElement(l.a,null,a.a.createElement(u.a,{kind:c.c,disabled:!o},"Create Project"))))};y.propTypes=m},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(12),l=n(16),f=n(11),p=n(119),d=n(129),h=n(134),m=n(135),y=n(44),v=n(136),b=(n.n(v),{stateId:u.a.string}),g=function(e){var t=e.className,n=e.stateId,o=e.error,a=e.project,i=e.pageIdentifier,u=e.onTabClick,c=e.onActivityClick,l=e.onNewDescription,f=r(e,["className","stateId","error","project","pageIdentifier","onTabClick","onActivityClick","onNewDescription"]);switch(n){case y.i:return w(t,f);case y.a:return E(t,o,f);case y.j:return O(t,a,i,u,c,l,f);default:var p={title:"The project is in an unsupported state: "+n,message:"Contact your administrator to find a suitable solution",code:s.c};return E(t,p,f)}};g.propTypes=b;var w=function(e,t){return T(e,{},void 0,function(){},function(){},function(){},!0,t)},E=function(e,t,n){var r=Object(c.a)("",e);return a.a.createElement(l.a,Object.assign({className:r},t,n))},O=function(e,t,n,r,o,a,i){return T(e,t,n,r,o,a,!1,i)},T=function(e,t,n,r,o,i,u,s){var l=Object(c.a)("projectview",e);return a.a.createElement(f.c,{loading:u},a.a.createElement("div",{className:l},a.a.createElement(d.a,{name:t.name,description:t.description,onNewDescription:i}),a.a.createElement("div",{className:"projectview-main"},a.a.createElement("div",{className:"projectview-details"},a.a.createElement(m.a,{semanticResources:t.semanticResources}),a.a.createElement(h.a,{projectName:t.name,representations:t.representations})),a.a.createElement("div",{className:"projectview-workflow"},a.a.createElement(p.a,{projectName:t.name,pageIdentifier:n,pages:t.pages,sections:t.currentPageSections,onTabClick:r,onActivityClick:o})))))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return O});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(120),f=n(20),p=n(13),d=n(11),h=n(4),m=n(3),y=n(122),v=n(6),b=n(7),g=n(128),w=(n.n(g),{projectName:u.a.string.isRequired,pageIdentifier:u.a.string.isRequired,pages:u.a.array.isRequired,sections:u.a.array.isRequired,onTabClick:u.a.func,onActivityClick:u.a.func}),E={projectName:"",pageIdentifier:"",pages:[],sections:[],onTabClick:function(){},onActivityClick:function(){}},O=function(e){for(var t=e.className,n=e.projectName,o=e.pageIdentifier,i=e.pages,u=e.sections,l=e.onTabClick,f=e.onActivityClick,p=r(e,["className","projectName","pageIdentifier","pages","sections","onTabClick","onActivityClick"]),y=0,g=0;g<i.length;g++){i[g].identifier===o&&(y=g)}var w=void 0;i.length>0&&(w=a.a.createElement(_,{sections:u,projectName:n,pageIdentifier:o,onActivityClick:f}));var E=Object(c.a)("workflowcard",t);return a.a.createElement(s.a,Object.assign({},p,{className:E}),a.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},a.a.createElement(d.b,null,function(e){return a.a.createElement(v.a,{weight:b.j,size:b.f,loading:e,hideOverflow:!0},"Workflow")})),a.a.createElement(T,{pages:i,selectedTabIndex:y,onTabClick:l}),w)};O.propTypes=w,O.defaultProps=E;var T=function(e){var t=e.pages,n=e.selectedTabIndex,r=e.onTabClick;return 0===t.length?a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(d.b,null,function(e){return a.a.createElement(v.a,{loading:e},"No workflow pages found")})):a.a.createElement(y.a,{selectedTabIndex:n,tabs:t.map(function(e){return e.name}),onTabClick:r})},_=function(e){var t=e.sections,n=e.projectName,r=e.pageIdentifier,i=e.onActivityClick;return 0===t.length?a.a.createElement(C,null):t.map(function(e,u){return a.a.createElement(o.Fragment,{key:e.identifier},a.a.createElement(x,{key:e.identifier,projectName:n,pageIdentifier:r,section:e,onActivityClick:i}),u+1<t.length?a.a.createElement(s.b,null):null)})},C=function(){return a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,null,"No sections found in the workflow."))},x=function(e){var t=e.className,n=e.projectName,o=e.pageIdentifier,i=e.section,u=e.onActivityClick,s=r(e,["className","projectName","pageIdentifier","section","onActivityClick"]),l=Object(c.a)("section",t);return a.a.createElement("div",Object.assign({className:l},s),a.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,{weight:b.j,size:b.h,hideOverflow:!0},i.name)),a.a.createElement(k,{activities:i.activities,onActivityClick:u,projectName:n,pageIdentifier:o,sectionIdentifier:i.identifier}))},k=function(e){var t=e.activities,n=e.onActivityClick,r=e.projectName,o=e.pageIdentifier,i=e.sectionIdentifier;return 0===t.length?a.a.createElement(j,null):a.a.createElement(N,{activities:t,onActivityClick:n,projectName:r,pageIdentifier:o,sectionIdentifier:i})},N=function(e){var t=e.activities,n=e.onActivityClick,r=e.projectName,o=e.pageIdentifier,i=e.sectionIdentifier;return a.a.createElement(f.c,{kind:p.a},t.map(function(e){return a.a.createElement(f.e,{kind:p.b,key:e.identifier},a.a.createElement(f.d,null,e.name),a.a.createElement(f.a,null,a.a.createElement(l.a,{onClick:function(){return n(r,o,i,e.identifier)}})))}))},j=function(){return a.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.b,left:m.b},a.a.createElement(v.a,null,"No activities in the section."))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return c});var o=n(0),a=n.n(o),i=n(2),u=n(121),c=(n.n(u),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("iconrun",t);return a.a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",className:o,height:"16",width:"16"},n),a.a.createElement("polygon",{points:"0,0 16,8 0,16"}))})},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return g});var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(2),f=n(6),p=n(7),d=n(123),h=n(125),m=n(127),y=(n.n(m),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),v={tabs:s.a.array.isRequired,onTabClick:s.a.func.isRequired,selectedTabIndex:s.a.number.isRequired,numberOfTabsDisplayed:s.a.number.isRequired},b={tabs:[],onTabClick:function(){},selectedTabIndex:0,numberOfTabsDisplayed:3},g=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleTabBarNavClick=n.handleTabBarNavClick.bind(n),n.handleTabClick=n.handleTabClick.bind(n),n.state=Object(h.b)(void 0,e,h.a.newInitializeAction()),n}return a(t,e),y(t,[{key:"dispatch",value:function(e,t){this.setState(function(t,n){return Object(h.b)(t,n,e)},t)}},{key:"handleTabBarNavClick",value:function(e){var t=e.target,n=t.getAttribute("data-side");if("previous"===n&&this.state.isPreviousAvailable){var r=h.a.newHandlePreviousAction();this.dispatch(r)}else if("next"===n&&this.state.isNextAvailable){var o=h.a.newHandleNextAction();this.dispatch(o)}}},{key:"handleTabClick",value:function(e,t){var n=this.props.onTabClick,r=h.a.newHandleTabSelectedAction(t);this.dispatch(r,function(){return n(t)})}},{key:"getTabBarNavClassNames",value:function(e,t){var n="tabbar-nav";return e?t&&(n=Object(l.a)("tabbar-nav","tabbar-nav--contain-selection")):n=Object(l.a)("tabbar-nav","tabbar-nav--disabled"),n}},{key:"renderTabs",value:function(e,t,n,r){for(var o=[],a=Math.min(e.length,t+r),i=t;i<a;i++){var c=e[i];o.push(u.a.createElement(d.a,{key:c,index:i,onClick:this.handleTabClick,selected:i===n},c))}return o}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.tabs,r=e.numberOfTabsDisplayed,o=this.state,a=o.index,i=o.isPreviousAvailable,c=o.isNextAvailable,s=o.selectedTabIndex,d=s<a,h=a+r<s+1,m=Object(l.a)("tabbar",t),y=this.getTabBarNavClassNames(i,d),v=this.getTabBarNavClassNames(c,h),b=this.renderTabs(n,a,s,r);return u.a.createElement("div",{className:m},u.a.createElement("div",{className:y,onClick:this.handleTabBarNavClick,"data-side":"previous"},u.a.createElement(f.a,{weight:p.j},"<")),u.a.createElement("div",{className:"tabbar-tabs"},b),u.a.createElement("div",{className:v,onClick:this.handleTabBarNavClick,"data-side":"next"},u.a.createElement(f.a,{weight:p.j},">")))}}]),t}(i.Component);g.propTypes=v,g.defaultProps=b},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return v});var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(2),f=n(6),p=n(7),d=n(124),h=(n.n(d),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),m={selected:s.a.bool.isRequired,index:s.a.number.isRequired,onClick:s.a.func.isRequired},y={selected:!1,onClick:function(){}},v=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleTabClick=n.handleTabClick.bind(n),n}return a(t,e),h(t,[{key:"handleTabClick",value:function(e){var t=this.props,n=t.index;(0,t.onClick)(e,n)}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.children,r=e.selected,o="tab";return r&&(o=Object(l.a)(o,"tab--selected")),o=Object(l.a)(o,t),u.a.createElement("div",{className:o,onClick:this.handleTabClick},u.a.createElement(f.a,{weight:p.j,size:p.h,hideOverflow:!0},n))}}]),t}(i.Component);v.propTypes=m,v.defaultProps=y},function(e,t){},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(126),a=function(e,t,n){switch(n.kind){case o.e:var r=i(t.tabs,0,t.selectedTabIndex,t.numberOfTabsDisplayed);return r.stateId=o.h,r;case o.b:var a=i(t.tabs,e.index+1,e.selectedTabIndex,t.numberOfTabsDisplayed);return a.stateId=o.g,a;case o.c:var u=i(t.tabs,e.index-1,e.selectedTabIndex,t.numberOfTabsDisplayed);return u.stateId=o.g,u;case o.d:var c=i(t.tabs,e.index,n.selectedTabIndex,t.numberOfTabsDisplayed);return c.stateId=o.g,c;default:return e}},i=function(e,t,n,r){return{index:t,isPreviousAvailable:t>0,isNextAvailable:e.length>t+r,selectedTabIndex:n}},u=function(){return{kind:o.e}},c=function(){return{kind:o.b}},s=function(){return{kind:o.c}},l=function(e){return{kind:o.d,selectedTabIndex:e}},f={newInitializeAction:u,newHandleNextAction:c,newHandlePreviousAction:s,newHandleTabSelectedAction:l},p=Object(r.a)(o.a,a,o.f)},function(e,t,n){"use strict";n.d(t,"f",function(){return r}),n.d(t,"h",function(){return o}),n.d(t,"g",function(){return a}),n.d(t,"e",function(){return i}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return s}),n.d(t,"a",function(){return l});var r="INITIAL__STATE",o="PRISTINE__STATE",a="MOVED__STATE",i="INITIALIZE__ACTION",u="HANDLE_NEXT__ACTION",c="HANDLE_PREVIOUS__ACTION",s="HANDLE_TAB_SELECTED__ACTION",l={INITIAL__STATE:{INITIALIZE__ACTION:[o]},PRISTINE__STATE:{HANDLE_NEXT__ACTION:[a],HANDLE_PREVIOUS__ACTION:[a],HANDLE_TAB_SELECTED__ACTION:[a]},MOVED__STATE:{HANDLE_NEXT__ACTION:[a],HANDLE_PREVIOUS__ACTION:[a],HANDLE_TAB_SELECTED__ACTION:[a]}}},function(e,t){},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return T});var u=n(0),c=n.n(u),s=n(1),l=n.n(s),f=n(2),p=n(9),d=n(11),h=n(4),m=n(3),y=n(6),v=n(7),b=n(130),g=n(132),w=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),E={name:l.a.string.isRequired,description:l.a.string,onNewDescription:l.a.func.isRequired},O={name:"",onNewDescription:function(){}},T=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleEditClick=n.handleEditClick.bind(n),n.handleNewDescription=n.handleNewDescription.bind(n),n.state={isViewingDescription:!0},n}return i(t,e),w(t,[{key:"handleEditClick",value:function(){this.setState({isViewingDescription:!1})}},{key:"handleNewDescription",value:function(e){var t=this;this.setState({isViewingDescription:!0},function(){(0,t.props.onNewDescription)(e)})}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.name,o=e.description,a=(e.onNewDescription,r(e,["className","name","description","onNewDescription"])),i=this.state.isViewingDescription,u=Object(f.a)("projectheadercard",t);return c.a.createElement(p.a,Object.assign({className:u},a),c.a.createElement(h.a,{top:m.b,right:m.b,bottom:m.b,left:m.b},c.a.createElement(d.b,null,function(e){return c.a.createElement(y.a,{weight:v.j,size:v.d,hideOverflow:!0,loading:e},n)})),c.a.createElement(h.a,{top:m.c,right:m.b,bottom:m.c,left:m.b},i?c.a.createElement(g.a,{description:o||"No description provided",onEditClick:this.handleEditClick}):c.a.createElement(b.a,{description:o,onNewDescription:this.handleNewDescription})))}}]),t}(u.Component);T.propTypes=E,T.defaultProps=O},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return b});var i=n(0),u=n.n(i),c=n(1),s=n.n(c),l=n(29),f=n(42),p=n(4),d=n(3),h=n(131),m=(n.n(h),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),y={description:s.a.string.isRequired,onNewDescription:s.a.func.isRequired},v={description:""},b=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleDescriptionChange=n.handleDescriptionChange.bind(n),n.handleDoneClick=n.handleDoneClick.bind(n),n.state={description:e.description},n}return a(t,e),m(t,[{key:"handleDescriptionChange",value:function(e){var t=e.target.value;this.setState({description:t})}},{key:"handleDoneClick",value:function(){(0,this.props.onNewDescription)(this.state.description)}},{key:"render",value:function(){var e=this.state.description;return u.a.createElement("div",{className:"editdescription"},u.a.createElement(f.h,{value:e,onChange:this.handleDescriptionChange}),u.a.createElement(p.a,{left:d.b},u.a.createElement(l.a,{onClick:this.handleDoneClick},"Done")))}}]),t}(i.Component);b.propTypes=y,b.defaultProps=v},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return y});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(29),l=n(11),f=n(4),p=n(3),d=n(6),h=n(133),m=(n.n(h),{description:u.a.string.isRequired,onEditClick:u.a.func.isRequired}),y=function(e){var t=e.className,n=e.description,o=e.onEditClick,i=r(e,["className","description","onEditClick"]),u=Object(c.a)("viewdescription",t);return a.a.createElement("div",Object.assign({className:u},i),a.a.createElement(l.b,null,function(e){return a.a.createElement(a.a.Fragment,null,a.a.createElement(d.a,{className:"viewdescription-text",loading:e},n),a.a.createElement(f.a,{left:p.b},a.a.createElement(s.a,{onClick:o,loading:e},"Edit")))}))};y.propTypes=m},function(e,t){},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(20),f=n(13),p=n(11),d=n(4),h=n(3),m=n(6),y=n(7),v={representations:u.a.array.isRequired},b={representations:[]},g=function(e){var t=e.className,n=e.projectName,o=e.representations,i=r(e,["className","projectName","representations"]),u=Object(c.a)("projectrepresentationslistcard",t);return a.a.createElement(s.a,Object.assign({className:u},i),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{weight:y.j,size:y.f,loading:e,hideOverflow:!0},"Representations")})),a.a.createElement(w,{projectName:n,representations:o}))};g.propTypes=v,g.defaultProps=b;var w=function(e){var t=e.projectName,n=e.representations;return n.length>0?a.a.createElement(E,{projectName:t,representations:n}):a.a.createElement(O,null)},E=function(e){var t=(e.projectName,e.representations);return a.a.createElement(l.c,{kind:f.a},t.map(function(e){return a.a.createElement(l.e,{kind:f.d,key:e.name},a.a.createElement("div",null,a.a.createElement(l.d,null,e.name),a.a.createElement(l.b,null,e.descriptionName)))}))},O=function(){return a.a.createElement(d.a,{top:h.c,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{loading:e},"No representation has been found on the project.")}))}},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return g});var o=n(0),a=n.n(o),i=n(1),u=n.n(i),c=n(2),s=n(9),l=n(20),f=n(13),p=n(11),d=n(4),h=n(3),m=n(6),y=n(7),v={semanticResources:u.a.array.isRequired},b={semanticResources:[]},g=function(e){var t=e.className,n=e.semanticResources,o=r(e,["className","semanticResources"]),i=Object(c.a)("projectsemanticresourceslistcard",t);return a.a.createElement(s.a,Object.assign({className:i},o),a.a.createElement(d.a,{top:h.b,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{weight:y.j,size:y.f,loading:e,hideOverflow:!0},"Semantic Resources")})),a.a.createElement(w,{semanticResources:n}))};g.propTypes=v,g.defaultProps=b;var w=function(e){var t=e.semanticResources;return t.length>0?a.a.createElement(E,{semanticResources:t}):a.a.createElement(O,null)},E=function(e){var t=e.semanticResources;return a.a.createElement(l.c,{kind:f.a},t.map(function(e){return a.a.createElement(l.e,{kind:f.b,key:e.path},a.a.createElement(l.d,null,e.path),a.a.createElement(m.a,{size:y.k},e.size))}))},O=function(){return a.a.createElement(d.a,{top:h.c,right:h.b,bottom:h.b,left:h.b},a.a.createElement(p.b,null,function(e){return a.a.createElement(m.a,{loading:e},"No semantic resource has been found on the project.")}))}},function(e,t){},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),s=n(0),l=(n.n(s),n(140)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state=Object(l.b)(void 0,e,l.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/api/dashboard");case 3:if(t=e.sent,n=void 0,!t.ok){e.next=12;break}return e.next=8,t.json();case 8:r=e.sent,n=l.a.newHandleDashboardFetchedAction(r),e.next=14;break;case 12:o=t.statusText,a=t.status,n=l.a.newInvalidResponseAction(o,a);case 14:this.dispatch(n),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(0),i=l.a.newUnexpectedErrorAction(e.t0),this.dispatch(i);case 21:case"end":return e.stop()}},e,this,[[0,17]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(l.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.dashboard)}}]),t}(s.Component)},function(e,t,n){var r=function(){return this}()||Function("return this")(),o=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,a=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=n(139),o)r.regeneratorRuntime=a;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";function n(e,t,n,r){var a=t&&t.prototype instanceof o?t:o,i=Object.create(a.prototype),u=new d(r||[]);return i._invoke=s(e,n,u),i}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function o(){}function a(){}function i(){}function u(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function c(e){function t(n,o,a,i){var u=r(e[n],e,o);if("throw"!==u.type){var c=u.arg,s=c.value;return s&&"object"===typeof s&&b.call(s,"__await")?Promise.resolve(s.__await).then(function(e){t("next",e,a,i)},function(e){t("throw",e,a,i)}):Promise.resolve(s).then(function(e){c.value=e,a(c)},i)}i(u.arg)}function n(e,n){function r(){return new Promise(function(r,o){t(e,n,r,o)})}return o=o?o.then(r,r):r()}var o;this._invoke=n}function s(e,t,n){var o=C;return function(a,i){if(o===k)throw new Error("Generator is already running");if(o===N){if("throw"===a)throw i;return m()}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=l(u,n);if(c){if(c===j)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===C)throw o=N,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=k;var s=r(e,t,n);if("normal"===s.type){if(o=n.done?N:x,s.arg===j)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=N,n.method="throw",n.arg=s.arg)}}}function l(e,t){var n=e.iterator[t.method];if(n===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,l(e,t),"throw"===t.method))return j;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return j}var o=r(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,j;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,j):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,j)}function f(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function p(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function d(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(f,this),this.reset(!0)}function h(e){if(e){var t=e[w];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(b.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=y,t.done=!0,t};return r.next=r}}return{next:m}}function m(){return{value:y,done:!0}}var y,v=Object.prototype,b=v.hasOwnProperty,g="function"===typeof Symbol?Symbol:{},w=g.iterator||"@@iterator",E=g.asyncIterator||"@@asyncIterator",O=g.toStringTag||"@@toStringTag",T="object"===typeof e,_=t.regeneratorRuntime;if(_)return void(T&&(e.exports=_));_=t.regeneratorRuntime=T?e.exports:{},_.wrap=n;var C="suspendedStart",x="suspendedYield",k="executing",N="completed",j={},P={};P[w]=function(){return this};var I=Object.getPrototypeOf,S=I&&I(I(h([])));S&&S!==v&&b.call(S,w)&&(P=S);var A=i.prototype=o.prototype=Object.create(P);a.prototype=A.constructor=i,i.constructor=a,i[O]=a.displayName="GeneratorFunction",_.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===a||"GeneratorFunction"===(t.displayName||t.name))},_.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,i):(e.__proto__=i,O in e||(e[O]="GeneratorFunction")),e.prototype=Object.create(A),e},_.awrap=function(e){return{__await:e}},u(c.prototype),c.prototype[E]=function(){return this},_.AsyncIterator=c,_.async=function(e,t,r,o){var a=new c(n(e,t,r,o));return _.isGeneratorFunction(t)?a:a.next().then(function(e){return e.done?e.value:a.next()})},u(A),A[O]="Generator",A[w]=function(){return this},A.toString=function(){return"[object Generator]"},_.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},_.values=h,d.prototype={constructor:d,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=y,this.done=!1,this.delegate=null,this.method="next",this.arg=y,this.tryEntries.forEach(p),!e)for(var t in this)"t"===t.charAt(0)&&b.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=y)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=y),!!r}if(this.done)throw e;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var i=b.call(o,"catchLoc"),u=b.call(o,"finallyLoc");if(i&&u){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(i){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&b.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,j):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),j},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),p(n),j}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;p(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:h(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=y),j}}}(function(){return this}()||Function("return this")())},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(12),a=n(39),i=function(e,t,n){switch(n.kind){case a.f:return{stateId:a.h,dashboard:{projects:[]},error:null};case a.e:return{stateId:a.a,dashboard:n.dashboard,error:null};case a.d:return{stateId:a.b,dashboard:e.dashboard,error:n.error};default:return e}},u=function(){return{kind:a.f}},c=function(e){return{kind:a.e,dashboard:e}},s=function(e,t){return{kind:a.d,error:{title:"An error has occurred while retrieving the dashboard",message:e,code:t}}},l=function(e){return{kind:a.d,error:{title:"Unexpected content retrieved for the dashboard",message:e,code:o.b}}},f={newInitializeAction:u,newHandleDashboardFetchedAction:c,newInvalidResponseAction:s,newUnexpectedErrorAction:l},p=Object(r.a)(a.c,i,a.g)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),s=n(0),l=(n.n(s),n(142)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state=Object(l.b)(void 0,e,l.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("/api/projects");case 3:if(t=e.sent,n=void 0,!t.ok){e.next=12;break}return e.next=8,t.json();case 8:r=e.sent,n=l.a.newHandleProjectsFetchedAction(r),e.next=14;break;case 12:o=t.statusText,a=t.status,n=l.a.newInvalidResponseAction(o,a);case 14:this.dispatch(n),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(0),i=l.a.newUnexpectedErrorAction(e.t0),this.dispatch(i);case 21:case"end":return e.stop()}},e,this,[[0,17]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(l.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.projects)}}]),t}(s.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return f}),n.d(t,"b",function(){return p});var r=n(17),o=n(12),a=n(40),i=function(e,t,n){switch(n.kind){case a.e:return{stateId:a.g,projects:[],error:void 0};case a.d:return 0===n.projects.length?{stateId:a.h,projects:[],error:void 0}:{stateId:a.i,projects:n.projects,error:void 0};case a.c:return{stateId:a.a,projects:e.projects,error:n.error};default:return e}},u=function(){return{kind:a.e}},c=function(e){return{kind:a.d,projects:e.projects}},s=function(e,t){return{kind:a.c,error:{title:"An error has occurred while retrieving the list of projects",message:e,code:t}}},l=function(e){return{kind:a.c,error:{title:"Unexpected content retrieved for the projects list",message:e,code:o.b}}},f={newInitializeAction:u,newHandleProjectsFetchedAction:c,newInvalidResponseAction:s,newUnexpectedErrorAction:l},p=Object(r.a)(a.b,i,a.f)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return p});var u=n(21),c=n.n(u),s=n(0),l=(n.n(s),n(144)),f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),p=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleNameChange=n.handleNameChange.bind(n),n.handleSubmit=n.handleSubmit.bind(n),n.state=Object(l.b)(void 0,e,l.a.newInitializeAction()),n}return i(t,e),f(t,[{key:"handleNameChange",value:function(e){var t=e.target.value;this.dispatch(l.a.newModifyNameAction(t))}},{key:"handleSubmit",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u,s,f;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.state.name,t.preventDefault(),e.prev=2,r={name:n},o=new Request("/api/projects",{method:"POST",body:JSON.stringify(r)}),e.next=7,fetch(o);case 7:if(a=e.sent,i=a.ok,u=a.statusText,!i){e.next=13;break}this.dispatch(l.a.newCreatedProjectAction()),e.next=19;break;case 13:return s=u,e.next=16,a.json();case 16:f=e.sent,f&&(s=f.message),this.dispatch(l.a.newInvalidResponseAction(s));case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(2),this.dispatch(l.a.newUnexpectedErrorAction(e.t0.message));case 24:case"end":return e.stop()}},e,this,[[2,21]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(l.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state,a=o.stateId,i=o.errors,u=o.isValid,c=o.name,s=o.nameIsValid,l=o.nameErrors;return r(a,i,u,this.handleSubmit,c,s,l,this.handleNameChange)}}]),t}(s.Component)},function(e,t,n){"use strict";n.d(t,"a",function(){return p}),n.d(t,"b",function(){return d});var r=n(17),o=n(43),a=function(e,t,n){switch(n.kind){case o.d:return{stateId:o.h,errors:[],isValid:!1,name:"",nameIsValid:!1,nameErrors:[]};case o.g:var r=n.name,a=i(r),u=0===a.length,c=u;return{stateId:o.f,errors:[],isValid:c,name:r,nameIsValid:u,nameErrors:a};case o.c:var s=[].concat(e.errors);return s.push(n.message),{stateId:o.f,errors:s,isValid:!1};case o.b:return{stateId:o.i};default:return e}},i=function(e){var t=[];return 0===e.trim().length&&t.push("The name is required"),["\\","/",":","*","?",'"',"<",">","|"].forEach(function(n){-1!==e.indexOf(n)&&t.push("The character "+n+" cannot be used in the name")}),"."!==e.trim()&&".."!==e.trim()||t.push("The name cannot have the value . or .."),e.length>0&&"."===e.charAt(e.length-1)&&t.push("The name cannot end with a dot"),e.length>0&&0===e.trim().length?t.push("The name cannot be composed of whitespaces"):e.length!==e.trim().length&&t.push("Remove any whitespace at the beginning or the end"),t},u=function(){return{kind:o.d}},c=function(e){return{kind:o.g,name:e}},s=function(e){return{kind:o.c,message:"An error has occured during the processing of the response"}},l=function(){return{kind:o.b}},f=function(e){return{kind:o.c,message:e}},p={newInitializeAction:u,newModifyNameAction:c,newUnexpectedErrorAction:s,newCreatedProjectAction:l,newInvalidResponseAction:f},d=Object(r.a)(o.a,a,o.e)},function(e,t,n){"use strict";function r(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(o,a){try{var i=t[o](a),u=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(u).then(function(e){r("next",e)},function(e){r("throw",e)});e(u)}return r("next")})}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function i(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}n.d(t,"a",function(){return h});var u=n(21),c=n.n(u),s=n(0),l=(n.n(s),n(10)),f=n(146),p=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),d=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleActivityClick=n.handleActivityClick.bind(n),n.handleTabClick=n.handleTabClick.bind(n),n.handleNewDescription=n.handleNewDescription.bind(n),n.state=Object(f.b)(void 0,e,f.a.newInitializeAction()),n}return i(t,e),p(t,[{key:"componentDidMount",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.updateData();case 2:case"end":return e.stop()}},e,this)}));return e}()},{key:"updateData",value:function(){function e(){return t.apply(this,arguments)}var t=r(c.a.mark(function e(){var t,n,r,o,a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=this.props.match.params.projectName,e.next=4,fetch("/api/projects/"+t);case 4:if(n=e.sent,r=void 0,!n.ok){e.next=13;break}return e.next=9,n.json();case 9:o=e.sent,r=f.a.newHandleProjectFetchedAction(o),e.next=15;break;case 13:a=n.statusText,i=n.status,r=f.a.newInvalidResponseAction(a,i);case 15:this.dispatch(r),e.next=22;break;case 18:e.prev=18,e.t0=e.catch(0),u=f.a.newUnexpectedErrorAction(e.t0),this.dispatch(u);case 22:case"end":return e.stop()}},e,this,[[0,18]])}));return e}()},{key:"handleTabClick",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.state.project.pages,r=n[t].identifier,o=this.props.match.params.projectName,e.prev=3,e.next=6,fetch("/api/projects/"+o+"/pages/"+r);case 6:return a=e.sent,e.next=9,a.json();case 9:i=e.sent,u=f.a.newHandlePageFetchedAction(i),this.dispatch(u),e.next=16;break;case 14:e.prev=14,e.t0=e.catch(3);case 16:case"end":return e.stop()}},e,this,[[3,14]])}));return e}()},{key:"handleActivityClick",value:function(){function e(e,n,r,o){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t,n,r,o){var a,i,u;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,a=new Request("/api/projects/"+t+"/pages/"+n+"/sections/"+r+"/activities/"+o+"/execute",{method:"POST"}),e.next=4,fetch(a);case 4:return i=e.sent,u=i.ok,e.next=9,this.updateData();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(0);case 13:case"end":return e.stop()}},e,this,[[0,11]])}));return e}()},{key:"handleNewDescription",value:function(){function e(e){return t.apply(this,arguments)}var t=r(c.a.mark(function e(t){var n,r,o,a,i,u,s,l;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.state.project,r=n.description,void 0===r&&(r=""),t===r){e.next=20;break}return o=this.props.match.params.projectName,e.prev=5,a=JSON.stringify({description:t}),i=new Request("/api/projects/"+o,{method:"PUT",body:a}),e.next=10,fetch(i);case 10:return u=e.sent,e.next=13,u.json();case 13:s=e.sent,l=f.a.newHandleDescriptionUpdatedAction(s),this.dispatch(l),e.next=20;break;case 18:e.prev=18,e.t0=e.catch(5);case 20:case"end":return e.stop()}},e,this,[[5,18]])}));return e}()},{key:"dispatch",value:function(e){this.setState(function(t,n){return Object(f.b)(t,n,e)})}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.render,r=void 0===n?t:n,o=this.state;return r(o.stateId,o.error,o.project,o.pageIdentifier,this.handleTabClick,this.handleActivityClick,this.handleNewDescription)}}]),t}(s.Component),h=Object(l.f)(d)},function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"b",function(){return h});var r=n(17),o=n(12),a=n(44),i=function(e,t,n){switch(n.kind){case a.g:return{stateId:a.i,project:void 0,pageIdentifier:void 0,error:void 0};case a.f:var r=void 0;return n.project.pages.length>0&&(r=n.project.pages[0].identifier),{stateId:a.j,project:n.project,pageIdentifier:r,error:void 0};case a.e:var o={stateId:a.j,project:e.project,pageIdentifier:n.page.identifier,error:void 0};return o.project.currentPageSections=n.page.sections,o;case a.c:var i={stateId:a.j,project:e.project,pageIdentifier:e.pageIdentifier,error:void 0};return i.project=Object.assign({},i.project,{description:n.description}),i;case a.d:return{stateId:a.a,project:e.project,pageIdentifier:e.pageIdentifier,error:n.error};default:return e}},u=function(){return{kind:a.g}},c=function(e){return{kind:a.f,project:e}},s=function(e){return{kind:a.e,page:e}},l=function(e){return{kind:a.c,description:e.description}},f=function(e,t){return{kind:a.d,error:{title:"An error has occurred while retrieving the project",message:e,code:t}}},p=function(e){return{kind:a.d,error:{title:"Unexpected content retrieved for the project",message:e,code:o.b}}},d={newInitializeAction:u,newHandleProjectFetchedAction:c,newHandlePageFetchedAction:s,newHandleDescriptionUpdatedAction:l,newInvalidResponseAction:f,newUnexpectedErrorAction:p},h=Object(r.a)(a.b,i,a.h)},function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}n.d(t,"a",function(){return p});var o=n(0),a=n.n(o),i=n(2),u=n(4),c=n(3),s=n(6),l=n(7),f=n(148),p=(n.n(f),function(e){var t=e.className,n=r(e,["className"]),o=Object(i.a)("navbar",t);return a.a.createElement("nav",Object.assign({className:o},n),a.a.createElement(u.a,{top:c.c,right:c.b,bottom:c.c,left:c.b},a.a.createElement("div",{className:"navbar-container"},a.a.createElement("div",{className:"navbar-title title-xxl"},a.a.createElement(s.a,{weight:l.a,size:l.c},"Eclipse Sirius")))))})},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){}]);
-//# sourceMappingURL=main.7441a635.js.map
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js.map b/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js.map
deleted file mode 100644
index 1cdae41..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/sirius-frontend/static/js/main.7441a635.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../static/js/main.7441a635.js","../webpack/bootstrap 9590c7cee182aefb2c84","../node_modules/react/index.js","../node_modules/prop-types/index.js","common/classnames.js","components/spacing/SpacingConstants.js","components/spacing/Spacing.js","../node_modules/warning/browser.js","components/text/Text.js","components/text/TextConstants.js","../node_modules/invariant/browser.js","components/cards/Card.js","components/loading/Loading.js","common/errors.js","components/list/ListConstants.js","../node_modules/history/PathUtils.js","../node_modules/history/es/PathUtils.js","components/error/ErrorCard.js","common/dispatcherCreator.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/history/es/LocationUtils.js","components/list/List.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/object-assign/index.js","../node_modules/history/LocationUtils.js","../node_modules/history/createTransitionManager.js","../node_modules/react-router-dom/es/Router.js","../node_modules/react-router/es/Router.js","../node_modules/react-router/es/matchPath.js","../node_modules/history/es/createTransitionManager.js","components/buttons/Button.js","../node_modules/promise/lib/core.js","../node_modules/fbjs/lib/emptyObject.js","../node_modules/resolve-pathname/index.js","../node_modules/value-equal/index.js","../node_modules/history/DOMUtils.js","../node_modules/react-router-dom/es/Link.js","../node_modules/react-router-dom/es/Route.js","../node_modules/react-router/es/Route.js","../node_modules/history/es/DOMUtils.js","components/dashboard/DashboardViewFiniteStateMachine.js","components/projects/listprojects/ListProjectsViewFiniteStateMachine.js","components/buttons/ButtonConstants.js","components/form/Form.js","components/projects/newproject/NewProjectViewFiniteStateMachine.js","components/projects/project/ProjectViewFiniteStateMachine.js","../node_modules/react-scripts/config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/react-scripts/node_modules/webpack/buildin/global.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/fbjs/lib/ExecutionEnvironment.js","../node_modules/fbjs/lib/EventListener.js","../node_modules/fbjs/lib/getActiveElement.js","../node_modules/fbjs/lib/shallowEqual.js","../node_modules/fbjs/lib/containsNode.js","../node_modules/fbjs/lib/isTextNode.js","../node_modules/fbjs/lib/isNode.js","../node_modules/fbjs/lib/focusNode.js","../node_modules/react-router-dom/es/BrowserRouter.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/fbjs/lib/invariant.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/history/createBrowserHistory.js","../node_modules/react-router-dom/es/HashRouter.js","../node_modules/history/createHashHistory.js","../node_modules/react-router-dom/es/MemoryRouter.js","../node_modules/react-router/es/MemoryRouter.js","../node_modules/history/createMemoryHistory.js","../node_modules/react-router-dom/es/NavLink.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router-dom/es/Prompt.js","../node_modules/react-router/es/Prompt.js","../node_modules/react-router-dom/es/Redirect.js","../node_modules/react-router/es/Redirect.js","../node_modules/history/es/createBrowserHistory.js","../node_modules/history/es/createHashHistory.js","../node_modules/history/es/createMemoryHistory.js","../node_modules/react-router-dom/es/StaticRouter.js","../node_modules/react-router/es/StaticRouter.js","../node_modules/react-router-dom/es/Switch.js","../node_modules/react-router/es/Switch.js","../node_modules/react-router-dom/es/matchPath.js","../node_modules/react-router-dom/es/withRouter.js","../node_modules/react-router/es/withRouter.js","../node_modules/react-router/node_modules/hoist-non-react-statics/index.js","components/app/App.js","components/aside/Aside.js","components/main/Main.js","components/dashboard/DashboardView.js","components/info/InfoCard.js","components/projects/ProjectSummaryCard.js","components/error/ErrorBoundary.js","components/projects/listprojects/ListProjectsView.js","components/blank/BlankCard.js","components/projects/ProjectsListCard.js","components/projects/newproject/NewProjectView.js","components/projects/NewProjectCard.js","components/projects/project/ProjectView.js","components/workflow/WorkflowCard.js","components/icons/IconRun.js","components/tabbar/TabBar.js","components/tabbar/Tab.js","components/tabbar/TabBarDispatcher.js","components/tabbar/TabBarFiniteStateMachine.js","components/projects/header/ProjectHeaderCard.js","components/projects/header/EditDescription.js","components/projects/header/ViewDescription.js","components/projects/ProjectRepresentationsListCard.js","components/projects/ProjectSemanticResourcesListCard.js","containers/dashboard/DashboardViewStateContainer.js","../node_modules/regenerator-runtime/runtime-module.js","../node_modules/regenerator-runtime/runtime.js","components/dashboard/DashboardViewDispatcher.js","containers/projects/ListProjectsViewStateContainer.js","components/projects/listprojects/ListProjectsViewDispatcher.js","containers/projects/NewProjectViewStateContainer.js","components/projects/newproject/NewProjectViewDispatcher.js","containers/projects/ProjectViewStateContainer.js","components/projects/project/ProjectViewDispatcher.js","components/navbar/Navbar.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","classNames","staticClassNames","_len","arguments","length","optionalClassNames","Array","_key","filter","join","trim","XS","S","M","L","XL","XXL","Spacing","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_prop_types__","__WEBPACK_IMPORTED_MODULE_1_prop_types___default","__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__","propTypes","top","a","oneOf","right","bottom","left","_ref","children","style","paddingTop","paddingRight","paddingBottom","paddingLeft","createElement","warning","_objectWithoutProperties","obj","keys","target","indexOf","Text","__WEBPACK_IMPORTED_MODULE_2__common_classnames__","__WEBPACK_IMPORTED_MODULE_3__TextConstants__","__WEBPACK_IMPORTED_MODULE_4__Text_css__","string","loading","bool","weight","isRequired","size","hideOverflow","defaultProps","className","textClassNames","LIGHT","REGULAR","SEMI_BOLD","BOLD","EXTRA_BOLD","EXTRA_EXTRA_LARGE","EXTRA_LARGE","LARGE","MEDIUM","SMALL","EXTRA_SMALL","invariant","condition","format","b","e","f","error","undefined","Error","args","argIndex","replace","framesToPop","Card","Divider","__WEBPACK_IMPORTED_MODULE_1__common_classnames__","__WEBPACK_IMPORTED_MODULE_2__Card_css__","props","cardClassNames","assign","_ref2","dividerClassNames","__WEBPACK_IMPORTED_MODULE_0__BrowserRouter__","__WEBPACK_IMPORTED_MODULE_2__Link__","__WEBPACK_IMPORTED_MODULE_6__Redirect__","__WEBPACK_IMPORTED_MODULE_7__Route__","__WEBPACK_IMPORTED_MODULE_10__Switch__","__WEBPACK_IMPORTED_MODULE_12__withRouter__","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","value","writable","setPrototypeOf","__proto__","Loading","LoadingProvider","LoadingConsumer","__WEBPACK_IMPORTED_MODULE_3__Loading_css__","_createClass","defineProperties","descriptor","key","protoProps","staticProps","loadingClassNames","_Component","this","getPrototypeOf","apply","LoadingProvider_LOADING","childContextTypes","context","render","_props$children","contextTypes","UNKNOWN_ERROR","UNSUPPORTED_STATE","RENDERING_ERROR","SINGLE_LINE","TWO_LINES","THREE_LINES","LIST_WITH_HIGHLIGHT__KIND","hasBasename","addLeadingSlash","path","charAt","stripLeadingSlash","substr","prefix","RegExp","test","stripBasename","stripTrailingSlash","slice","parsePath","pathname","search","hash","hashIndex","searchIndex","createPath","location","ErrorCard","__WEBPACK_IMPORTED_MODULE_3__cards_Card__","__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__","code","number","title","message","errorCardClassNames","dispatcherCreator","FSM","reducer","INITIAL__STATE","prevState","stateId","action","transitions","newPotentialState","kind","newState","console","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","createLocation","locationsAreEqual","__WEBPACK_IMPORTED_MODULE_0_resolve_pathname__","__WEBPACK_IMPORTED_MODULE_1_value_equal__","__WEBPACK_IMPORTED_MODULE_2__PathUtils__","_extends","source","state","currentLocation","decodeURI","URIError","_toConsumableArray","arr","isArray","arr2","from","AdditionalIcon","MainText","AdditionalText","Tile","List","__WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_5__text_Text__","__WEBPACK_IMPORTED_MODULE_6__ListConstants__","__WEBPACK_IMPORTED_MODULE_7__List_css__","__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__","mainIconPropTypes","mainIconClassNames","additionalIconPropTypes","additionalIconClassNames","mainTextPropTypes","_ref3","mainTextClassNames","additionalTextPropTypes","_ref4","additionalTextClassNames","tilePropTypes","_ref5","kindClassName","tileClassNames","listPropTypes","oneOfType","array","arrayOf","objectOf","listDefaultProps","_ref6","kinds","computeKinds","listClassNames","concat","push","toObject","val","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","test3","split","forEach","letter","err","symbols","to","_interopRequireDefault","default","_resolvePathname","_resolvePathname2","_valueEqual","_valueEqual2","_PathUtils","_warning","_warning2","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","callback","result","listeners","appendListener","fn","isActive","listener","item","notifyListeners","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__","__WEBPACK_IMPORTED_MODULE_0_warning__","__WEBPACK_IMPORTED_MODULE_0_warning___default","__WEBPACK_IMPORTED_MODULE_1_invariant__","__WEBPACK_IMPORTED_MODULE_1_invariant___default","__WEBPACK_IMPORTED_MODULE_2_react__","__WEBPACK_IMPORTED_MODULE_2_react___default","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","Router","_React$Component","_temp","_this","_ret","match","computeMatch","history","getChildContext","router","route","url","params","isExact","componentWillMount","_this2","_props","Children","count","unlisten","listen","setState","componentWillReceiveProps","nextProps","componentWillUnmount","only","Component","node","__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__","__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default","patternCache","cacheCount","compilePath","pattern","options","cacheKey","end","strict","sensitive","cache","re","compiledPattern","matchPath","_options","_options$path","_options$exact","exact","_options$strict","_options$sensitive","_compilePath","exec","values","reduce","memo","index","Button","__WEBPACK_IMPORTED_MODULE_3__loading_Loading__","__WEBPACK_IMPORTED_MODULE_6__text_Text__","__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__","__WEBPACK_IMPORTED_MODULE_9__Button_css__","buttonClassNames","kindClassNames","getKindClassNames","disabled","noop","getThen","then","ex","LAST_ERROR","IS_ERROR","tryCallOne","tryCallTwo","Promise","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","resolve","reject","res","handle","Handler","deferred","_47","handleResolved","asap","cb","promise","ret","newValue","finale","bind","_71","done","reason","_44","emptyObject","isAbsolute","spliceOne","list","k","pop","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","unshift","valueEqual","every","aType","_typeof","aValue","valueOf","bValue","aKeys","bKeys","Symbol","iterator","canUseDOM","window","document","addEventListener","event","attachEvent","removeEventListener","detachEvent","getConfirmation","confirm","supportsHistory","ua","navigator","userAgent","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","__WEBPACK_IMPORTED_MODULE_2_invariant__","__WEBPACK_IMPORTED_MODULE_2_invariant___default","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","Link","handleClick","onClick","defaultPrevented","button","preventDefault","_this$props","innerRef","href","createHref","ref","func","shape","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__","__WEBPACK_IMPORTED_MODULE_4__matchPath__","isEmptyChildren","Route","computedMatch","component","nextContext","_context$router","staticContext","LOADING__STATE","ERROR__STATE","DASHBOARD_LOADED__STATE","INITIALIZE__ACTION","HANDLE_FETCHED_DASHBOARD__ACTION","HANDLE_ERROR__ACTION","NO_PROJECTS_LOADED__STATE","PROJECTS_LOADED__STATE","HANDLE_FETCHED_PROJECTS__ACTION","BUTTON_DEFAULT__KIND","BUTTON_PRIMARY__KIND","BUTTON_SUCCESS__KIND","BUTTON_WARNING__KIND","BUTTON_DANGER__KIND","Form","Field","Label","Description","TextField","ActionGroup","ErrorGroup","__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_4__Form_css__","formClassNames","fieldClassNames","labelClassNames","descriptionClassNames","type","actionGroupClassNames","_ref7","errorGroupClassNames","_ref8","errorClassNames","PRISTINE__STATE","MODIFIED__STATE","REDIRECT__STATE","MODIFY_NAME__ACTION","HANDLE_CREATED_PROJECT__ACTION","PROJECT_LOADED__STATE","HANDLE_FETCHED_PROJECT__ACTION","HANDLE_FETCHED_PAGE__ACTION","HANDLE_DESCRIPTION_UPDATED__ACTION","enable","disable","enabled","onUnhandled","id","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","clearTimeout","timeout","setTimeout","stack","line","some","cls","RangeError","global","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","createTextNode","observe","characterData","data","g","Function","eval","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","all","remaining","race","normalizeName","toLowerCase","normalizeValue","iteratorFor","items","next","shift","support","iterable","Headers","headers","append","header","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","bufferClone","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","toString","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","JSON","parse","normalizeMethod","method","upcased","toUpperCase","methods","Request","input","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","oldValue","has","thisArg","entries","clone","response","redirectStatuses","redirect","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","__WEBPACK_IMPORTED_MODULE_1_react_dom__","__WEBPACK_IMPORTED_MODULE_1_react_dom___default","__WEBPACK_IMPORTED_MODULE_2_react_router_dom__","__WEBPACK_IMPORTED_MODULE_3__components_app_App__","__WEBPACK_IMPORTED_MODULE_4__reset_css__","__WEBPACK_IMPORTED_MODULE_5__app_css__","basename","getElementById","y","encodeURIComponent","A","refs","updater","z","B","C","E","J","H","I","h","$$typeof","r","_owner","G","current","K","escape","=",":","N","keyPrefix","O","P","t","u","v","Q","x","R","T","q","w","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","forceUpdate","D","isPureReactComponent","F","unstable_isAsyncReactComponent","__self","__source","U","toArray","PureComponent","unstable_AsyncComponent","Fragment","cloneElement","createFactory","isValidElement","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","V","freeze","W","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","pa","va","oa","wa","hasBooleanValue","hasStringBooleanValue","hasOverloadedBooleanValue","Ia","Ja","_hasCaughtError","_caughtError","Ka","_hasRethrowError","_rethrowError","Na","La","Ma","Oa","extractEvents","eventTypes","Pa","phasedRegistrationNames","Qa","registrationName","Ra","Sa","dependencies","Ta","Ua","Za","currentTarget","Ya","invokeGuardedCallbackAndCatchFirstError","$a","ab","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","db","gb","ib","stateNode","Wa","jb","kb","bb","lb","rethrowCaughtError","pb","parentNode","tag","qb","rb","ob","tb","ub","vb","dispatchConfig","wb","_targetInst","xb","yb","zb","Ab","Bb","alternate","Eb","Db","documentElement","Fb","_fallbackText","_startText","Gb","_root","nativeEvent","Interface","isDefaultPrevented","returnValue","Kb","eventPool","Lb","destructor","Jb","getPooled","Mb","Nb","dc","Pb","keyCode","ec","detail","gc","which","cc","ac","hc","fc","Vb","char","$b","mc","Xa","jc","restoreControlledState","oc","kc","lc","pc","rc","tc","sc","vc","nodeName","uc","wc","srcElement","correspondingUseElement","nodeType","yc","setAttribute","xc","implementation","hasFeature","zc","Ac","getOwnPropertyDescriptor","getValue","setValue","stopTracking","_valueTracker","Bc","Cc","checked","Ec","Dc","change","Hc","Ic","Jc","Lc","Fc","Mc","Gc","propertyName","Nc","Oc","Pc","$c","bd","dd","getModifierState","cd","ed","fd","jd","displayName","kd","effectTag","ld","_reactInternalFiber","md","nd","child","sibling","od","pd","rd","targetInst","ancestors","containerInfo","sd","topLevelType","ud","td","ba","vd","wd","capture","qd","yd","Cd","Ad","zd","Bd","Hd","Gd","Fd","Ed","Id","firstChild","Jd","textContent","offset","nextSibling","Kd","contentEditable","Rd","Qd","Nd","da","start","selectionStart","selectionEnd","getSelection","anchorNode","anchorOffset","focusNode","focusOffset","Pd","ea","Md","select","Od","Td","Ud","Vd","Wd","charCode","Zd","$d","ae","be","ce","he","ge","ke","le","je","ie","me","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","ne","X","oe","cursor","pe","qe","__reactInternalMemoizedMergedChildContext","Y","memoizedState","updateQueue","memoizedProps","pendingProps","internalContextTag","lastEffect","firstEffect","nextEffect","expirationTime","se","te","ue","ve","we","handler","xe","ye","pendingChildren","Be","Ce","isDisabled","supportsFiber","inject","ze","onCommitFiberRoot","Ae","onCommitFiberUnmount","De","Ee","Fe","baseState","first","callbackList","hasForceUpdate","isInitialized","Ge","He","Ie","partialState","Je","isReplace","isForced","Ke","Le","nextCallback","adoptClassInstance","constructClassInstance","mountClassInstance","componentDidMount","updateClassInstance","componentDidUpdate","shouldComponentUpdate","componentWillUpdate","Xe","We","Ze","_stringRef","$e","af","Map","Re","Ve","Se","Te","Ue","Ye","df","cf","bf","pendingContext","shouldSetTextContent","useSyncScheduling","shouldDeprioritizeSubtree","pushHostContext","pushHostContainer","enterHydrationState","resetHydrationState","tryToClaimNextHydratableInstance","Ob","beginWork","element","hydrate","beginFailedWork","ef","createInstance","createTextInstance","appendInitialChild","finalizeInitialChildren","prepareUpdate","persistence","getRootHostContainer","popHostContext","getHostContext","popHostContainer","prepareToHydrateHostInstance","prepareToHydrateHostTextInstance","popHydrationState","mutation","completeWork","ff","getPublicInstance","commitMount","commitUpdate","resetTextContent","commitTextUpdate","appendChild","appendChildToContainer","insertBefore","insertInContainerBefore","removeChild","removeChildFromContainer","commitResetTextContent","commitPlacement","commitDeletion","commitWork","commitLifeCycles","commitAttachRef","commitDetachRef","hf","gf","getChildHostContext","getRootHostContext","resetHostContainer","jf","hydration","canHydrateInstance","canHydrateTextInstance","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","kf","Qb","ja","isReadyForCommit","yg","zg","Ag","Ne","Oe","Sc","Bg","Tc","Cg","Dg","Eg","componentDidCatch","componentStack","ca","Qc","ha","qa","Fg","rg","Gg","Uc","ra","Rc","eb","qg","Set","add","_debugOwner","_debugSource","fileName","lineNumber","componentName","errorBoundary","errorBoundaryFound","errorBoundaryName","willRetry","suppressReactErrorLogging","Vc","ka","Hg","Rb","Ig","nextScheduledRoot","remainingExpirationTime","sa","Fa","la","Sb","ma","na","Wc","Pe","Tb","Jg","Xc","Kg","fb","Yc","Ub","Zc","finishedWork","timeRemaining","Lg","Me","now","scheduleDeferredCallback","cancelDeferredCallback","prepareForCommit","resetAfterCommit","computeAsyncExpiration","computeExpirationForFiber","scheduleWork","batchedUpdates","unbatchedUpdates","flushSync","deferredUpdates","lf","createContainer","updateContainer","getPublicRootInstance","findHostInstance","findHostInstanceWithNoPortals","injectIntoDevTools","findFiberByHostInstance","findHostInstanceByFiber","pf","Hf","Gf","Ff","Ef","If","mutationMethod","hasNumericValue","isNaN","hasPositiveNumericValue","Jf","mustUseProperty","attributeName","attributeNamespace","setAttributeNS","Kf","removeAttribute","Lf","step","min","max","defaultChecked","defaultValue","_wrapperState","initialValue","initialChecked","Mf","controlled","Nf","Of","parseFloat","Pf","Qf","aa","Rf","Sf","selected","defaultSelected","Tf","wasMultiple","multiple","Uf","dangerouslySetInnerHTML","Vf","Wf","Xf","Zf","$f","cg","lastChild","nodeValue","fg","dg","setProperty","hg","gg","ig","is","lg","ownerDocument","topBlur","topFocus","topCancel","topClose","Dd","ng","jg","innerHTML","createElementNS","og","pg","mg","kg","__html","bg","onclick","sg","tg","ug","vg","Ng","Og","hasAttribute","Pg","_reactRootContainer","Z","Qg","Rg","fa","ia","suppressContentEditableWarning","suppressHydrationWarning","ta","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","HAS_STRING_BOOLEAN_VALUE","injectDOMPropertyConfig","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMMutationMethods","xa","ya","za","Aa","Ba","Ca","Da","allowFullScreen","async","autoFocus","autoPlay","cols","controls","defer","download","draggable","formNoValidate","hidden","loop","muted","noValidate","playsInline","readOnly","required","reversed","rows","rowSpan","scoped","seamless","span","spellCheck","tabIndex","itemScope","acceptCharset","htmlFor","httpEquiv","validity","badInput","activeElement","Ea","xlink","xml","Ga","autoReverse","externalResourcesRequired","preserveAlpha","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","Ha","injection","injectErrorUtils","invokeGuardedCallback","hasCaughtError","clearCaughtError","Va","plugins","eventNameDispatchConfigs","registrationNameModules","registrationNameDependencies","possibleRegistrationNames","injectEventPluginOrder","injectEventPluginsByName","hb","mb","getListener","enqueueEvents","processEventQueue","nb","Math","random","sb","precacheFiberNode","getClosestInstanceFromNode","getInstanceFromNode","getNodeFromInstance","getFiberCurrentPropsFromNode","updateFiberProps","Cb","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","accumulateDirectDispatches","Hb","Ib","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","stopPropagation","cancelBubble","persist","augmentClass","Wb","documentMode","Xb","Yb","opera","parseInt","Zb","bc","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","ic","nc","injectFiberControlledHostComponent","qc","enqueueStateRestore","restoreStateIfNeeded","color","date","datetime","datetime-local","email","month","password","range","tel","time","week","Kc","ad","_isInputEventSupported","getAttribute","Alt","Control","Meta","Shift","screenX","screenY","clientX","clientY","pageX","pageY","buttons","relatedTarget","fromElement","toElement","gd","mouseEnter","mouseLeave","hd","defaultView","parentWindow","xd","_enabled","_handleTopLevel","setHandleTopLevel","setEnabled","isEnabled","trapBubbledEvent","trapCapturedEvent","dispatchEvent","animationend","animationiteration","animationstart","transitionend","animation","transition","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoad","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topToggle","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","Ld","Sd","onSelect","animationName","elapsedTime","pseudoElement","clipboardData","Xd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Yd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","repeat","locale","dataTransfer","touches","targetTouches","changedTouches","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","de","ee","fe","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Qe","mf","nf","of","qf","performance","rf","sf","tf","requestIdleCallback","cancelIdleCallback","Bf","uf","vf","wf","xf","yf","zf","Af","didTimeout","Cf","requestAnimationFrame","Df","postMessage","Infinity","Yf","html","mathml","svg","ag","MSApp","execUnsafeLocalFunction","namespaceURI","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","eg","substring","menuitem","area","base","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","wg","setInitialProperties","diffProperties","updateProperties","diffHydratedProperties","diffHydratedText","warnForUnmatchedText","warnForDeletedHydratableElement","warnForDeletedHydratableText","warnForInsertedHydratedElement","warnForInsertedHydratedText","querySelectorAll","stringify","xg","Mg","tagName","rangeCount","focusedElem","selectionRange","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","didNotMatchHydratedContainerTextInstance","didNotMatchHydratedTextInstance","didNotHydrateContainerInstance","didNotHydrateInstance","didNotFindHydratableContainerInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableInstance","didNotFindHydratableTextInstance","unmount","Sg","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_deferredUpdates","EventPluginHub","EventPluginRegistry","EventPropagators","ReactControlledComponent","ReactDOMComponentTree","ReactDOMEventListener","bundleType","rendererPackageName","Tg","Ug","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","isInWorker","EventListener","eventType","remove","registerDefault","getActiveElement","doc","shallowEqual","objA","objB","keysA","keysB","containsNode","outerNode","innerNode","isTextNode","contains","compareDocumentPosition","isNode","Node","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_1_react___default","__WEBPACK_IMPORTED_MODULE_2_prop_types__","__WEBPACK_IMPORTED_MODULE_2_prop_types___default","__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default","__WEBPACK_IMPORTED_MODULE_4__Router__","BrowserRouter","forceRefresh","keyLength","ReactPropTypesSecret","shim","propName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","checkPropTypes","PropTypes","validateFormat","_invariant","_invariant2","_LocationUtils","_createTransitionManager","_createTransitionManager2","_DOMUtils","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","_props$getUserConfirm","_props$keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","handlePop","handleHashChange","forceNextPop","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","block","unblock","__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default","HashRouter","hashType","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","pushHashPath","replaceHashPath","createHashHistory","canGoWithoutReload","_props$hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","nextPaths","__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__","__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__","__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default","MemoryRouter","initialEntries","initialIndex","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","_props$initialIndex","entry","nextIndex","nextEntries","splice","canGo","__WEBPACK_IMPORTED_MODULE_2__Route__","__WEBPACK_IMPORTED_MODULE_3__Link__","NavLink","activeClassName","activeStyle","getIsActive","ariaCurrent","rest","aria-current","str","tokens","defaultDelimiter","delimiter","PATH_REGEXP","escaped","group","modifier","asterisk","partial","optional","escapeGroup","escapeString","compile","tokensToFunction","encodeURIComponentPretty","encodeURI","charCodeAt","encodeAsterisk","matches","opts","encode","pretty","token","segment","isarray","j","attachKeys","flags","regexpToRegexp","groups","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","endsWithDelimiter","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__","Prompt","when","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__","__WEBPACK_IMPORTED_MODULE_2_warning__","__WEBPACK_IMPORTED_MODULE_2_warning___default","__WEBPACK_IMPORTED_MODULE_3_invariant__","__WEBPACK_IMPORTED_MODULE_3_invariant___default","__WEBPACK_IMPORTED_MODULE_4_history__","Redirect","isStatic","perform","prevProps","prevTo","nextTo","__WEBPACK_IMPORTED_MODULE_3__LocationUtils__","__WEBPACK_IMPORTED_MODULE_3__PathUtils__","__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__","__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__","__WEBPACK_IMPORTED_MODULE_5__Router__","normalizeLocation","_object$pathname","_object$search","_object$hash","addBasename","createURL","staticHandler","methodName","StaticRouter","handlePush","handleReplace","_this$props2","handleListen","handleBlock","__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__","Switch","_element$props","pathProp","__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__","__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__","__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__","__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default","__WEBPACK_IMPORTED_MODULE_3__Route__","withRouter","wrappedComponentRef","remainingProps","routeComponentProps","WrappedComponent","factory","REACT_STATICS","getDefaultProps","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","App","__WEBPACK_IMPORTED_MODULE_1_react_router_dom__","__WEBPACK_IMPORTED_MODULE_3__aside_Aside__","__WEBPACK_IMPORTED_MODULE_4__main_Main__","__WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__","__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_8__App_css__","__WEBPACK_IMPORTED_MODULE_9__ie11_css__","AppWithoutRouter","query","segments","parameters","isFullScreen","appClassNames","container","MSInputMethodContext","Aside","__WEBPACK_IMPORTED_MODULE_3__Aside_css__","asideClassNames","rel","Main","__WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__","__WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__","__WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__","__WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__","__WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__","__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__","__WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__","__WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__","__WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__","mainClassNames","renderDashboardViewStateContainer","renderListProjectsViewStateContainer","renderProjectViewStateContainer","renderNewProjectViewStateContainer","dashboard","projects","project","pageIdentifier","onTabClick","onActivityClick","onNewDescription","errors","isValid","onSubmit","nameIsValid","nameErrors","onNameChange","DashboardView","__WEBPACK_IMPORTED_MODULE_3__common_classnames__","__WEBPACK_IMPORTED_MODULE_4__common_errors__","__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__","__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__","__WEBPACK_IMPORTED_MODULE_7__loading_Loading__","__WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__","__WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_10__DashboardView_css__","renderLoadingState","renderErrorState","renderDashboardLoadedState","undefinedStateError","dashboardViewClassNames","projectsCount","viewpointsCount","metamodelsCount","InfoCard","__WEBPACK_IMPORTED_MODULE_6__InfoCard_css__","infoCardClassNames","ProjectSummaryCard","description","ErrorBoundary","__WEBPACK_IMPORTED_MODULE_1__common_errors__","__WEBPACK_IMPORTED_MODULE_2__ErrorCard__","info","ListProjectsView","__WEBPACK_IMPORTED_MODULE_3__common_errors__","__WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__","__WEBPACK_IMPORTED_MODULE_6__loading_Loading__","__WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__","__WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__","renderEmptyState","renderProjectsLoadedState","listProjectsViewLoadingClassNames","listProjectsViewErrorClassNames","listProjectsViewEmptyClassNames","listProjectsViewClassNames","BlankCard","__WEBPACK_IMPORTED_MODULE_6__BlankCard_css__","blankCardClassNames","ProjectsListCard","__WEBPACK_IMPORTED_MODULE_4__cards_Card__","__WEBPACK_IMPORTED_MODULE_5__list_List__","__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__","__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_9__text_Text__","__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__","projectsListCardClassNames","NewProjectView","__WEBPACK_IMPORTED_MODULE_6__NewProjectCard__","__WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__","renderForm","renderRedirectState","newProjectViewClassNames","newProjectViewErrorClassNames","NewProjectCard","__WEBPACK_IMPORTED_MODULE_2__buttons_Button__","__WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__","__WEBPACK_IMPORTED_MODULE_5__form_Form__","__WEBPACK_IMPORTED_MODULE_8__text_Text__","__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__","newProjectCardClassNames","nameClassName","placeholder","onChange","ProjectView","__WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__","__WEBPACK_IMPORTED_MODULE_5__loading_Loading__","__WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__","__WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__","__WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__","__WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__","__WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__","__WEBPACK_IMPORTED_MODULE_11__ProjectView_css__","renderProjectLoadedState","renderProjectState","projectViewErrorClassNames","projectViewClassNames","semanticResources","projectName","representations","pages","sections","currentPageSections","WorkflowCard","__WEBPACK_IMPORTED_MODULE_4__icons_IconRun__","__WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__","__WEBPACK_IMPORTED_MODULE_11__text_Text__","__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__","selectedTabIndex","identifier","sectionsElement","Sections","workflowCardClassNames","WorkflowTabBar","tabs","page","EmptySections","section","Section","sectionClassNames","Activities","activities","sectionIdentifier","EmptyActivities","ActivitiesList","activity","IconRun","__WEBPACK_IMPORTED_MODULE_2__IconRun_css__","iconRunClassNames","xmlns","height","width","points","TabBar","__WEBPACK_IMPORTED_MODULE_3__text_Text__","__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_5__Tab__","__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__","__WEBPACK_IMPORTED_MODULE_7__TabBar_css__","numberOfTabsDisplayed","handleTabBarNavClick","handleTabClick","newInitializeAction","side","isPreviousAvailable","newHandlePreviousAction","dispatch","isNextAvailable","newHandleNextAction","newHandleTabSelectedAction","isAvailable","containsSelection","tabBarNavClassNames","startIndex","tabsToDisplay","endIndex","tab","_state","previousContainsSelection","nextContainsSelection","tabBarClassNames","previousClassNames","getTabBarNavClassNames","nextClassNames","renderTabs","data-side","Tab","__WEBPACK_IMPORTED_MODULE_5__Tab_css__","_props2","tabClassNames","actionCreator","dispatcher","__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__","__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__","initializedState","computeState","handleNextState","handlePreviousState","handleTabSelectedState","MOVED__STATE","HANDLE_NEXT__ACTION","HANDLE_PREVIOUS__ACTION","HANDLE_TAB_SELECTED__ACTION","ProjectHeaderCard","__WEBPACK_IMPORTED_MODULE_4__loading_Loading__","__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__","__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__","__WEBPACK_IMPORTED_MODULE_7__text_Text__","__WEBPACK_IMPORTED_MODULE_9__EditDescription__","__WEBPACK_IMPORTED_MODULE_10__ViewDescription__","projectHeaderCardPropTypes","projectHeaderCardDefaultProps","handleEditClick","handleNewDescription","isViewingDescription","onEditClick","EditDescription","__WEBPACK_IMPORTED_MODULE_3__form_Form__","__WEBPACK_IMPORTED_MODULE_6__EditDescription_css__","editDescriptionPropTypes","editDescriptionDefaultProps","handleDescriptionChange","handleDoneClick","ViewDescription","__WEBPACK_IMPORTED_MODULE_3__buttons_Button__","__WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__","viewDescriptionPropTypes","viewDescriptionClassNames","ProjectRepresentationsListCard","__WEBPACK_IMPORTED_MODULE_4__list_List__","__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__","Representations","RepresentationsList","EmptyRepresentations","representation","descriptionName","ProjectSemanticResourcesListCard","SemanticResources","SemanticResourcesList","EmptySemanticResources","resource","_asyncToGenerator","gen","DashboardViewStateContainer","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__","mark","_callee","jsonDashboardResponse","dashboardResponse","_action","wrap","_context","prev","sent","newHandleDashboardFetchedAction","newInvalidResponseAction","t0","newUnexpectedErrorAction","stop","_props$render","hadRuntime","regeneratorRuntime","oldRuntime","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","invoke","record","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","GenStateSuspendedYield","return","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","iteratorSymbol","Op","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","isGeneratorFunction","genFun","ctor","awrap","iter","reverse","skipTempReset","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__","ListProjectsViewStateContainer","__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__","jsonProjectsResponse","projectsResponse","newHandleProjectsFetchedAction","__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__","NewProjectViewStateContainer","__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__","handleNameChange","handleSubmit","newModifyNameAction","_x","jsonResponse","newCreatedProjectAction","__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__","validateName","invalidCharacter","ProjectViewStateContainer","__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__","ProjectViewStateContainerWithoutRouter","handleActivityClick","updateData","_callee2","jsonProjectResponse","projectResponse","_context2","newHandleProjectFetchedAction","_callee3","jsonPageResponse","pageResponse","_context3","newHandlePageFetchedAction","_x2","_x3","_x4","_x5","_callee4","activityIdentifier","_context4","_x6","_callee5","oldDescription","_context5","newHandleDescriptionUpdatedAction","__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__","newFetchedPageState","newDescriptionUpdatedState","Navbar","__WEBPACK_IMPORTED_MODULE_4__text_Text__","__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__","__WEBPACK_IMPORTED_MODULE_6__Navbar_css__","navClassNames"],"mappings":"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","file":"static/js/main.7441a635.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n  module.exports = __webpack_require__(53);\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = __webpack_require__(65)();\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return classNames; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * Computes the class names of an element from the given static class names\n * along with optional class names which can be null or undefined.\n */var classNames=function classNames(staticClassNames){for(var _len=arguments.length,optionalClassNames=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){optionalClassNames[_key-1]=arguments[_key];}var classNames=staticClassNames+' '+optionalClassNames.filter(function(n){return n;}).join(' ');return classNames.trim();};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return XS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return S; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return M; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return L; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return XL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return XXL; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var XS='4px';var S='8px';var M='16px';var L='32px';var XL='64px';var XXL='128px';\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Spacing; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SpacingConstants__ = __webpack_require__(3);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={top:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),right:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),bottom:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]]),left:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"e\" /* XS */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"c\" /* S */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"b\" /* M */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"a\" /* L */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"d\" /* XL */],__WEBPACK_IMPORTED_MODULE_2__SpacingConstants__[\"f\" /* XXL */]])};/**\n * The Spacing component is used to help manage the layout of the components.\n *\n * It will compute a padding for the div which will encapsulate the children from\n * the given value of top, right, bottom and left.\n */var Spacing=function Spacing(_ref){var children=_ref.children,top=_ref.top,right=_ref.right,bottom=_ref.bottom,left=_ref.left;var style={paddingTop:top,paddingRight:right,paddingBottom:bottom,paddingLeft:left};return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{style:style},children);};Spacing.propTypes=propTypes;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (false) {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Text_css__ = __webpack_require__(104);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Text_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Text_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,loading:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,weight:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"g\" /* LIGHT */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"i\" /* REGULAR */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"j\" /* SEMI_BOLD */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"a\" /* BOLD */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"b\" /* EXTRA_BOLD */]]).isRequired,size:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"e\" /* EXTRA_SMALL */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"k\" /* SMALL */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"h\" /* MEDIUM */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"f\" /* LARGE */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"d\" /* EXTRA_LARGE */],__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"c\" /* EXTRA_EXTRA_LARGE */]]).isRequired,hideOverflow:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};var defaultProps={weight:__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"i\" /* REGULAR */],size:__WEBPACK_IMPORTED_MODULE_3__TextConstants__[\"k\" /* SMALL */]};var Text=function Text(_ref){var children=_ref.children,className=_ref.className,weight=_ref.weight,size=_ref.size,hideOverflow=_ref.hideOverflow,loading=_ref.loading,props=_objectWithoutProperties(_ref,['children','className','weight','size','hideOverflow','loading']);var textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('text',size,weight);if(hideOverflow){textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,'hideoverflow');}if(loading){textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,'loading');}textClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(textClassNames,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:textClassNames},children);};Text.propTypes=propTypes;Text.defaultProps=defaultProps;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return LIGHT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return REGULAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return SEMI_BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return EXTRA_BOLD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return EXTRA_EXTRA_LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return EXTRA_LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return LARGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return MEDIUM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return SMALL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return EXTRA_SMALL; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/// Text weights\nvar LIGHT='light';var REGULAR='regular';var SEMI_BOLD='semibold';var BOLD='bold';var EXTRA_BOLD='extrabold';// Text sizes\nvar EXTRA_EXTRA_LARGE='xxl';var EXTRA_LARGE='xl';var LARGE='l';var MEDIUM='m';var SMALL='s';var EXTRA_SMALL='xs';\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (false) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Card; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Divider; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Card_css__ = __webpack_require__(98);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Card_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__Card_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var CARD__CLASS_NAMES='card';/**\n * The Card component is used as a common block of the user interface.\n */var Card=function Card(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:cardClassNames},props),props.children);};var CARD_DIVIDER__CLASS_NAMES='card-divider';/**\n * The Divider is used to separate two main parts of the Card like the Header\n * and the Body or the Body and the Footer.\n */var Divider=function Divider(_ref2){var className=_ref2.className,props=_objectWithoutProperties(_ref2,['className']);var dividerClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(CARD_DIVIDER__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:dividerClassNames},props));};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__ = __webpack_require__(64);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__HashRouter__ = __webpack_require__(69);\n/* unused harmony reexport HashRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Link__ = __webpack_require__(35);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_2__Link__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MemoryRouter__ = __webpack_require__(71);\n/* unused harmony reexport MemoryRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NavLink__ = __webpack_require__(74);\n/* unused harmony reexport NavLink */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Prompt__ = __webpack_require__(77);\n/* unused harmony reexport Prompt */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Redirect__ = __webpack_require__(79);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_6__Redirect__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Route__ = __webpack_require__(36);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_7__Route__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Router__ = __webpack_require__(25);\n/* unused harmony reexport Router */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__StaticRouter__ = __webpack_require__(85);\n/* unused harmony reexport StaticRouter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Switch__ = __webpack_require__(87);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_10__Switch__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__matchPath__ = __webpack_require__(89);\n/* unused harmony reexport matchPath */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__withRouter__ = __webpack_require__(90);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_12__withRouter__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Loading; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return LoadingProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return LoadingConsumer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Loading_css__ = __webpack_require__(102);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Loading_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__Loading_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var LOADING__CLASS_NAMES='loading';/**\n * The Login component is used to display that we are waiting for some\n * asynchronous process to finish like a request to a server.\n */var Loading=function Loading(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var loadingClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(LOADING__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:loadingClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null));};var LoadingProvider=function(_Component){_inherits(LoadingProvider,_Component);function LoadingProvider(){_classCallCheck(this,LoadingProvider);return _possibleConstructorReturn(this,(LoadingProvider.__proto__||Object.getPrototypeOf(LoadingProvider)).apply(this,arguments));}_createClass(LoadingProvider,[{key:'getChildContext',value:function getChildContext(){return{LoadingProvider_LOADING:this.props.loading};}},{key:'render',value:function render(){return this.props.children;}}]);return LoadingProvider;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);LoadingProvider.childContextTypes={LoadingProvider_LOADING:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired};var LoadingConsumer=function LoadingConsumer(props,context){var render=props.render,_props$children=props.children,children=_props$children===undefined?render:_props$children;var loading=context.LoadingProvider_LOADING;return children(loading);};LoadingConsumer.contextTypes={LoadingProvider_LOADING:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return UNKNOWN_ERROR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return UNSUPPORTED_STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return RENDERING_ERROR; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/// See the knowledge base document for more information regarding errors\nvar UNKNOWN_ERROR=1000;var UNSUPPORTED_STATE=1001;var RENDERING_ERROR=1002;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SINGLE_LINE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return TWO_LINES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return THREE_LINES; });\n/* unused harmony export LIST_WITH_SEPARATOR__KIND */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return LIST_WITH_HIGHLIGHT__KIND; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var SINGLE_LINE='SINGLE_LINE';var TWO_LINES='TWO_LINES';var THREE_LINES='THREE_LINES';var LIST_WITH_SEPARATOR__KIND='list--separated';var LIST_WITH_HIGHLIGHT__KIND='list--highlighted';\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return addLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return stripLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return hasBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return stripBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return stripTrailingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return parsePath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return createPath; });\nvar addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ErrorCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__ = __webpack_require__(99);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ErrorCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__ErrorCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={code:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};var ERRORCARD__CLASS_NAMES='errorcard';var ERRORCARD_CONTAINER__CLASS_NAMES='errorcard-container';var ERRORCARD_TITLE__CLASS_NAMES='title-l';/**\n * The ErrorCard component is used to display errors.\n */var ErrorCard=function ErrorCard(_ref){var className=_ref.className,code=_ref.code,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','code','title','message']);var errorCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(ERRORCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:errorCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ERRORCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:ERRORCARD_TITLE__CLASS_NAMES},title)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',null,message+' (code: '+code+')'))));};ErrorCard.propTypes=propTypes;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return dispatcherCreator; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The dispatcher creator is a function which will create a new dispatcher\n * initialized thanks to the following parameters:\n *\n * First, the finite state machine defining all the states and transitions in\n * the stateful component. Second, the reducer used to define the behavior of\n * each transition, allowing the stateful component to move from one state to\n * another and finally, the initial state of the finite state machine.\n *\n * It will then return a dispatcher which will ensure that the reducer cannot\n * be called to execute an action which is not defined on the current state\n * starting with the initial state. It will also make sure that the new state\n * computed by the reducer is accessible from the current state with the action\n * that the reducer had to execute.\n *\n * Failure to comply with those requirements will result in an error logged in\n * the console and no change will be applied to the returned state.\n */var dispatcherCreator=function dispatcherCreator(FSM,reducer,INITIAL__STATE){return function(){var prevState=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{stateId:INITIAL__STATE};var props=arguments[1];var action=arguments[2];var transitions=FSM[prevState.stateId];var newPotentialState=transitions[action.kind];if(newPotentialState){var newState=reducer(prevState,props,action);if(newPotentialState.indexOf(newState.stateId)!==-1){if(FSM[newState.stateId]){return newState;}else{console.error(\"The state \"+newState.stateId+\" does not exist.\");}}else{console.error(\"The state '\"+newState.stateId+\"' should not be accessible from \"+prevState.stateId+\" with the transition \"+action.kind+\".\");}}else{console.error(\"The state '\"+prevState.stateId+\"' does not support the transition '\"+action.kind+\"'.\");}return prevState;};};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return createLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return locationsAreEqual; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_resolve_pathname__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_value_equal__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__PathUtils__ = __webpack_require__(15);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\nvar createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = Object(__WEBPACK_IMPORTED_MODULE_2__PathUtils__[\"d\" /* parsePath */])(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = Object(__WEBPACK_IMPORTED_MODULE_0_resolve_pathname__[\"default\"])(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(__WEBPACK_IMPORTED_MODULE_1_value_equal__[\"default\"])(a.state, b.state);\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export MainIcon */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AdditionalIcon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return MainText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return AdditionalText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return Tile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return List; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__List_css__ = __webpack_require__(111);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__List_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__List_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_TextConstants__ = __webpack_require__(7);\nfunction _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TILE_MAINICON__CLASS_NAMES='tile-mainicon';var mainIconPropTypes={};/**\n * The main icon is used to display an image before the main text.\n */var MainIcon=function MainIcon(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var mainIconClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_MAINICON__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:mainIconClassNames},props));};MainIcon.propTypes=mainIconPropTypes;var TILE_ADDITIONALICON__CLASS_NAMES='tile-additionalicon';var additionalIconPropTypes={};/**\n * The additional icon is used to display images after the main text.\n */var AdditionalIcon=function AdditionalIcon(_ref2){var className=_ref2.className,props=_objectWithoutProperties(_ref2,['className']);var additionalIconClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_ADDITIONALICON__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:additionalIconClassNames},props));};AdditionalIcon.propTypes=additionalIconPropTypes;var TILE_MAINTEXT__CLASS_NAMES='tile-maintext';var mainTextPropTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The MainText component is used as the main text content of a tile.\n */var MainText=function MainText(_ref3){var className=_ref3.className,children=_ref3.children,props=_objectWithoutProperties(_ref3,['className','children']);var mainTextClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_MAINTEXT__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__text_Text__[\"a\" /* Text */],Object.assign({className:mainTextClassNames},props),children);};MainText.propTypes=mainTextPropTypes;var TILE_ADDITIONALTEXT__CLASS_NAMES='tile-additionaltext';var additionalTextPropTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The AdditionalText component is used as the additional text content of a tile.\n */var AdditionalText=function AdditionalText(_ref4){var className=_ref4.className,children=_ref4.children,props=_objectWithoutProperties(_ref4,['className','children']);var additionalTextClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE_ADDITIONALTEXT__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__text_Text__[\"a\" /* Text */],Object.assign({className:additionalTextClassNames},props,{size:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"e\" /* EXTRA_SMALL */],weight:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"g\" /* LIGHT */]}),children);};AdditionalText.propTypes=additionalTextPropTypes;var TILE__CLASS_NAMES='tile';var TILE__SINGLELINE__CLASS_NAMES='tile--singleline';var TILE__TWOLINE__CLASS_NAMES='tile--twoline';var TILE__THREELINE__CLASS_NAMES='tile--threeline';var tilePropTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"b\" /* SINGLE_LINE */],__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"d\" /* TWO_LINES */],__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"c\" /* THREE_LINES */]]).isRequired};/**\n * The SingleLineTile is used to represent one line of the list component. It\n * can display a main icon, some text and additional icons. The text displayed\n * can only use one line for the main text.\n */var Tile=function Tile(_ref5){var className=_ref5.className,kind=_ref5.kind,props=_objectWithoutProperties(_ref5,['className','kind']);var kindClassName=TILE__SINGLELINE__CLASS_NAMES;if(kind===__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"d\" /* TWO_LINES */]){kindClassName=TILE__TWOLINE__CLASS_NAMES;}else if(kind===__WEBPACK_IMPORTED_MODULE_6__ListConstants__[\"c\" /* THREE_LINES */]){kindClassName=TILE__THREELINE__CLASS_NAMES;}var tileClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TILE__CLASS_NAMES,kindClassName,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',Object.assign({className:tileClassNames},props));};Tile.propTypes=tilePropTypes;var LIST__CLASS_NAMES='list';var listPropTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array]),children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(Tile),__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.objectOf(Tile)])};var listDefaultProps={kind:''};/**\n * The List component is used to display a list of elements.\n *\n * Those elements can be separated by a line by using LIST_WITH_SEPARATOR__KIND\n * in the property kind. You can also add some highlight to the element over\n * which the mouse is located with LIST_WITH_HIGHLIGHT__KIND. Both properties\n * can be used at the same time.\n *\n * The List component can only have ListItem children.\n */var List=function List(_ref6){var children=_ref6.children,className=_ref6.className,kind=_ref6.kind,props=_objectWithoutProperties(_ref6,['children','className','kind']);var kinds=computeKinds(kind);var listClassNames=__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */].apply(undefined,[LIST__CLASS_NAMES].concat(_toConsumableArray(kinds),[className]));return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',Object.assign({className:listClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__[\"c\" /* S */],bottom:__WEBPACK_IMPORTED_MODULE_4__spacing_SpacingConstants__[\"c\" /* S */]},children));};List.propTypes=listPropTypes;List.defaultProps=listDefaultProps;/**\n * Computes the kind ot the link.\n * @param kind The kind (which can be an array or a string)\n * @return The computed kind\n */var computeKinds=function computeKinds(kind){var kinds=[];if(Array.isArray(kind)){kinds=kind;}else if(typeof kind==='string'){kinds.push(kind);}return kinds;};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(138);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = __webpack_require__(32);\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = __webpack_require__(33);\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = __webpack_require__(14);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = (0, _PathUtils.parsePath)(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexports.default = createTransitionManager;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__ = __webpack_require__(26);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__[\"a\" /* default */]);\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n  _inherits(Router, _React$Component);\n\n  function Router() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Router);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props.history.location.pathname)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Router.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        history: this.props.history,\n        route: {\n          location: this.props.history.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Router.prototype.computeMatch = function computeMatch(pathname) {\n    return {\n      path: '/',\n      url: '/',\n      params: {},\n      isExact: pathname === '/'\n    };\n  };\n\n  Router.prototype.componentWillMount = function componentWillMount() {\n    var _this2 = this;\n\n    var _props = this.props,\n        children = _props.children,\n        history = _props.history;\n\n\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(children == null || __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 1, 'A <Router> may have only one child element');\n\n    // Do this here so we can setState when a <Redirect> changes the\n    // location in componentWillMount. This happens e.g. when doing\n    // server rendering using a <StaticRouter>.\n    this.unlisten = history.listen(function () {\n      _this2.setState({\n        match: _this2.computeMatch(history.location.pathname)\n      });\n    });\n  };\n\n  Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(this.props.history === nextProps.history, 'You cannot change <Router history>');\n  };\n\n  Router.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.unlisten();\n  };\n\n  Router.prototype.render = function render() {\n    var children = this.props.children;\n\n    return children ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null;\n  };\n\n  return Router;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRouter.propTypes = {\n  history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n  children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node\n};\nRouter.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRouter.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Router);\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__);\n\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n  var cacheKey = '' + options.end + options.strict + options.sensitive;\n  var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n  if (cache[pattern]) return cache[pattern];\n\n  var keys = [];\n  var re = __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default()(pattern, keys, options);\n  var compiledPattern = { re: re, keys: keys };\n\n  if (cacheCount < cacheLimit) {\n    cache[pattern] = compiledPattern;\n    cacheCount++;\n  }\n\n  return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (typeof options === 'string') options = { path: options };\n\n  var _options = options,\n      _options$path = _options.path,\n      path = _options$path === undefined ? '/' : _options$path,\n      _options$exact = _options.exact,\n      exact = _options$exact === undefined ? false : _options$exact,\n      _options$strict = _options.strict,\n      strict = _options$strict === undefined ? false : _options$strict,\n      _options$sensitive = _options.sensitive,\n      sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n  var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n      re = _compilePath.re,\n      keys = _compilePath.keys;\n\n  var match = re.exec(pathname);\n\n  if (!match) return null;\n\n  var url = match[0],\n      values = match.slice(1);\n\n  var isExact = pathname === url;\n\n  if (exact && !isExact) return null;\n\n  return {\n    path: path, // the path pattern used to match\n    url: path === '/' && url === '' ? '/' : url, // the matched portion of the URL\n    isExact: isExact, // whether or not we matched exactly\n    params: keys.reduce(function (memo, key, index) {\n      memo[key.name] = values[index];\n      return memo;\n    }, {})\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (matchPath);\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (createTransitionManager);\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Button; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Button_css__ = __webpack_require__(115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Button_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__Button_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={kind:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf([__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"a\" /* BUTTON_DANGER__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"d\" /* BUTTON_SUCCESS__KIND */],__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"e\" /* BUTTON_WARNING__KIND */]]),loading:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool};var defaultProps={kind:__WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */]};var BUTTON__CLASS_NAMES='button';var BUTTON__LOADING__CLASS_NAMES='button--loading';var BUTTON_CONTAINER__CLASS_NAMES='button-container';var BUTTON_LOADINGINDICATOR__CLASS_NAMES='button-loadingindicator';var BUTTON_LABEL__CLASS_NAMES='button-label';/**\n * The button component.\n */var Button=function Button(_ref){var className=_ref.className,kind=_ref.kind,loading=_ref.loading,props=_objectWithoutProperties(_ref,['className','kind','loading']);var buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(BUTTON__CLASS_NAMES,className);if(loading){buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(buttonClassNames,BUTTON__LOADING__CLASS_NAMES);}else{var kindClassNames=getKindClassNames(kind);buttonClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(buttonClassNames,kindClassNames);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('button',Object.assign({className:buttonClassNames},props,{disabled:loading}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:BUTTON_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__loading_Loading__[\"a\" /* Loading */],{className:BUTTON_LOADINGINDICATOR__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],{className:BUTTON_LABEL__CLASS_NAMES,weight:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"j\" /* SEMI_BOLD */]},props.children))));};Button.propTypes=propTypes;Button.defaultProps=defaultProps;var BUTTON_DEFAULT_KIND__CLASS_NAMES='button--default';var BUTTON_PRIMARY_KIND__CLASS_NAMES='button--primary';var BUTTON_SUCCESS_KIND__CLASS_NAMES='button--success';var BUTTON_WARNING_KIND__CLASS_NAMES='button--warning';var BUTTON_DANGER_KIND__CLASS_NAMES='button--danger';/**\n * Computes the name of the kind class from the given kind.\n * @param kind The kind of the button\n * @returns The class names for the given kind\n */var getKindClassNames=function getKindClassNames(kind){var kindClassNames=void 0;switch(kind){case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"b\" /* BUTTON_DEFAULT__KIND */]:kindClassNames=BUTTON_DEFAULT_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */]:kindClassNames=BUTTON_PRIMARY_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"d\" /* BUTTON_SUCCESS__KIND */]:kindClassNames=BUTTON_SUCCESS_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"e\" /* BUTTON_WARNING__KIND */]:kindClassNames=BUTTON_WARNING_KIND__CLASS_NAMES;break;case __WEBPACK_IMPORTED_MODULE_8__ButtonConstants__[\"a\" /* BUTTON_DANGER__KIND */]:kindClassNames=BUTTON_DANGER_KIND__CLASS_NAMES;break;default:kindClassNames=BUTTON_DEFAULT_KIND__CLASS_NAMES;break;}return kindClassNames;};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar asap = __webpack_require__(48);\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n  try {\n    return obj.then;\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nfunction tryCallOne(fn, a) {\n  try {\n    return fn(a);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\nfunction tryCallTwo(fn, a, b) {\n  try {\n    fn(a, b);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n  if (typeof this !== 'object') {\n    throw new TypeError('Promises must be constructed via new');\n  }\n  if (typeof fn !== 'function') {\n    throw new TypeError('Promise constructor\\'s argument is not a function');\n  }\n  this._75 = 0;\n  this._83 = 0;\n  this._18 = null;\n  this._38 = null;\n  if (fn === noop) return;\n  doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  if (this.constructor !== Promise) {\n    return safeThen(this, onFulfilled, onRejected);\n  }\n  var res = new Promise(noop);\n  handle(this, new Handler(onFulfilled, onRejected, res));\n  return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n  return new self.constructor(function (resolve, reject) {\n    var res = new Promise(noop);\n    res.then(resolve, reject);\n    handle(self, new Handler(onFulfilled, onRejected, res));\n  });\n}\nfunction handle(self, deferred) {\n  while (self._83 === 3) {\n    self = self._18;\n  }\n  if (Promise._47) {\n    Promise._47(self);\n  }\n  if (self._83 === 0) {\n    if (self._75 === 0) {\n      self._75 = 1;\n      self._38 = deferred;\n      return;\n    }\n    if (self._75 === 1) {\n      self._75 = 2;\n      self._38 = [self._38, deferred];\n      return;\n    }\n    self._38.push(deferred);\n    return;\n  }\n  handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n  asap(function() {\n    var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      if (self._83 === 1) {\n        resolve(deferred.promise, self._18);\n      } else {\n        reject(deferred.promise, self._18);\n      }\n      return;\n    }\n    var ret = tryCallOne(cb, self._18);\n    if (ret === IS_ERROR) {\n      reject(deferred.promise, LAST_ERROR);\n    } else {\n      resolve(deferred.promise, ret);\n    }\n  });\n}\nfunction resolve(self, newValue) {\n  // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n  if (newValue === self) {\n    return reject(\n      self,\n      new TypeError('A promise cannot be resolved with itself.')\n    );\n  }\n  if (\n    newValue &&\n    (typeof newValue === 'object' || typeof newValue === 'function')\n  ) {\n    var then = getThen(newValue);\n    if (then === IS_ERROR) {\n      return reject(self, LAST_ERROR);\n    }\n    if (\n      then === self.then &&\n      newValue instanceof Promise\n    ) {\n      self._83 = 3;\n      self._18 = newValue;\n      finale(self);\n      return;\n    } else if (typeof then === 'function') {\n      doResolve(then.bind(newValue), self);\n      return;\n    }\n  }\n  self._83 = 1;\n  self._18 = newValue;\n  finale(self);\n}\n\nfunction reject(self, newValue) {\n  self._83 = 2;\n  self._18 = newValue;\n  if (Promise._71) {\n    Promise._71(self, newValue);\n  }\n  finale(self);\n}\nfunction finale(self) {\n  if (self._75 === 1) {\n    handle(self, self._38);\n    self._38 = null;\n  }\n  if (self._75 === 2) {\n    for (var i = 0; i < self._38.length; i++) {\n      handle(self, self._38[i]);\n    }\n    self._38 = null;\n  }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n  var done = false;\n  var res = tryCallTwo(fn, function (value) {\n    if (done) return;\n    done = true;\n    resolve(promise, value);\n  }, function (reason) {\n    if (done) return;\n    done = true;\n    reject(promise, reason);\n  });\n  if (!done && res === IS_ERROR) {\n    done = true;\n    reject(promise, LAST_ERROR);\n  }\n}\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar emptyObject = {};\n\nif (false) {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\nfunction isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (resolvePathname);\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (valueEqual);\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware <a>.\n */\n\nvar Link = function (_React$Component) {\n  _inherits(Link, _React$Component);\n\n  function Link() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Link);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n      if (_this.props.onClick) _this.props.onClick(event);\n\n      if (!event.defaultPrevented && // onClick prevented default\n      event.button === 0 && // ignore right clicks\n      !_this.props.target && // let browser handle \"target=_blank\" etc.\n      !isModifiedEvent(event) // ignore clicks with modifier keys\n      ) {\n          event.preventDefault();\n\n          var history = _this.context.router.history;\n          var _this$props = _this.props,\n              replace = _this$props.replace,\n              to = _this$props.to;\n\n\n          if (replace) {\n            history.replace(to);\n          } else {\n            history.push(to);\n          }\n        }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Link.prototype.render = function render() {\n    var _props = this.props,\n        replace = _props.replace,\n        to = _props.to,\n        innerRef = _props.innerRef,\n        props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars\n\n    __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Link> outside a <Router>');\n\n    var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);\n\n    return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n  };\n\n  return Link;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nLink.propTypes = {\n  onClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n  target: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired,\n  innerRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])\n};\nLink.defaultProps = {\n  replace: false\n};\nLink.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      createHref: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Link);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__ = __webpack_require__(37);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__[\"a\" /* default */]);\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(27);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n  return __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n  _inherits(Route, _React$Component);\n\n  function Route() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Route);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props, _this.context.router)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Route.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        route: {\n          location: this.props.location || this.context.router.route.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Route.prototype.computeMatch = function computeMatch(_ref, router) {\n    var computedMatch = _ref.computedMatch,\n        location = _ref.location,\n        path = _ref.path,\n        strict = _ref.strict,\n        exact = _ref.exact,\n        sensitive = _ref.sensitive;\n\n    if (computedMatch) return computedMatch; // <Switch> already computed the match for us\n\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(router, 'You should not use <Route> or withRouter() outside a <Router>');\n\n    var route = router.route;\n\n    var pathname = (location || route.location).pathname;\n\n    return path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }) : route.match;\n  };\n\n  Route.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.render), 'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored');\n  };\n\n  Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(nextProps.location && !this.props.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(!nextProps.location && this.props.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n    this.setState({\n      match: this.computeMatch(nextProps, nextContext.router)\n    });\n  };\n\n  Route.prototype.render = function render() {\n    var match = this.state.match;\n    var _props = this.props,\n        children = _props.children,\n        component = _props.component,\n        render = _props.render;\n    var _context$router = this.context.router,\n        history = _context$router.history,\n        route = _context$router.route,\n        staticContext = _context$router.staticContext;\n\n    var location = this.props.location || route.location;\n    var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n    return component ? // component prop gets first priority, only called if there's a match\n    match ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(component, props) : null : render ? // render prop is next, only called if there's a match\n    match ? render(props) : null : children ? // children come last, always called\n    typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null : null;\n  };\n\n  return Route;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRoute.propTypes = {\n  computedMatch: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, // private, from <Switch>\n  path: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n  exact: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  strict: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  sensitive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n  component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n  render: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n  children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),\n  location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRoute.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n    route: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n    staticContext: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n  })\n};\nRoute.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Route);\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return canUseDOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return addEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return removeEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return getConfirmation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return supportsHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return supportsPopStateOnHashChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return supportsGoWithoutReloadUsingHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return isExtraneousPopstateEvent; });\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DASHBOARD_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return HANDLE_FETCHED_DASHBOARD__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var DASHBOARD_LOADED__STATE='DASHBOARD_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_DASHBOARD__ACTION='HANDLE_FETCHED_DASHBOARD__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_DASHBOARD__ACTION:[DASHBOARD_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},DASHBOARD_LOADED__STATE:{},ERROR__STATE:{}};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return NO_PROJECTS_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return PROJECTS_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_FETCHED_PROJECTS__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var NO_PROJECTS_LOADED__STATE='NO_PROJECTS_LOADED__STATE';var PROJECTS_LOADED__STATE='PROJECTS_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_PROJECTS__ACTION='HANDLE_FETCHED_PROJECTS__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_PROJECTS__ACTION:[NO_PROJECTS_LOADED__STATE,PROJECTS_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},NO_PROJECTS_LOADED__STATE:{},PROJECTS_LOADED__STATE:{},ERROR__STATE:{}};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BUTTON_DEFAULT__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return BUTTON_PRIMARY__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return BUTTON_SUCCESS__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return BUTTON_WARNING__KIND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BUTTON_DANGER__KIND; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var BUTTON_DEFAULT__KIND='default';var BUTTON_PRIMARY__KIND='primary';var BUTTON_SUCCESS__KIND='success';var BUTTON_WARNING__KIND='warning';var BUTTON_DANGER__KIND='danger';\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return Form; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return Field; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return Label; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Description; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return TextField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ActionGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return ErrorGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Error; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Form_css__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Form_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Form_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var FORM__CLASS_NAMES='form';/**\n * The Form component.\n */var Form=function Form(_ref){var children=_ref.children,className=_ref.className,props=_objectWithoutProperties(_ref,['children','className']);var formClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(FORM__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('form',Object.assign({className:formClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var FIELD__CLASS_NAMES='field';/**\n * The Field component used to contain the label, the description and the widget.\n */var Field=function Field(_ref2){var children=_ref2.children,className=_ref2.className,props=_objectWithoutProperties(_ref2,['children','className']);var fieldClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(FIELD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:fieldClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var LABEL__CLASS_NAMES='label body-l';/**\n * The Label component.\n */var Label=function Label(_ref3){var className=_ref3.className,props=_objectWithoutProperties(_ref3,['className']);var labelClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(LABEL__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('label',Object.assign({className:labelClassNames},props)));};var DESCRIPTION__CLASS_NAMES='description caption-m';/**\n * The Description of the widget.\n */var Description=function Description(_ref4){var className=_ref4.className,props=_objectWithoutProperties(_ref4,['className']);var descriptionClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(DESCRIPTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',Object.assign({className:descriptionClassNames},props)));};var TEXTFIELD__CLASS_NAMES='textfield';/**\n * The Text widget.\n */var TextField=function TextField(_ref5){var className=_ref5.className,props=_objectWithoutProperties(_ref5,['className']);var textClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(TEXTFIELD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input',Object.assign({className:textClassNames,type:'text'},props));};var ACTION_GROUP__CLASS_NAMES='actiongroup';/**\n * The group of actions of the form, for example, the submit button.\n */var ActionGroup=function ActionGroup(_ref6){var children=_ref6.children,className=_ref6.className,props=_objectWithoutProperties(_ref6,['children','className']);var actionGroupClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ACTION_GROUP__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:actionGroupClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},children));};var ERROR_GROUP__CLASS_NAMES='errorgroup';/**\n * The group of errors of the form.\n */var ErrorGroup=function ErrorGroup(_ref7){var children=_ref7.children,className=_ref7.className,props=_objectWithoutProperties(_ref7,['children','className']);var errorGroupClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ERROR_GROUP__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:errorGroupClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},children));};var ERROR__CLASS_NAMES='error';/**\n * An error to be displayed in the form.\n */var Error=function Error(_ref8){var children=_ref8.children,className=_ref8.className,props=_objectWithoutProperties(_ref8,['children','className']);var errorClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ERROR__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:errorClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */]},children));};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return PRISTINE__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return MODIFIED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return REDIRECT__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return MODIFY_NAME__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return HANDLE_CREATED_PROJECT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var PRISTINE__STATE='PRISTINE__STATE';var MODIFIED__STATE='MODIFIED__STATE';var REDIRECT__STATE='REDIRECT__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var MODIFY_NAME__ACTION='MODIFY_NAME__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var HANDLE_CREATED_PROJECT__ACTION='HANDLE_CREATED_PROJECT__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[PRISTINE__STATE]},PRISTINE__STATE:{MODIFY_NAME__ACTION:[MODIFIED__STATE]},MODIFIED__STATE:{MODIFY_NAME__ACTION:[MODIFIED__STATE],HANDLE_ERROR__ACTION:[MODIFIED__STATE],HANDLE_CREATED_PROJECT__ACTION:[REDIRECT__STATE]},REDIRECT__STATE:{}};\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return LOADING__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ERROR__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return PROJECT_LOADED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return HANDLE_FETCHED_PROJECT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return HANDLE_FETCHED_PAGE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_DESCRIPTION_UPDATED__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_ERROR__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var LOADING__STATE='LOADING__STATE';var ERROR__STATE='ERROR__STATE';var PROJECT_LOADED__STATE='PROJECT_LOADED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_FETCHED_PROJECT__ACTION='HANDLE_FETCHED_PROJECT__ACTION';var HANDLE_FETCHED_PAGE__ACTION='HANDLE_FETCHED_PAGE__ACTION';var HANDLE_DESCRIPTION_UPDATED__ACTION='HANDLE_DESCRIPTION_UPDATED__ACTION';var HANDLE_ERROR__ACTION='HANDLE_ERROR__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[LOADING__STATE]},LOADING__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[PROJECT_LOADED__STATE],HANDLE_ERROR__ACTION:[ERROR__STATE]},PROJECT_LOADED__STATE:{HANDLE_FETCHED_PROJECT__ACTION:[PROJECT_LOADED__STATE],HANDLE_FETCHED_PAGE__ACTION:[PROJECT_LOADED__STATE],HANDLE_DESCRIPTION_UPDATED__ACTION:[PROJECT_LOADED__STATE]},ERROR__STATE:{}};\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(46);\nmodule.exports = __webpack_require__(52);\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n\n\nif (typeof Promise === 'undefined') {\n  // Rejection tracking prevents a common issue where React gets into an\n  // inconsistent state due to an error, but it gets swallowed by a Promise,\n  // and the user has no idea what causes React's erratic future behavior.\n  __webpack_require__(47).enable();\n  window.Promise = __webpack_require__(50);\n}\n\n// fetch() polyfill for making API calls.\n__webpack_require__(51);\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = __webpack_require__(22);\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (false) {\n  require('raf').polyfill(global);\n}\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Promise = __webpack_require__(30);\n\nvar DEFAULT_WHITELIST = [\n  ReferenceError,\n  TypeError,\n  RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n  enabled = false;\n  Promise._47 = null;\n  Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n  options = options || {};\n  if (enabled) disable();\n  enabled = true;\n  var id = 0;\n  var displayId = 0;\n  var rejections = {};\n  Promise._47 = function (promise) {\n    if (\n      promise._83 === 2 && // IS REJECTED\n      rejections[promise._56]\n    ) {\n      if (rejections[promise._56].logged) {\n        onHandled(promise._56);\n      } else {\n        clearTimeout(rejections[promise._56].timeout);\n      }\n      delete rejections[promise._56];\n    }\n  };\n  Promise._71 = function (promise, err) {\n    if (promise._75 === 0) { // not yet handled\n      promise._56 = id++;\n      rejections[promise._56] = {\n        displayId: null,\n        error: err,\n        timeout: setTimeout(\n          onUnhandled.bind(null, promise._56),\n          // For reference errors and type errors, this almost always\n          // means the programmer made a mistake, so log them after just\n          // 100ms\n          // otherwise, wait 2 seconds to see if they get handled\n          matchWhitelist(err, DEFAULT_WHITELIST)\n            ? 100\n            : 2000\n        ),\n        logged: false\n      };\n    }\n  };\n  function onUnhandled(id) {\n    if (\n      options.allRejections ||\n      matchWhitelist(\n        rejections[id].error,\n        options.whitelist || DEFAULT_WHITELIST\n      )\n    ) {\n      rejections[id].displayId = displayId++;\n      if (options.onUnhandled) {\n        rejections[id].logged = true;\n        options.onUnhandled(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      } else {\n        rejections[id].logged = true;\n        logError(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      }\n    }\n  }\n  function onHandled(id) {\n    if (rejections[id].logged) {\n      if (options.onHandled) {\n        options.onHandled(rejections[id].displayId, rejections[id].error);\n      } else if (!rejections[id].onUnhandled) {\n        console.warn(\n          'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n        );\n        console.warn(\n          '  This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n          rejections[id].displayId + '.'\n        );\n      }\n    }\n  }\n}\n\nfunction logError(id, error) {\n  console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n  var errStr = (error && (error.stack || error)) + '';\n  errStr.split('\\n').forEach(function (line) {\n    console.warn('  ' + line);\n  });\n}\n\nfunction matchWhitelist(error, list) {\n  return list.some(function (cls) {\n    return error instanceof cls;\n  });\n}\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n    if (!queue.length) {\n        requestFlush();\n        flushing = true;\n    }\n    // Equivalent to push, but avoids a function call.\n    queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n    while (index < queue.length) {\n        var currentIndex = index;\n        // Advance the index before calling the task. This ensures that we will\n        // begin flushing on the next task the task throws an error.\n        index = index + 1;\n        queue[currentIndex].call();\n        // Prevent leaking memory for long chains of recursive calls to `asap`.\n        // If we call `asap` within tasks scheduled by `asap`, the queue will\n        // grow, but to avoid an O(n) walk for every task we execute, we don't\n        // shift tasks off the queue after they have been executed.\n        // Instead, we periodically shift 1024 tasks off the queue.\n        if (index > capacity) {\n            // Manually shift all values starting at the index back to the\n            // beginning of the queue.\n            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n                queue[scan] = queue[scan + index];\n            }\n            queue.length -= index;\n            index = 0;\n        }\n    }\n    queue.length = 0;\n    index = 0;\n    flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n    requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n    requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n    var toggle = 1;\n    var observer = new BrowserMutationObserver(callback);\n    var node = document.createTextNode(\"\");\n    observer.observe(node, {characterData: true});\n    return function requestCall() {\n        toggle = -toggle;\n        node.data = toggle;\n    };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n    return function requestCall() {\n        // We dispatch a timeout with a specified delay of 0 for engines that\n        // can reliably accommodate that request. This will usually be snapped\n        // to a 4 milisecond delay, but once we're flushing, there's no delay\n        // between events.\n        var timeoutHandle = setTimeout(handleTimer, 0);\n        // However, since this timer gets frequently dropped in Firefox\n        // workers, we enlist an interval handle that will try to fire\n        // an event 20 times per second until it succeeds.\n        var intervalHandle = setInterval(handleTimer, 50);\n\n        function handleTimer() {\n            // Whichever timer succeeds will cancel both timers and\n            // execute the callback.\n            clearTimeout(timeoutHandle);\n            clearInterval(intervalHandle);\n            callback();\n        }\n    };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(49)))\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = __webpack_require__(30);\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n  var p = new Promise(Promise._44);\n  p._83 = 1;\n  p._18 = value;\n  return p;\n}\nPromise.resolve = function (value) {\n  if (value instanceof Promise) return value;\n\n  if (value === null) return NULL;\n  if (value === undefined) return UNDEFINED;\n  if (value === true) return TRUE;\n  if (value === false) return FALSE;\n  if (value === 0) return ZERO;\n  if (value === '') return EMPTYSTRING;\n\n  if (typeof value === 'object' || typeof value === 'function') {\n    try {\n      var then = value.then;\n      if (typeof then === 'function') {\n        return new Promise(then.bind(value));\n      }\n    } catch (ex) {\n      return new Promise(function (resolve, reject) {\n        reject(ex);\n      });\n    }\n  }\n  return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n    function res(i, val) {\n      if (val && (typeof val === 'object' || typeof val === 'function')) {\n        if (val instanceof Promise && val.then === Promise.prototype.then) {\n          while (val._83 === 3) {\n            val = val._18;\n          }\n          if (val._83 === 1) return res(i, val._18);\n          if (val._83 === 2) reject(val._18);\n          val.then(function (val) {\n            res(i, val);\n          }, reject);\n          return;\n        } else {\n          var then = val.then;\n          if (typeof then === 'function') {\n            var p = new Promise(then.bind(val));\n            p.then(function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n      }\n      args[i] = val;\n      if (--remaining === 0) {\n        resolve(args);\n      }\n    }\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    values.forEach(function(value){\n      Promise.resolve(value).then(resolve, reject);\n    });\n  });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = 'status' in options ? options.status : 200\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_app_App__ = __webpack_require__(93);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reset_css__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reset_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__reset_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__app_css__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__app_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__app_css__);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The entry point of the application.\n */__WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"a\" /* BrowserRouter */],{basename:\"\"||''},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__components_app_App__[\"a\" /* App */],null)),document.getElementById('root'));\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar m=__webpack_require__(22),n=__webpack_require__(31),p=__webpack_require__(18),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;c<b;c++)e+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[c+1]);b=Error(e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}\nvar z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};function A(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}A.prototype.isReactComponent={};A.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?y(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};A.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction B(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}function C(){}C.prototype=A.prototype;var D=B.prototype=new C;D.constructor=B;m(D,A.prototype);D.isPureReactComponent=!0;function E(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}var F=E.prototype=new C;F.constructor=E;m(F,A.prototype);F.unstable_isAsyncReactComponent=!0;F.render=function(){return this.props.children};var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,e){var c,d={},g=null,k=null;if(null!=b)for(c in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)H.call(b,c)&&!I.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var h=Array(f),l=0;l<f;l++)h[l]=arguments[l+2];d.children=h}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:k,props:d,_owner:G.current}}function K(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===r}\nfunction escape(a){var b={\"\\x3d\":\"\\x3d0\",\":\":\"\\x3d2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var L=/\\/+/g,M=[];function N(a,b,e,c){if(M.length){var d=M.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function O(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>M.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+Q(d,k);g+=P(d,f,e,c)}else if(null===a||\"undefined\"===typeof a?f=null:(f=x&&a[x]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=\nf.call(a),k=0;!(d=a.next()).done;)d=d.value,f=b+Q(d,k++),g+=P(d,f,e,c);else\"object\"===d&&(e=\"\"+a,y(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function R(a,b){a.func.call(a.context,b,a.count++)}\nfunction S(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?T(a,c,e,p.thatReturnsArgument):null!=a&&(K(a)&&(b=d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(L,\"$\\x26/\")+\"/\")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function T(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(L,\"$\\x26/\")+\"/\");b=N(b,g,c,d);null==a||P(a,\"\",S,b);O(b)}\nvar U={Children:{map:function(a,b,e){if(null==a)return a;var c=[];T(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=N(null,null,b,e);null==a||P(a,\"\",R,b);O(b)},count:function(a){return null==a?0:P(a,\"\",p.thatReturnsNull,null)},toArray:function(a){var b=[];T(a,b,null,p.thatReturnsArgument);return b},only:function(a){K(a)?void 0:y(\"143\");return a}},Component:A,PureComponent:B,unstable_AsyncComponent:E,Fragment:w,createElement:J,cloneElement:function(a,b,e){var c=m({},a.props),\nd=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)H.call(b,h)&&!I.hasOwnProperty(h)&&(c[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)c.children=e;else if(1<h){f=Array(h);for(var l=0;l<h;l++)f[l]=arguments[l+2];c.children=f}return{$$typeof:r,type:a.type,key:d,ref:g,props:c,_owner:k}},createFactory:function(a){var b=J.bind(null,a);b.type=a;return b},\nisValidElement:K,version:\"16.2.0\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:G,assign:m}},V=Object.freeze({default:U}),W=V&&U||V;module.exports=W[\"default\"]?W[\"default\"]:W;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (false) {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (true) {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = __webpack_require__(55);\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.2.0\n * react-dom.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\nvar aa=__webpack_require__(0),l=__webpack_require__(56),B=__webpack_require__(22),C=__webpack_require__(18),ba=__webpack_require__(57),da=__webpack_require__(58),ea=__webpack_require__(59),fa=__webpack_require__(60),ia=__webpack_require__(63),D=__webpack_require__(31);\nfunction E(a){for(var b=arguments.length-1,c=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,d=0;d<b;d++)c+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[d+1]);b=Error(c+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}aa?void 0:E(\"227\");\nvar oa={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0};function pa(a,b){return(a&b)===b}\nvar ta={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=ta,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ua.hasOwnProperty(f)?E(\"48\",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:pa(h,b.MUST_USE_PROPERTY),\nhasBooleanValue:pa(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:pa(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:pa(h,b.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:pa(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:pa(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2<a.length&&(\"o\"===a[0]||\"O\"===a[0])&&(\"n\"===a[1]||\"N\"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case \"boolean\":return oa.hasOwnProperty(a)?a=!0:(b=wa(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a=\"data-\"===a||\"aria-\"===a),a;case \"undefined\":case \"number\":case \"string\":case \"object\":return!0;default:return!1}}function wa(a){return ua.hasOwnProperty(a)?ua[a]:null}\nvar xa=ta,ya=xa.MUST_USE_PROPERTY,K=xa.HAS_BOOLEAN_VALUE,za=xa.HAS_NUMERIC_VALUE,Aa=xa.HAS_POSITIVE_NUMERIC_VALUE,Ba=xa.HAS_OVERLOADED_BOOLEAN_VALUE,Ca=xa.HAS_STRING_BOOLEAN_VALUE,Da={Properties:{allowFullScreen:K,async:K,autoFocus:K,autoPlay:K,capture:Ba,checked:ya|K,cols:Aa,contentEditable:Ca,controls:K,\"default\":K,defer:K,disabled:K,download:Ba,draggable:Ca,formNoValidate:K,hidden:K,loop:K,multiple:ya|K,muted:ya|K,noValidate:K,open:K,playsInline:K,readOnly:K,required:K,reversed:K,rows:Aa,rowSpan:za,\nscoped:K,seamless:K,selected:ya|K,size:Aa,start:za,span:Aa,spellCheck:Ca,style:0,tabIndex:0,itemScope:K,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ca},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute(\"value\");\"number\"!==a.type||!1===a.hasAttribute(\"value\")?a.setAttribute(\"value\",\"\"+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&\na.setAttribute(\"value\",\"\"+b)}}},Ea=xa.HAS_STRING_BOOLEAN_VALUE,M={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},Ga={Properties:{autoReverse:Ea,externalResourcesRequired:Ea,preserveAlpha:Ea},DOMAttributeNames:{autoReverse:\"autoReverse\",externalResourcesRequired:\"externalResourcesRequired\",preserveAlpha:\"preserveAlpha\"},DOMAttributeNamespaces:{xlinkActuate:M.xlink,xlinkArcrole:M.xlink,xlinkHref:M.xlink,xlinkRole:M.xlink,xlinkShow:M.xlink,xlinkTitle:M.xlink,xlinkType:M.xlink,\nxmlBase:M.xml,xmlLang:M.xml,xmlSpace:M.xml}},Ha=/[\\-\\:]([a-z])/g;function Ia(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space\".split(\" \").forEach(function(a){var b=a.replace(Ha,\nIa);Ga.Properties[b]=0;Ga.DOMAttributeNames[b]=a});xa.injectDOMPropertyConfig(Da);xa.injectDOMPropertyConfig(Ga);\nvar P={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){\"function\"!==typeof a.invokeGuardedCallback?E(\"197\"):void 0;Ja=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Ja.apply(P,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){P.invokeGuardedCallback.apply(this,arguments);if(P.hasCaughtError()){var q=P.clearCaughtError();P._hasRethrowError||(P._hasRethrowError=!0,P._rethrowError=\nq)}},rethrowCaughtError:function(){return Ka.apply(P,arguments)},hasCaughtError:function(){return P._hasCaughtError},clearCaughtError:function(){if(P._hasCaughtError){var a=P._caughtError;P._caughtError=null;P._hasCaughtError=!1;return a}E(\"198\")}};function Ja(a,b,c,d,e,f,g,h,k){P._hasCaughtError=!1;P._caughtError=null;var q=Array.prototype.slice.call(arguments,3);try{b.apply(c,q)}catch(v){P._caughtError=v,P._hasCaughtError=!0}}\nfunction Ka(){if(P._hasRethrowError){var a=P._rethrowError;P._rethrowError=null;P._hasRethrowError=!1;throw a;}}var La=null,Ma={};\nfunction Na(){if(La)for(var a in Ma){var b=Ma[a],c=La.indexOf(a);-1<c?void 0:E(\"96\",a);if(!Oa[c]){b.extractEvents?void 0:E(\"97\",a);Oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Pa.hasOwnProperty(h)?E(\"99\",h):void 0;Pa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&Qa(k[e],g,h);e=!0}else f.registrationName?(Qa(f.registrationName,g,h),e=!0):e=!1;e?void 0:E(\"98\",d,a)}}}}\nfunction Qa(a,b,c){Ra[a]?E(\"100\",a):void 0;Ra[a]=b;Sa[a]=b.eventTypes[c].dependencies}var Oa=[],Pa={},Ra={},Sa={};function Ta(a){La?E(\"101\"):void 0;La=Array.prototype.slice.call(a);Na()}function Ua(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];Ma.hasOwnProperty(c)&&Ma[c]===d||(Ma[c]?E(\"102\",c):void 0,Ma[c]=d,b=!0)}b&&Na()}\nvar Va=Object.freeze({plugins:Oa,eventNameDispatchConfigs:Pa,registrationNameModules:Ra,registrationNameDependencies:Sa,possibleRegistrationNames:null,injectEventPluginOrder:Ta,injectEventPluginsByName:Ua}),Wa=null,Xa=null,Ya=null;function Za(a,b,c,d){b=a.type||\"unknown-event\";a.currentTarget=Ya(d);P.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}\nfunction $a(a,b){null==b?E(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function ab(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var bb=null;\nfunction cb(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Za(a,b,c[e],d[e]);else c&&Za(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function db(a){return cb(a,!0)}function gb(a){return cb(a,!1)}var hb={injectEventPluginOrder:Ta,injectEventPluginsByName:Ua};\nfunction ib(a,b){var c=a.stateNode;if(!c)return null;var d=Wa(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?E(\"231\",b,typeof c):void 0;\nreturn c}function jb(a,b,c,d){for(var e,f=0;f<Oa.length;f++){var g=Oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=$a(e,g))}return e}function kb(a){a&&(bb=$a(bb,a))}function lb(a){var b=bb;bb=null;b&&(a?ab(b,db):ab(b,gb),bb?E(\"95\"):void 0,P.rethrowCaughtError())}var mb=Object.freeze({injection:hb,getListener:ib,extractEvents:jb,enqueueEvents:kb,processEventQueue:lb}),nb=Math.random().toString(36).slice(2),Q=\"__reactInternalInstance$\"+nb,ob=\"__reactEventHandlers$\"+nb;\nfunction pb(a){if(a[Q])return a[Q];for(var b=[];!a[Q];)if(b.push(a),a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[Q];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[Q]);a=b.pop())c=d;return c}function qb(a){if(5===a.tag||6===a.tag)return a.stateNode;E(\"33\")}function rb(a){return a[ob]||null}\nvar sb=Object.freeze({precacheFiberNode:function(a,b){b[Q]=a},getClosestInstanceFromNode:pb,getInstanceFromNode:function(a){a=a[Q];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:qb,getFiberCurrentPropsFromNode:rb,updateFiberProps:function(a,b){a[ob]=b}});function tb(a){do a=a[\"return\"];while(a&&5!==a.tag);return a?a:null}function ub(a,b,c){for(var d=[];a;)d.push(a),a=tb(a);for(a=d.length;0<a--;)b(d[a],\"captured\",c);for(a=0;a<d.length;a++)b(d[a],\"bubbled\",c)}\nfunction vb(a,b,c){if(b=ib(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a)}function wb(a){a&&a.dispatchConfig.phasedRegistrationNames&&ub(a._targetInst,vb,a)}function xb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?tb(b):null;ub(b,vb,a)}}\nfunction yb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=ib(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a))}function zb(a){a&&a.dispatchConfig.registrationName&&yb(a._targetInst,null,a)}function Ab(a){ab(a,wb)}\nfunction Bb(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=tb(h))g++;h=0;for(var k=f;k;k=tb(k))h++;for(;0<g-h;)e=tb(e),g--;for(;0<h-g;)f=tb(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=tb(e);f=tb(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=tb(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=tb(d)}for(d=0;d<e.length;d++)yb(e[d],\"bubbled\",a);for(a=c.length;0<a--;)yb(c[a],\"captured\",b)}\nvar Cb=Object.freeze({accumulateTwoPhaseDispatches:Ab,accumulateTwoPhaseDispatchesSkipTarget:function(a){ab(a,xb)},accumulateEnterLeaveDispatches:Bb,accumulateDirectDispatches:function(a){ab(a,zb)}}),Db=null;function Eb(){!Db&&l.canUseDOM&&(Db=\"textContent\"in document.documentElement?\"textContent\":\"innerText\");return Db}var S={_root:null,_startText:null,_fallbackText:null};\nfunction Fb(){if(S._fallbackText)return S._fallbackText;var a,b=S._startText,c=b.length,d,e=Gb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);S._fallbackText=e.slice(a,1<d?1-d:void 0);return S._fallbackText}function Gb(){return\"value\"in S._root?S._root.value:S._root[Eb()]}\nvar Hb=\"dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances\".split(\" \"),Ib={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nfunction T(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?C.thatReturnsTrue:C.thatReturnsFalse;this.isPropagationStopped=C.thatReturnsFalse;return this}\nB(T.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,\ndestructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Hb.length;a++)this[Hb[a]]=null}});T.Interface=Ib;T.augmentClass=function(a,b){function c(){}c.prototype=this.prototype;var d=new c;B(d,a.prototype);a.prototype=d;a.prototype.constructor=a;a.Interface=B({},this.Interface,b);a.augmentClass=this.augmentClass;Jb(a)};Jb(T);function Kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction Lb(a){a instanceof this?void 0:E(\"223\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8<Wb&&11>=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"topCompositionEnd\":return $b?null:b.data;default:return null}}\nvar ic={eventTypes:bc,extractEvents:function(a,b,c,d){var e;if(Vb)b:{switch(a){case \"topCompositionStart\":var f=bc.compositionStart;break b;case \"topCompositionEnd\":f=bc.compositionEnd;break b;case \"topCompositionUpdate\":f=bc.compositionUpdate;break b}f=void 0}else fc?dc(a,c)&&(f=bc.compositionEnd):\"topKeyDown\"===a&&229===c.keyCode&&(f=bc.compositionStart);f?($b&&(fc||f!==bc.compositionStart?f===bc.compositionEnd&&fc&&(e=Fb()):(S._root=d,S._startText=Gb(),fc=!0)),f=Mb.getPooled(f,b,c,d),e?f.data=\ne:(e=ec(c),null!==e&&(f.data=e)),Ab(f),e=f):e=null;(a=Zb?gc(a,c):hc(a,c))?(b=Nb.getPooled(bc.beforeInput,b,c,d),b.data=a,Ab(b)):b=null;return[e,b]}},jc=null,kc=null,lc=null;function mc(a){if(a=Xa(a)){jc&&\"function\"===typeof jc.restoreControlledState?void 0:E(\"194\");var b=Wa(a.stateNode);jc.restoreControlledState(a.stateNode,a.type,b)}}var nc={injectFiberControlledHostComponent:function(a){jc=a}};function oc(a){kc?lc?lc.push(a):lc=[a]:kc=a}\nfunction pc(){if(kc){var a=kc,b=lc;lc=kc=null;mc(a);if(b)for(a=0;a<b.length;a++)mc(b[a])}}var qc=Object.freeze({injection:nc,enqueueStateRestore:oc,restoreStateIfNeeded:pc});function rc(a,b){return a(b)}var sc=!1;function tc(a,b){if(sc)return rc(a,b);sc=!0;try{return rc(a,b)}finally{sc=!1,pc()}}var uc={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};\nfunction vc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!uc[a.type]:\"textarea\"===b?!0:!1}function wc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xc;l.canUseDOM&&(xc=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\"));\nfunction yc(a,b){if(!l.canUseDOM||b&&!(\"addEventListener\"in document))return!1;b=\"on\"+a;var c=b in document;c||(c=document.createElement(\"div\"),c.setAttribute(b,\"return;\"),c=\"function\"===typeof c[b]);!c&&xc&&\"wheel\"===a&&(c=document.implementation.hasFeature(\"Events.wheel\",\"3.0\"));return c}function zc(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ac(a){var b=zc(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"function\"===typeof c.get&&\"function\"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=\"\"+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}\nfunction Bc(a){a._valueTracker||(a._valueTracker=Ac(a))}function Cc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=zc(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}var Dc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange\".split(\" \")}};\nfunction Ec(a,b,c){a=T.getPooled(Dc.change,a,b,c);a.type=\"change\";oc(c);Ab(a);return a}var Fc=null,Gc=null;function Hc(a){kb(a);lb(!1)}function Ic(a){var b=qb(a);if(Cc(b))return a}function Jc(a,b){if(\"topChange\"===a)return b}var Kc=!1;l.canUseDOM&&(Kc=yc(\"input\")&&(!document.documentMode||9<document.documentMode));function Lc(){Fc&&(Fc.detachEvent(\"onpropertychange\",Mc),Gc=Fc=null)}function Mc(a){\"value\"===a.propertyName&&Ic(Gc)&&(a=Ec(Gc,a,wc(a)),tc(Hc,a))}\nfunction Nc(a,b,c){\"topFocus\"===a?(Lc(),Fc=b,Gc=c,Fc.attachEvent(\"onpropertychange\",Mc)):\"topBlur\"===a&&Lc()}function Oc(a){if(\"topSelectionChange\"===a||\"topKeyUp\"===a||\"topKeyDown\"===a)return Ic(Gc)}function Pc(a,b){if(\"topClick\"===a)return Ic(b)}function $c(a,b){if(\"topInput\"===a||\"topChange\"===a)return Ic(b)}\nvar ad={eventTypes:Dc,_isInputEventSupported:Kc,extractEvents:function(a,b,c,d){var e=b?qb(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Jc;else if(vc(e))if(Kc)g=$c;else{g=Oc;var h=Nc}else f=e.nodeName,!f||\"input\"!==f.toLowerCase()||\"checkbox\"!==e.type&&\"radio\"!==e.type||(g=Pc);if(g&&(g=g(a,b)))return Ec(g,c,d);h&&h(a,e,b);\"topBlur\"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&\"number\"===e.type&&(a=\"\"+e.value,e.getAttribute(\"value\")!==\na&&e.setAttribute(\"value\",a))}};function bd(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(bd,{view:null,detail:null});var cd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}function fd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(fd,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});\nvar gd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},hd={eventTypes:gd,extractEvents:function(a,b,c,d){if(\"topMouseOver\"===a&&(c.relatedTarget||c.fromElement)||\"topMouseOut\"!==a&&\"topMouseOver\"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;\"topMouseOut\"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?pb(b):null):a=null;if(a===\nb)return null;var f=null==a?e:qb(a);e=null==b?e:qb(b);var g=fd.getPooled(gd.mouseLeave,a,c,d);g.type=\"mouseleave\";g.target=f;g.relatedTarget=e;c=fd.getPooled(gd.mouseEnter,b,c,d);c.type=\"mouseenter\";c.target=e;c.relatedTarget=f;Bb(g,c,a,b);return[g,c]}},id=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;function jd(a){a=a.type;return\"string\"===typeof a?a:\"function\"===typeof a?a.displayName||a.name:null}\nfunction kd(a){var b=a;if(a.alternate)for(;b[\"return\"];)b=b[\"return\"];else{if(0!==(b.effectTag&2))return 1;for(;b[\"return\"];)if(b=b[\"return\"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){return(a=a._reactInternalFiber)?2===kd(a):!1}function md(a){2!==kd(a)?E(\"188\"):void 0}\nfunction nd(a){var b=a.alternate;if(!b)return b=kd(a),3===b?E(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c[\"return\"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return md(e),a;if(g===d)return md(e),b;g=g.sibling}E(\"188\")}if(c[\"return\"]!==d[\"return\"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:E(\"189\")}}c.alternate!==d?E(\"190\"):void 0}3!==c.tag?E(\"188\"):void 0;return c.stateNode.current===c?a:b}function od(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}\nfunction pd(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}var qd=[];\nfunction rd(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c[\"return\"];)c=c[\"return\"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);b=pb(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],sd(a.topLevelType,b,a.nativeEvent,wc(a.nativeEvent))}var td=!0,sd=void 0;function ud(a){td=!!a}function U(a,b,c){return c?ba.listen(c,b,vd.bind(null,a)):null}function wd(a,b,c){return c?ba.capture(c,b,vd.bind(null,a)):null}\nfunction vd(a,b){if(td){var c=wc(b);c=pb(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(qd.length){var d=qd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{tc(rd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?qb(b):window;switch(a){case \"topFocus\":if(vc(e)||\"true\"===e.contentEditable)Nd=e,Od=b,Pd=null;break;case \"topBlur\":Pd=Od=Nd=null;break;case \"topMouseDown\":Qd=!0;break;case \"topContextMenu\":case \"topMouseUp\":return Qd=!1,Rd(c,d);case \"topSelectionChange\":if(Ld)break;\ncase \"topKeyDown\":case \"topKeyUp\":return Rd(c,d)}return null}};function Td(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});function Ud(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Ud,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}});function Vd(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(Vd,{relatedTarget:null});\nfunction Wd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}\nvar Xd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Yd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};function Zd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(Zd,{key:function(a){if(a.key){var b=Xd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=Wd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Yd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ed,charCode:function(a){return\"keypress\"===a.type?Wd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?Wd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}});function $d(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass($d,{dataTransfer:null});function ae(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(ae,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ed});function be(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(be,{propertyName:null,elapsedTime:null,pseudoElement:null});\nfunction ce(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass(ce,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null});var de={},ee={};\n\"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel\".split(\" \").forEach(function(a){var b=a[0].toUpperCase()+\na.slice(1),c=\"on\"+b;b=\"top\"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+\"Capture\"},dependencies:[b]};de[a]=c;ee[b]=c});\nvar fe={eventTypes:de,extractEvents:function(a,b,c,d){var e=ee[a];if(!e)return null;switch(a){case \"topKeyPress\":if(0===Wd(c))return null;case \"topKeyDown\":case \"topKeyUp\":a=Zd;break;case \"topBlur\":case \"topFocus\":a=Vd;break;case \"topClick\":if(2===c.button)return null;case \"topDoubleClick\":case \"topMouseDown\":case \"topMouseMove\":case \"topMouseUp\":case \"topMouseOut\":case \"topMouseOver\":case \"topContextMenu\":a=fd;break;case \"topDrag\":case \"topDragEnd\":case \"topDragEnter\":case \"topDragExit\":case \"topDragLeave\":case \"topDragOver\":case \"topDragStart\":case \"topDrop\":a=\n$d;break;case \"topTouchCancel\":case \"topTouchEnd\":case \"topTouchMove\":case \"topTouchStart\":a=ae;break;case \"topAnimationEnd\":case \"topAnimationIteration\":case \"topAnimationStart\":a=Td;break;case \"topTransitionEnd\":a=be;break;case \"topScroll\":a=bd;break;case \"topWheel\":a=ce;break;case \"topCopy\":case \"topCut\":case \"topPaste\":a=Ud;break;default:a=T}b=a.getPooled(e,b,c,d);Ab(b);return b}};sd=function(a,b,c,d){a=jb(a,b,c,d);kb(a);lb(!1)};hb.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nWa=sb.getFiberCurrentPropsFromNode;Xa=sb.getInstanceFromNode;Ya=sb.getNodeFromInstance;hb.injectEventPluginsByName({SimpleEventPlugin:fe,EnterLeaveEventPlugin:hd,ChangeEventPlugin:ad,SelectEventPlugin:Sd,BeforeInputEventPlugin:ic});var ge=[],he=-1;function V(a){0>he||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;\"function\"!==typeof e?E(\"191\",e):void 0;e.call(b)}}\nfunction Le(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:ld,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,g)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});\na(c,g)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);He(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=ke(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?me(a,d):D;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,\nb){var c=a.alternate,d=a.stateNode,e=d.state||null,g=a.pendingProps;g?void 0:E(\"158\");var h=ke(a);d.props=g;d.state=a.memoizedState=e;d.refs=D;d.context=me(a,h);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);\"function\"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,null!==e&&(d.state=Je(c,a,e,d,g,b)));\"function\"===typeof d.componentDidMount&&(a.effectTag|=\n4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?E(\"159\"):void 0);var u=g.context,z=ke(b);z=me(b,z);\"function\"!==typeof g.componentWillReceiveProps||h===k&&u===z||(u=g.state,g.componentWillReceiveProps(k,z),g.state!==u&&f.enqueueReplaceState(g,g.state,null));u=b.memoizedState;e=null!==b.updateQueue?Je(a,b,b.updateQueue,g,k,e):u;if(!(h!==k||u!==e||X.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return\"function\"!==\ntypeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),!1;var G=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)G=!0;else{var I=b.stateNode,L=b.type;G=\"function\"===typeof I.shouldComponentUpdate?I.shouldComponentUpdate(G,e,z):L.prototype&&L.prototype.isPureReactComponent?!ea(h,G)||!ea(u,e):!0}G?(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(k,e,z),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4)):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=z;return G}}}var Qe=\"function\"===typeof Symbol&&Symbol[\"for\"],Re=Qe?Symbol[\"for\"](\"react.element\"):60103,Se=Qe?Symbol[\"for\"](\"react.call\"):60104,Te=Qe?Symbol[\"for\"](\"react.return\"):60105,Ue=Qe?Symbol[\"for\"](\"react.portal\"):60106,Ve=Qe?Symbol[\"for\"](\"react.fragment\"):60107,We=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction Xe(a){if(null===a||\"undefined\"===typeof a)return null;a=We&&a[We]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ye=Array.isArray;\nfunction Ze(a,b){var c=b.ref;if(null!==c&&\"function\"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?E(\"110\"):void 0,d=b.stateNode);d?void 0:E(\"147\",c);var e=\"\"+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===D?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}\"string\"!==typeof c?E(\"148\"):void 0;b._owner?void 0:E(\"149\",c)}return c}\nfunction $e(a,b){\"textarea\"!==a.type&&E(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction af(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=se(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=ve(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Ze(b,c),d[\"return\"]=a,d;d=te(c,a.internalContextTag,d);d.ref=Ze(b,c);d[\"return\"]=a;return d}function q(a,b,c,d){if(null===b||7!==b.tag)return b=we(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);\nb[\"return\"]=a;return b}function v(a,b,c,d){if(null===b||9!==b.tag)return b=xe(c,a.internalContextTag,d),b.type=c.value,b[\"return\"]=a,b;b=e(b,null,d);b.type=c.value;b[\"return\"]=a;return b}function y(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ye(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c.children||[],d);b[\"return\"]=a;return b}function u(a,b,c,d,f){if(null===b||10!==b.tag)return b=ue(c,a.internalContextTag,\nd,f),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function z(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=ve(\"\"+b,a.internalContextTag,c),b[\"return\"]=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Re:if(b.type===Ve)return b=ue(b.props.children,a.internalContextTag,c,b.key),b[\"return\"]=a,b;c=te(b,a.internalContextTag,c);c.ref=Ze(null,b);c[\"return\"]=a;return c;case Se:return b=we(b,a.internalContextTag,c),b[\"return\"]=a,b;case Te:return c=xe(b,a.internalContextTag,\nc),c.type=b.value,c[\"return\"]=a,c;case Ue:return b=ye(b,a.internalContextTag,c),b[\"return\"]=a,b}if(Ye(b)||Xe(b))return b=ue(b,a.internalContextTag,c,null),b[\"return\"]=a,b;$e(a,b)}return null}function G(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Re:return c.key===e?c.type===Ve?u(a,b,c.props.children,d,e):k(a,b,c,d):null;case Se:return c.key===e?q(a,b,c,d):null;case Te:return null===\ne?v(a,b,c,d):null;case Ue:return c.key===e?y(a,b,c,d):null}if(Ye(c)||Xe(c))return null!==e?null:u(a,b,c,d,null);$e(a,c)}return null}function I(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Re:return a=a.get(null===d.key?c:d.key)||null,d.type===Ve?u(b,a,d.props.children,e,d.key):k(b,a,d,e);case Se:return a=a.get(null===d.key?c:d.key)||null,q(b,a,d,e);case Te:return a=a.get(c)||null,v(b,a,d,e);case Ue:return a=\na.get(null===d.key?c:d.key)||null,y(b,a,d,e)}if(Ye(d)||Xe(d))return a=a.get(c)||null,u(b,a,d,e,null);$e(b,d)}return null}function L(e,g,m,A){for(var h=null,r=null,n=g,w=g=0,k=null;null!==n&&w<m.length;w++){n.index>w?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;w<m.length;w++)if(n=z(e,m[w],A))g=f(n,g,w),null===r?h=n:r.sibling=n,r=n;return h}for(n=\nd(e,n);w<m.length;w++)if(k=I(n,e,w,m[w],A)){if(a&&null!==k.alternate)n[\"delete\"](null===k.key?w:k.key);g=f(k,g,w);null===r?h=k:r.sibling=k;r=k}a&&n.forEach(function(a){return b(e,a)});return h}function N(e,g,m,A){var h=Xe(m);\"function\"!==typeof h?E(\"150\"):void 0;m=h.call(m);null==m?E(\"151\"):void 0;for(var r=h=null,n=g,w=g=0,k=null,x=m.next();null!==n&&!x.done;w++,x=m.next()){n.index>w?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=a;var c=a.firstEffect}else c=a;else c=a.firstEffect;yg();for(t=c;null!==t;){var d=!1,e=void 0;try{for(;null!==t;){var f=t.effectTag;f&16&&zg(t);if(f&128){var g=t.alternate;null!==g&&Ag(g)}switch(f&-242){case 2:Ne(t);t.effectTag&=-3;break;case 6:Ne(t);t.effectTag&=-3;Oe(t.alternate,t);break;case 4:Oe(t.alternate,\nt);break;case 8:Sc=!0,Bg(t),Sc=!1}t=t.nextEffect}}catch(Tc){d=!0,e=Tc}d&&(null===t?E(\"178\"):void 0,h(t,e),null!==t&&(t=t.nextEffect))}Cg();b.current=a;for(t=c;null!==t;){c=!1;d=void 0;try{for(;null!==t;){var k=t.effectTag;k&36&&Dg(t.alternate,t);k&128&&Eg(t);if(k&64)switch(e=t,f=void 0,null!==R&&(f=R.get(e),R[\"delete\"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=R.get(e),R[\"delete\"](e))),null==f?E(\"184\"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});\nbreak;case 3:null===ca&&(ca=f.error);break;default:E(\"157\")}var Qc=t.nextEffect;t.nextEffect=null;t=Qc}}catch(Tc){c=!0,d=Tc}c&&(null===t?E(\"178\"):void 0,h(t,d),null!==t&&(t=t.nextEffect))}ja=Qb=!1;\"function\"===typeof De&&De(a.stateNode);ha&&(ha.forEach(G),ha=null);null!==ca&&(a=ca,ca=null,Ob(a));b=b.current.expirationTime;0===b&&(qa=R=null);return b}function c(a){for(;;){var b=Fg(a.alternate,a,H),c=a[\"return\"],d=a.sibling;var e=a;if(2147483647===H||2147483647!==e.expirationTime){if(2!==e.tag&&3!==\ne.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;\nif(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=rg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function e(a){var b=Gg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function f(a){if(null!==R){if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1<he;)ge[he]=null,he--;je=D;ie.current=D;X.current=!1;x();ra=a;H=b;F=se(ra.current,null,b)}var c=!1,d=null;try{f(b)}catch(Rc){c=!0,d=Rc}for(;c;){if(eb){ca=d;break}var g=F;if(null===g)eb=!0;else{var k=h(g,d);null===k?E(\"183\"):void 0;if(!eb){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ne(g);break;case 5:qg(g);break;case 3:p(g);break;case 4:p(g)}if(g===k||g.alternate===k)break;g=g[\"return\"]}F=e(c);f(d)}catch(Rc){c=!0;d=Rc;continue}break}}}b=ca;eb=ja=!1;ca=\nnull;null!==b&&Ob(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=id.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,q(a)&&(eb=!0);else for(var g=a[\"return\"];null!==g&&null===c;){2===g.tag?\"function\"===typeof g.stateNode.componentDidCatch&&(d=!0,f=jd(g),c=g,e=!0):3===g.tag&&(c=g);if(q(g)){if(Sc||null!==ha&&(ha.has(g)||null!==g.alternate&&ha.has(g.alternate)))return null;c=null;e=!1}g=g[\"return\"]}if(null!==c){null===qa&&(qa=new Set);qa.add(c);var h=\"\";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=\ng._debugOwner,Qc=g._debugSource;var m=jd(g);var n=null;k&&(n=jd(k));k=Qc;m=\"\\n    in \"+(m||\"Unknown\")+(k?\" (at \"+k.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+k.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\");break a;default:m=\"\"}h+=m;g=g[\"return\"]}while(g);g=h;a=jd(a);null===R&&(R=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};R.set(c,b);try{var p=b.error;p&&p.suppressReactErrorLogging||console.error(p)}catch(Vc){Vc&&\nVc.suppressReactErrorLogging||console.error(Vc)}Qb?(null===ha&&(ha=new Set),ha.add(c)):G(c);return c}null===ca&&(ca=b);return null}function k(a){return null!==R&&(R.has(a)||null!==a.alternate&&R.has(a.alternate))}function q(a){return null!==qa&&(qa.has(a)||null!==a.alternate&&qa.has(a.alternate))}function v(){return 20*(((I()+100)/20|0)+1)}function y(a){return 0!==ka?ka:ja?Qb?1:H:!Hg||a.internalContextTag&1?v():1}function u(a,b){return z(a,b,!1)}function z(a,b){for(;null!==a;){if(0===a.expirationTime||\na.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&b<H&&(F=ra=null,H=0);var d=c,e=b;Rb>Ig&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Fa||(la?\nSb&&(ma=d,na=1,m(ma,na)):1===e?w(1,null):L(e));!ja&&c===ra&&b<H&&(F=ra=null,H=0)}else break;a=a[\"return\"]}}function G(a){z(a,1,!0)}function I(){return Uc=((Wc()-Pe)/10|0)+2}function L(a){if(0!==Tb){if(a>Tb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===O)break;c=d;d=d.nextScheduledRoot}}c=ma;null!==c&&c===b?Rb++:Rb=0;ma=b;na=a}function J(a){w(0,a)}function w(a,b){fb=b;for(N();null!==ma&&0!==na&&(0===a||na<=a)&&!Yc;)m(ma,na),N();null!==fb&&(Tb=0,Xc=-1);0!==na&&L(na);fb=null;Yc=!1;Rb=0;if(Ub)throw a=Zc,Zc=\nnull,Ub=!1,a;}function m(a,c){Fa?E(\"245\"):void 0;Fa=!0;if(c<=I()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(A()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Fa=!1}function A(){return null===fb||fb.timeRemaining()>Lg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ue,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}var qf=\"object\"===typeof performance&&\"function\"===typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};\nvar sf=void 0,tf=void 0;\nif(l.canUseDOM)if(\"function\"!==typeof requestIdleCallback||\"function\"!==typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);window.addEventListener(\"message\",function(a){if(a.source===window&&a.data===Cf){vf=!1;a=rf();if(0>=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b;yf=a+Af;vf||(vf=!0,window.postMessage(Cf,\"*\"))};sf=function(a,b){uf=a;null!=b&&\"number\"===typeof b.timeout&&(wf=rf()+b.timeout);xf||(xf=!0,requestAnimationFrame(Df));return 0};tf=function(){uf=null;vf=!1;wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},\ntf=function(a){clearTimeout(a)};var Ef=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Ff={},Gf={};\nfunction Hf(a){if(Gf.hasOwnProperty(a))return!0;if(Ff.hasOwnProperty(a))return!1;if(Ef.test(a))return Gf[a]=!0;Ff[a]=!0;return!1}\nfunction If(a,b,c){var d=wa(b);if(d&&va(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Tf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Uf(a,b){null!=b.dangerouslySetInnerHTML?E(\"91\"):void 0;return B({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Vf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?E(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Zf(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||(\"topScroll\"===e?wd(\"topScroll\",\"scroll\",a):\"topFocus\"===e||\"topBlur\"===e?(wd(\"topFocus\",\"focus\",a),wd(\"topBlur\",\"blur\",a),c.topBlur=!0,c.topFocus=!0):\"topCancel\"===e?(yc(\"cancel\",!0)&&wd(\"topCancel\",\"cancel\",a),c.topCancel=!0):\"topClose\"===e?(yc(\"close\",!0)&&wd(\"topClose\",\"close\",a),c.topClose=!0):Dd.hasOwnProperty(e)&&U(e,Dd[e],a),c[e]=!0)}}\nvar mg={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",\ntopWaiting:\"waiting\"};function ng(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;d===jg&&(d=Zf(a));d===jg?\"script\"===a?(a=c.createElement(\"div\"),a.innerHTML=\"\\x3cscript\\x3e\\x3c/script\\x3e\",a=a.removeChild(a.firstChild)):a=\"string\"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function og(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}\nfunction pg(a,b,c,d){var e=ig(b,c);switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);var f=c;break;case \"video\":case \"audio\":for(f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);f=c;break;case \"source\":U(\"topError\",\"error\",a);f=c;break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);f=c;break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);f=c;break;case \"details\":U(\"topToggle\",\"toggle\",a);f=c;break;case \"input\":Mf(a,c);f=Lf(a,c);U(\"topInvalid\",\"invalid\",a);\nlg(d,\"onChange\");break;case \"option\":f=Rf(a,c);break;case \"select\":Tf(a,c);f=B({},c,{value:void 0});U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;case \"textarea\":Vf(a,c);f=Uf(a,c);U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;default:f=c}hg(b,f,kg);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];\"style\"===h?fg(a,k,kg):\"dangerouslySetInnerHTML\"===h?(k=k?k.__html:void 0,null!=k&&bg(a,k)):\"children\"===h?\"string\"===typeof k?(\"textarea\"!==b||\"\"!==k)&&cg(a,k):\"number\"===typeof k&&cg(a,\n\"\"+k):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(Ra.hasOwnProperty(h)?null!=k&&lg(d,h):e?Kf(a,h,k):null!=k&&If(a,h,k))}switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"option\":null!=c.value&&a.setAttribute(\"value\",c.value);break;case \"select\":a.multiple=!!c.multiple;b=c.value;null!=b?Sf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Sf(a,!!c.multiple,c.defaultValue,!0);break;default:\"function\"===typeof f.onClick&&(a.onclick=\nC)}}\nfunction sg(a,b,c,d,e){var f=null;switch(b){case \"input\":c=Lf(a,c);d=Lf(a,d);f=[];break;case \"option\":c=Rf(a,c);d=Rf(a,d);f=[];break;case \"select\":c=B({},c,{value:void 0});d=B({},d,{value:void 0});f=[];break;case \"textarea\":c=Uf(a,c);d=Uf(a,d);f=[];break;default:\"function\"!==typeof c.onClick&&\"function\"===typeof d.onClick&&(a.onclick=C)}hg(b,d,kg);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if(\"style\"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]=\n\"\");else\"dangerouslySetInnerHTML\"!==g&&\"children\"!==g&&\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&\"autoFocus\"!==g&&(Ra.hasOwnProperty(g)?f||(f=[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if(\"style\"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]=\"\");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else\"dangerouslySetInnerHTML\"===\ng?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,\"\"+k)):\"children\"===g?b===k||\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(g,\"\"+k):\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&(Ra.hasOwnProperty(g)?(null!=k&&lg(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push(\"style\",a);return f}\nfunction tg(a,b,c,d,e){\"input\"===c&&\"radio\"===e.type&&null!=e.name&&Nf(a,e);ig(c,d);d=ig(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];\"style\"===g?fg(a,h,kg):\"dangerouslySetInnerHTML\"===g?bg(a,h):\"children\"===g?cg(a,h):d?null!=h?Kf(a,g,h):a.removeAttribute(g):null!=h?If(a,g,h):Jf(a,g)}switch(c){case \"input\":Of(a,e);break;case \"textarea\":Wf(a,e);break;case \"select\":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Sf(a,\n!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Sf(a,!!e.multiple,e.defaultValue,!0):Sf(a,!!e.multiple,e.multiple?[]:\"\",!1))}}\nfunction ug(a,b,c,d,e){switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);break;case \"video\":case \"audio\":for(var f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);break;case \"source\":U(\"topError\",\"error\",a);break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);break;case \"details\":U(\"topToggle\",\"toggle\",a);break;case \"input\":Mf(a,c);U(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"select\":Tf(a,c);\nU(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"textarea\":Vf(a,c),U(\"topInvalid\",\"invalid\",a),lg(e,\"onChange\")}hg(b,c,kg);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],\"children\"===g?\"string\"===typeof f?a.textContent!==f&&(d=[\"children\",f]):\"number\"===typeof f&&a.textContent!==\"\"+f&&(d=[\"children\",\"\"+f]):Ra.hasOwnProperty(g)&&null!=f&&lg(e,g));switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"select\":case \"option\":break;default:\"function\"===typeof c.onClick&&\n(a.onclick=C)}return d}function vg(a,b){return a.nodeValue!==b}\nvar wg=Object.freeze({createElement:ng,createTextNode:og,setInitialProperties:pg,diffProperties:sg,updateProperties:tg,diffHydratedProperties:ug,diffHydratedText:vg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(a,b,c){switch(b){case \"input\":Of(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=\nc.parentNode;c=c.querySelectorAll(\"input[name\\x3d\"+JSON.stringify(\"\"+b)+'][type\\x3d\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=rb(d);e?void 0:E(\"90\");Cc(d);Of(d,e)}}}break;case \"textarea\":Wf(a,c);break;case \"select\":b=c.value,null!=b&&Sf(a,!!c.multiple,b,!1)}}});nc.injectFiberControlledHostComponent(wg);var xg=null,Mg=null;function Ng(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction Og(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute(\"data-reactroot\"))}\nvar Z=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:$f(null,\"\");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=$f(a,b)}return a},getChildHostContext:function(a,b){return $f(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){xg=td;var a=da();if(Kd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();\nif(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(z){b=null;break a}var f=0,g=-1,h=-1,k=0,q=0,v=a,y=null;b:for(;;){for(var u;;){v!==b||0!==d&&3!==v.nodeType||(g=f+d);v!==e||0!==c&&3!==v.nodeType||(h=f+c);3===v.nodeType&&(f+=v.nodeValue.length);if(null===(u=v.firstChild))break;y=v;v=u}for(;;){if(v===a)break b;y===b&&++k===d&&(g=f);y===e&&++q===c&&(h=f);if(null!==(u=v.nextSibling))break;v=y;y=v.parentNode}v=u}b=-1===g||-1===h?null:\n{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Mg={focusedElem:a,selectionRange:b};ud(!1)},resetAfterCommit:function(){var a=Mg,b=da(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&fa(document.documentElement,c)){if(Kd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[Eb()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=\na.top}Mg=null;ud(xg);xg=null},createInstance:function(a,b,c,d,e){a=ng(a,b,c,d);a[Q]=e;a[ob]=b;return a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){pg(a,b,c,d);a:{switch(b){case \"button\":case \"input\":case \"select\":case \"textarea\":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e){return sg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return\"textarea\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===\ntypeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&\"string\"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=og(a,b);a[Q]=d;return a},now:rf,mutation:{commitMount:function(a){a.focus()},commitUpdate:function(a,b,c,d,e){a[ob]=e;tg(a,b,c,d,e)},resetTextContent:function(a){a.textContent=\"\"},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,\nb){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,\nb){return\"\"===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[Q]=f;a[ob]=c;return ug(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[Q]=c;return vg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},\ndidNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf,useSyncScheduling:!0});rc=Z.batchedUpdates;\nfunction Pg(a,b,c,d,e){Ng(c)?void 0:E(\"200\");var f=c._reactRootContainer;if(f)Z.updateContainer(b,f,a,e);else{d=d||Og(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=Z.createContainer(c,d);f=c._reactRootContainer=g;Z.unbatchedUpdates(function(){Z.updateContainer(b,g,a,e)})}return Z.getPublicRootInstance(f)}function Qg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Ng(b)?void 0:E(\"200\");return pf(a,b,null,c)}\nfunction Rg(a,b){this._reactRootContainer=Z.createContainer(a,b)}Rg.prototype.render=function(a,b){Z.updateContainer(a,this._reactRootContainer,null,b)};Rg.prototype.unmount=function(a){Z.updateContainer(null,this._reactRootContainer,null,a)};\nvar Sg={createPortal:Qg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return Z.findHostInstance(b);\"function\"===typeof a.render?E(\"188\"):E(\"213\",Object.keys(a))},hydrate:function(a,b,c){return Pg(null,a,b,!0,c)},render:function(a,b,c){return Pg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?E(\"38\"):void 0;return Pg(a,b,c,!1,d)},unmountComponentAtNode:function(a){Ng(a)?void 0:\nE(\"40\");return a._reactRootContainer?(Z.unbatchedUpdates(function(){Pg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Qg,unstable_batchedUpdates:tc,unstable_deferredUpdates:Z.deferredUpdates,flushSync:Z.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:mb,EventPluginRegistry:Va,EventPropagators:Cb,ReactControlledComponent:qc,ReactDOMComponentTree:sb,ReactDOMEventListener:xd}};\nZ.injectIntoDevTools({findFiberByHostInstance:pb,bundleType:0,version:\"16.2.0\",rendererPackageName:\"react-dom\"});var Tg=Object.freeze({default:Sg}),Ug=Tg&&Sg||Tg;module.exports=Ug[\"default\"]?Ug[\"default\"]:Ug;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(18);\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function listen(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function remove() {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function capture(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (false) {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(61);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = containsNode;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = __webpack_require__(62);\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n  var doc = object ? object.ownerDocument || object : document;\n  var defaultView = doc.defaultView || window;\n  return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(25);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n  _inherits(BrowserRouter, _React$Component);\n\n  function BrowserRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, BrowserRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<BrowserRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');\n  };\n\n  BrowserRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return BrowserRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nBrowserRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n  forceRefresh: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (BrowserRouter);\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar emptyFunction = __webpack_require__(18);\nvar invariant = __webpack_require__(66);\nvar ReactPropTypesSecret = __webpack_require__(67);\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (false) {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(8);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(34);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = (0, _DOMUtils.supportsHistory)();\n  var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + (0, _PathUtils.createPath)(location);\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createBrowserHistory;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(25);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = function (_React$Component) {\n  _inherits(HashRouter, _React$Component);\n\n  function HashRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, HashRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  HashRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<HashRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');\n  };\n\n  HashRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return HashRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nHashRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  hashType: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['hashbang', 'noslash', 'slash']),\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (HashRouter);\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(8);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(34);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: _PathUtils.stripLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  },\n  slash: {\n    encodePath: _PathUtils.addLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createHashHistory;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__ = __webpack_require__(72);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(26);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n  _inherits(MemoryRouter, _React$Component);\n\n  function MemoryRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, MemoryRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<MemoryRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');\n  };\n\n  MemoryRouter.prototype.render = function render() {\n    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n  };\n\n  return MemoryRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nMemoryRouter.propTypes = {\n  initialEntries: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,\n  initialIndex: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n  keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n  children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MemoryRouter);\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(5);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = __webpack_require__(14);\n\nvar _LocationUtils = __webpack_require__(23);\n\nvar _createTransitionManager = __webpack_require__(24);\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = _PathUtils.createPath;\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createMemoryHistory;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Route__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Link__ = __webpack_require__(35);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\n\n\n\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nvar NavLink = function NavLink(_ref) {\n  var to = _ref.to,\n      exact = _ref.exact,\n      strict = _ref.strict,\n      location = _ref.location,\n      activeClassName = _ref.activeClassName,\n      className = _ref.className,\n      activeStyle = _ref.activeStyle,\n      style = _ref.style,\n      getIsActive = _ref.isActive,\n      ariaCurrent = _ref.ariaCurrent,\n      rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);\n\n  return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Route__[\"a\" /* default */], {\n    path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,\n    exact: exact,\n    strict: strict,\n    location: location,\n    children: function children(_ref2) {\n      var location = _ref2.location,\n          match = _ref2.match;\n\n      var isActive = !!(getIsActive ? getIsActive(match, location) : match);\n\n      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Link__[\"a\" /* default */], _extends({\n        to: to,\n        className: isActive ? [className, activeClassName].filter(function (i) {\n          return i;\n        }).join(' ') : className,\n        style: isActive ? _extends({}, style, activeStyle) : style,\n        'aria-current': isActive && ariaCurrent\n      }, rest));\n    }\n  });\n};\n\nNavLink.propTypes = {\n  to: __WEBPACK_IMPORTED_MODULE_3__Link__[\"a\" /* default */].propTypes.to,\n  exact: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  strict: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  activeClassName: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  activeStyle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  style: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,\n  isActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n  ariaCurrent: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['page', 'step', 'location', 'true'])\n};\n\nNavLink.defaultProps = {\n  activeClassName: 'active',\n  ariaCurrent: 'true'\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (NavLink);\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isarray = __webpack_require__(76)\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__ = __webpack_require__(78);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__[\"a\" /* default */]);\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n  _inherits(Prompt, _React$Component);\n\n  function Prompt() {\n    _classCallCheck(this, Prompt);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Prompt.prototype.enable = function enable(message) {\n    if (this.unblock) this.unblock();\n\n    this.unblock = this.context.router.history.block(message);\n  };\n\n  Prompt.prototype.disable = function disable() {\n    if (this.unblock) {\n      this.unblock();\n      this.unblock = null;\n    }\n  };\n\n  Prompt.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Prompt> outside a <Router>');\n\n    if (this.props.when) this.enable(this.props.message);\n  };\n\n  Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (nextProps.when) {\n      if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n    } else {\n      this.disable();\n    }\n  };\n\n  Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.disable();\n  };\n\n  Prompt.prototype.render = function render() {\n    return null;\n  };\n\n  return Prompt;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nPrompt.propTypes = {\n  when: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  message: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]).isRequired\n};\nPrompt.defaultProps = {\n  when: true\n};\nPrompt.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      block: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Prompt);\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__ = __webpack_require__(80);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__[\"a\" /* default */]);\n\n/***/ }),\n/* 80 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history__ = __webpack_require__(81);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n  _inherits(Redirect, _React$Component);\n\n  function Redirect() {\n    _classCallCheck(this, Redirect);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Redirect.prototype.isStatic = function isStatic() {\n    return this.context.router && this.context.router.staticContext;\n  };\n\n  Redirect.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Redirect> outside a <Router>');\n\n    if (this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidMount = function componentDidMount() {\n    if (!this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var prevTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"a\" /* createLocation */])(prevProps.to);\n    var nextTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"a\" /* createLocation */])(this.props.to);\n\n    if (Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"b\" /* locationsAreEqual */])(prevTo, nextTo)) {\n      __WEBPACK_IMPORTED_MODULE_2_warning___default()(false, 'You tried to redirect to the same route you\\'re currently on: ' + ('\"' + nextTo.pathname + nextTo.search + '\"'));\n      return;\n    }\n\n    this.perform();\n  };\n\n  Redirect.prototype.perform = function perform() {\n    var history = this.context.router.history;\n    var _props = this.props,\n        push = _props.push,\n        to = _props.to;\n\n\n    if (push) {\n      history.push(to);\n    } else {\n      history.replace(to);\n    }\n  };\n\n  Redirect.prototype.render = function render() {\n    return null;\n  };\n\n  return Redirect;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nRedirect.propTypes = {\n  push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n  from: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n  to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired\n};\nRedirect.defaultProps = {\n  push: false\n};\nRedirect.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n      push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n      replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n    }).isRequired,\n    staticContext: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n  }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Redirect);\n\n/***/ }),\n/* 81 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createBrowserHistory__ = __webpack_require__(82);\n/* unused harmony reexport createBrowserHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__createHashHistory__ = __webpack_require__(83);\n/* unused harmony reexport createHashHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__createMemoryHistory__ = __webpack_require__(84);\n/* unused harmony reexport createMemoryHistory */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__LocationUtils__ = __webpack_require__(19);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PathUtils__ = __webpack_require__(15);\n/* unused harmony reexport parsePath */\n/* unused harmony reexport createPath */\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(38);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"b\" /* canUseDOM */], 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"g\" /* supportsHistory */])();\n  var needsHashChangeListener = !Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"h\" /* supportsPopStateOnHashChange */])();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"c\" /* getConfirmation */] : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"g\" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */])(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"c\" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"e\" /* stripBasename */])(path, basename);\n\n    return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"d\" /* isExtraneousPopstateEvent */])(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n  };\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createBrowserHistory);\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(38);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"f\" /* stripLeadingSlash */])(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"f\" /* stripLeadingSlash */],\n    decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */]\n  },\n  slash: {\n    encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */],\n    decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */]\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"b\" /* canUseDOM */], 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"f\" /* supportsGoWithoutReloadUsingHash */])();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"c\" /* getConfirmation */] : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"g\" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"a\" /* addLeadingSlash */])(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"c\" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"e\" /* stripBasename */])(path, basename);\n\n    return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path);\n  };\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"b\" /* locationsAreEqual */])(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location));\n  };\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__[\"b\" /* createPath */])(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"a\" /* addEventListener */])(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__[\"e\" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createHashHistory);\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__PathUtils__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__createTransitionManager__ = __webpack_require__(28);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_3__createTransitionManager__[\"a\" /* default */])();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(entry, undefined, createKey()) : Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = __WEBPACK_IMPORTED_MODULE_1__PathUtils__[\"b\" /* createPath */];\n\n  var push = function push(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__[\"a\" /* createLocation */])(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = (createMemoryHistory);\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__ = __webpack_require__(86);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Router__ = __webpack_require__(26);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\nvar normalizeLocation = function normalizeLocation(object) {\n  var _object$pathname = object.pathname,\n      pathname = _object$pathname === undefined ? '/' : _object$pathname,\n      _object$search = object.search,\n      search = _object$search === undefined ? '' : _object$search,\n      _object$hash = object.hash,\n      hash = _object$hash === undefined ? '' : _object$hash;\n\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar addBasename = function addBasename(basename, location) {\n  if (!basename) return location;\n\n  return _extends({}, location, {\n    pathname: Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(basename) + location.pathname\n  });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n  if (!basename) return location;\n\n  var base = Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return _extends({}, location, {\n    pathname: location.pathname.substr(base.length)\n  });\n};\n\nvar createLocation = function createLocation(location) {\n  return typeof location === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"parsePath\"])(location) : normalizeLocation(location);\n};\n\nvar createURL = function createURL(location) {\n  return typeof location === 'string' ? location : Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"createPath\"])(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n  return function () {\n    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(false, 'You cannot %s with <StaticRouter>', methodName);\n  };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n  _inherits(StaticRouter, _React$Component);\n\n  function StaticRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, StaticRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n      return Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__[\"addLeadingSlash\"])(_this.props.basename + createURL(path));\n    }, _this.handlePush = function (location) {\n      var _this$props = _this.props,\n          basename = _this$props.basename,\n          context = _this$props.context;\n\n      context.action = 'PUSH';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleReplace = function (location) {\n      var _this$props2 = _this.props,\n          basename = _this$props2.basename,\n          context = _this$props2.context;\n\n      context.action = 'REPLACE';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleListen = function () {\n      return noop;\n    }, _this.handleBlock = function () {\n      return noop;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  StaticRouter.prototype.getChildContext = function getChildContext() {\n    return {\n      router: {\n        staticContext: this.props.context\n      }\n    };\n  };\n\n  StaticRouter.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<StaticRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');\n  };\n\n  StaticRouter.prototype.render = function render() {\n    var _props = this.props,\n        basename = _props.basename,\n        context = _props.context,\n        location = _props.location,\n        props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);\n\n    var history = {\n      createHref: this.createHref,\n      action: 'POP',\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler('go'),\n      goBack: staticHandler('goBack'),\n      goForward: staticHandler('goForward'),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Router__[\"a\" /* default */], _extends({}, props, { history: history }));\n  };\n\n  return StaticRouter;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nStaticRouter.propTypes = {\n  basename: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n  context: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n  location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])\n};\nStaticRouter.defaultProps = {\n  basename: '',\n  location: '/'\n};\nStaticRouter.childContextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (StaticRouter);\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__ = __webpack_require__(88);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__[\"a\" /* default */]);\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(27);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = function (_React$Component) {\n  _inherits(Switch, _React$Component);\n\n  function Switch() {\n    _classCallCheck(this, Switch);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Switch.prototype.componentWillMount = function componentWillMount() {\n    __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Switch> outside a <Router>');\n  };\n\n  Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n  };\n\n  Switch.prototype.render = function render() {\n    var route = this.context.router.route;\n    var children = this.props.children;\n\n    var location = this.props.location || route.location;\n\n    var match = void 0,\n        child = void 0;\n    __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (element) {\n      if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element)) return;\n\n      var _element$props = element.props,\n          pathProp = _element$props.path,\n          exact = _element$props.exact,\n          strict = _element$props.strict,\n          sensitive = _element$props.sensitive,\n          from = _element$props.from;\n\n      var path = pathProp || from;\n\n      if (match == null) {\n        child = element;\n        match = path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }) : route.match;\n      }\n    });\n\n    return match ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { location: location, computedMatch: match }) : null;\n  };\n\n  return Switch;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nSwitch.contextTypes = {\n  router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n    route: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object.isRequired\n  }).isRequired\n};\nSwitch.propTypes = {\n  children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node,\n  location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Switch);\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__ = __webpack_require__(27);\n// Written in this round about way for babel-transform-imports\n\n\n/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__[\"a\" /* default */]);\n\n/***/ }),\n/* 90 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__ = __webpack_require__(91);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__[\"a\" /* default */]);\n\n/***/ }),\n/* 91 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__ = __webpack_require__(92);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Route__ = __webpack_require__(37);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\n\n\n\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n  var C = function C(props) {\n    var wrappedComponentRef = props.wrappedComponentRef,\n        remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);\n\n    return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Route__[\"a\" /* default */], { render: function render(routeComponentProps) {\n        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Component, _extends({}, remainingProps, routeComponentProps, { ref: wrappedComponentRef }));\n      } });\n  };\n\n  C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';\n  C.WrappedComponent = Component;\n  C.propTypes = {\n    wrappedComponentRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func\n  };\n\n  return __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default()(C, Component);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (withRouter);\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n(function (global, factory) {\n     true ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.hoistNonReactStatics = factory());\n}(this, (function () {\n    'use strict';\n    \n    var REACT_STATICS = {\n        childContextTypes: true,\n        contextTypes: true,\n        defaultProps: true,\n        displayName: true,\n        getDefaultProps: true,\n        getDerivedStateFromProps: true,\n        mixins: true,\n        propTypes: true,\n        type: true\n    };\n    \n    var KNOWN_STATICS = {\n        name: true,\n        length: true,\n        prototype: true,\n        caller: true,\n        callee: true,\n        arguments: true,\n        arity: true\n    };\n    \n    var defineProperty = Object.defineProperty;\n    var getOwnPropertyNames = Object.getOwnPropertyNames;\n    var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var getPrototypeOf = Object.getPrototypeOf;\n    var objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n    \n    return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n        if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n            \n            if (objectPrototype) {\n                var inheritedComponent = getPrototypeOf(sourceComponent);\n                if (inheritedComponent && inheritedComponent !== objectPrototype) {\n                    hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n                }\n            }\n            \n            var keys = getOwnPropertyNames(sourceComponent);\n            \n            if (getOwnPropertySymbols) {\n                keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n            }\n            \n            for (var i = 0; i < keys.length; ++i) {\n                var key = keys[i];\n                if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n                    var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n                    try { // Avoid failures from read-only properties\n                        defineProperty(targetComponent, key, descriptor);\n                    } catch (e) {}\n                }\n            }\n            \n            return targetComponent;\n        }\n        \n        return targetComponent;\n    };\n})));\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return App; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__aside_Aside__ = __webpack_require__(94);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__main_Main__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__ = __webpack_require__(147);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__App_css__ = __webpack_require__(149);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__App_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__App_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ie11_css__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ie11_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__ie11_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var APP__CLASS_NAMES='app';var APP_NAVBAR__CLASS_NAMES='app-navbar';var APP_CONTAINER__CLASS_NAMES='app-container';var APP_ASIDE__CLASS_NAMES='app-aside';var APP_MAIN__CLASS_NAMES='app-main';var FULLSCREEN__CLASS_NAMES='fullscreen';var FULLSCREEN_PARAMETER_NAME='fullscreen';var IE11__CLASS_NAMES='ie11';/**\n * The App component is the entry point of the user interface of the application.\n *\n * It defines the global layout with a Narvab on top to display the name of the\n * application along with some additional actions. Under the Navbar, two columns\n * are used to display side by side the Aside component and the Main component.\n */var AppWithoutRouter=function AppWithoutRouter(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var location=props.location;var query=location.search;if(query[0]==='?'){query=query.substring(1);}var segments=query.split('&');var parameters={};for(var i=0;i<segments.length;i++){var entry=segments[i].split('=');parameters[decodeURIComponent(entry[0])]=decodeURIComponent(entry[1]);}var isFullScreen=parameters[FULLSCREEN_PARAMETER_NAME];var appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(APP__CLASS_NAMES,className);var container=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:APP_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__aside_Aside__[\"a\" /* Aside */],{className:APP_ASIDE__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__main_Main__[\"a\" /* Main */],{className:APP_MAIN__CLASS_NAMES}));if(isFullScreen){appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(APP__CLASS_NAMES,FULLSCREEN__CLASS_NAMES,className);container=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:APP_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__main_Main__[\"a\" /* Main */],{className:APP_MAIN__CLASS_NAMES}));}var isIE11=!!window.MSInputMethodContext&&!!document.documentMode;if(isIE11){appClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(appClassNames,IE11__CLASS_NAMES);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:appClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__navbar_Navbar__[\"a\" /* Navbar */],{className:APP_NAVBAR__CLASS_NAMES}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"d\" /* XL */],left:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */]},container));};var App=Object(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"f\" /* withRouter */])(AppWithoutRouter);\n\n/***/ }),\n/* 94 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Aside; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Aside_css__ = __webpack_require__(95);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Aside_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__Aside_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var ASIDE__CLASS_NAMES='aside';var ASIDE_MAIN_LINKS__CLASS_NAMES='aside-mainlinks';var MAIN_LINKS__CLASS_NAMES='title-s';var ASIDE_ADDITIONAL_LINKS__CLASS_NAMES='aside-additionallinks';var ADDITIONAL_LINKS__CLASS_NAMES='caption-s';/**\n * The Aside component is used to display the navigation links to move from one\n * page to another.\n *\n * It contains two different kinds of links. One the top, we will have the main\n * links which are used to navigate to the major parts of the application. Under\n * those, we will display the additional links which will mainly be links to\n * external websites for help and support.\n */var Aside=function Aside(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var asideClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(ASIDE__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('aside',Object.assign({className:asideClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ASIDE_MAIN_LINKS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{className:MAIN_LINKS__CLASS_NAMES,to:'/'},'Dashboard')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{className:MAIN_LINKS__CLASS_NAMES,to:'/projects'},'Projects')))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:ASIDE_ADDITIONAL_LINKS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('ul',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a',{className:ADDITIONAL_LINKS__CLASS_NAMES,href:'https://github.com/eclipse/sirius-components/issues',target:'_blank',rel:'noopener noreferrer'},'Report an issue')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('li',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a',{className:ADDITIONAL_LINKS__CLASS_NAMES,href:'https://stackoverflow.com/questions/tagged/sirius',target:'_blank',rel:'noopener noreferrer'},'Help')))));};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Main; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__ = __webpack_require__(106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__ = __webpack_require__(107);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__ = __webpack_require__(113);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__ = __webpack_require__(141);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__ = __webpack_require__(143);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__ = __webpack_require__(145);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var MAIN__CLASS_NAMES='main';/**\n * The Main is used to define the content of the main area of the application.\n *\n * This component will define the routing strategy of the application with the\n * list of views and their associated URLs.\n */var Main=function Main(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var mainClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(MAIN__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('main',Object.assign({className:mainClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__error_ErrorBoundary__[\"a\" /* ErrorBoundary */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"e\" /* Switch */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/',render:renderDashboardViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/projects',render:renderListProjectsViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/projects/:projectName',render:renderProjectViewStateContainer}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"d\" /* Route */],{exact:true,path:'/newproject',render:renderNewProjectViewStateContainer})))));};var renderDashboardViewStateContainer=function renderDashboardViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__containers_dashboard_DashboardViewStateContainer__[\"a\" /* DashboardViewStateContainer */],null,function(stateId,error,dashboard){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__dashboard_DashboardView__[\"a\" /* DashboardView */],{stateId:stateId,error:error,dashboard:dashboard});});};var renderListProjectsViewStateContainer=function renderListProjectsViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__containers_projects_ListProjectsViewStateContainer__[\"a\" /* ListProjectsViewStateContainer */],null,function(stateId,error,projects){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__projects_listprojects_ListProjectsView__[\"a\" /* ListProjectsView */],{stateId:stateId,error:error,projects:projects});});};var renderProjectViewStateContainer=function renderProjectViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_13__containers_projects_ProjectViewStateContainer__[\"a\" /* ProjectViewStateContainer */],null,function(stateId,error,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__projects_project_ProjectView__[\"a\" /* ProjectView */],{stateId:stateId,error:error,project:project,pageIdentifier:pageIdentifier,onTabClick:onTabClick,onActivityClick:onActivityClick,onNewDescription:onNewDescription});});};var renderNewProjectViewStateContainer=function renderNewProjectViewStateContainer(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__containers_projects_NewProjectViewStateContainer__[\"a\" /* NewProjectViewStateContainer */],null,function(stateId,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__projects_newproject_NewProjectView__[\"a\" /* NewProjectView */],{stateId:stateId,errors:errors,isValid:isValid,onSubmit:onSubmit,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors,onNameChange:onNameChange});});};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DashboardView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__info_InfoCard__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__ = __webpack_require__(103);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__DashboardView_css__ = __webpack_require__(105);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__DashboardView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__DashboardView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string.isRequired};/**\n * The DashboardView component is used as the main component in the dashboard page.\n * It will render a bird eye view of the state of the data of the user starting\n * with the list of the projects available.\n */var DashboardView=function DashboardView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,dashboard=_ref.dashboard,props=_objectWithoutProperties(_ref,['className','stateId','error','dashboard']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"h\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"b\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_9__DashboardViewFiniteStateMachine__[\"a\" /* DASHBOARD_LOADED__STATE */]:return renderDashboardLoadedState(className,dashboard,props);default:var undefinedStateError={title:'The dashboard is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_4__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};DashboardView.propTypes=propTypes;/**\n * Renders the loading state of the dashboard.\n * @param {*} className The class name of the dashboard.\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"a\" /* Loading */],Object.assign({className:className},props));};/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:className},error,props));};var DASHBOARD_VIEW__CLASS_NAMES='dashboardview';var INFO__CLASS_NAMES='info';var PROJECTS_INFO__CLASS_NAMES='projectsinfo';var VIEWPOINTS_INFO__CLASS_NAMES='viewpointsinfo';var METAMODELS_INFO__CLASS_NAMES='metamodelsinfo';var NEWPROJECT_INFO__CLASS_NAMES='newprojectinfo';var PROJECTS__CLASS_NAMES='projects';var PROJECTS_BODY__CLASS_NAMES='projects-body';/**\n * Renders the dashboard.\n * @param {*} className The class name of the dashboard\n * @param {*} dashboard The dashboard to display\n * @param {*} props The properties of the component\n */var renderDashboardLoadedState=function renderDashboardLoadedState(className,dashboard,props){var dashboardViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(DASHBOARD_VIEW__CLASS_NAMES,className);var projectsCount=dashboard.projectsCount,viewpointsCount=dashboard.viewpointsCount,metamodelsCount=dashboard.metamodelsCount;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:dashboardViewClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:INFO__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:PROJECTS_INFO__CLASS_NAMES,title:projectsCount.toString(),message:'Projects'}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:VIEWPOINTS_INFO__CLASS_NAMES,title:viewpointsCount.toString(),message:'Viewpoints'}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:METAMODELS_INFO__CLASS_NAMES,title:metamodelsCount.toString(),message:'Metamodels'})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECTS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECTS_BODY__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'/newproject'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__info_InfoCard__[\"a\" /* InfoCard */],{className:NEWPROJECT_INFO__CLASS_NAMES,title:'+',message:'New Project',to:''})),dashboard.projects.map(function(project){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__projects_ProjectSummaryCard__[\"a\" /* ProjectSummaryCard */],{key:project.name,project:project});}))));};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return InfoCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InfoCard_css__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InfoCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__InfoCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};var INFOCARD__CLASS_NAMES='infocard';var INFOCARD_CONTAINER__CLASS_NAMES='infocard-container';var INFOCARD_TITLE__CLASS_NAMES='infocard-title';var INFOCARD_MESSAGE__CLASS_NAMES='infocard-message';/**\n * The InfoCard component is used to display some information with a catchy card.\n */var InfoCard=function InfoCard(_ref){var className=_ref.className,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','title','message']);var infoCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(INFOCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:infoCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:INFOCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:INFOCARD_TITLE__CLASS_NAMES},title),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',{className:INFOCARD_MESSAGE__CLASS_NAMES},message))));};InfoCard.propTypes=propTypes;\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectSummaryCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_SUMMARY_CARD__CLASS_NAMES='projectsummarycard';var propTypes={project:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object.isRequired};/**\n * The ProjectSummaryCard is used to display a bird eye view of the project. It\n * displays the small amount of relevant properties of a project.\n */var ProjectSummaryCard=function ProjectSummaryCard(_ref){var project=_ref.project,props=_objectWithoutProperties(_ref,['project']);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:PROJECT_SUMMARY_CARD__CLASS_NAMES},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'/projects/'+project.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_7__text_TextConstants__[\"f\" /* LARGE */],hideOverflow:true},project.name))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__text_Text__[\"a\" /* Text */],null,project.description||'No description provided')));};ProjectSummaryCard.propTypes=propTypes;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 106 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ErrorBoundary; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ErrorCard__ = __webpack_require__(16);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ErrorBoundary is a component used to intercept uncaught exceptions\n * during the rendering.\n */var ErrorBoundary=function(_Component){_inherits(ErrorBoundary,_Component);function ErrorBoundary(props){_classCallCheck(this,ErrorBoundary);var _this=_possibleConstructorReturn(this,(ErrorBoundary.__proto__||Object.getPrototypeOf(ErrorBoundary)).call(this,props));_this.state={error:null};return _this;}_createClass(ErrorBoundary,[{key:'componentDidCatch',value:function componentDidCatch(error,info){this.setState({error:error});}},{key:'render',value:function render(){var error=this.state.error;var title='An unexpected error has appeared during the rendering';if(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__ErrorCard__[\"a\" /* ErrorCard */],{code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"a\" /* RENDERING_ERROR */],title:title,message:error.message});}return this.props.children;}}]);return ErrorBoundary;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);\n\n/***/ }),\n/* 107 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ListProjectsView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__ = __webpack_require__(110);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__ = __webpack_require__(40);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};/**\n * The ListProjectsView component is used to display the list of all the projects.\n */var ListProjectsView=function ListProjectsView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,projects=_ref.projects,props=_objectWithoutProperties(_ref,['className','stateId','error','projects']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"g\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"a\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"h\" /* NO_PROJECTS_LOADED__STATE */]:return renderEmptyState(className,props);case __WEBPACK_IMPORTED_MODULE_8__ListProjectsViewFiniteStateMachine__[\"i\" /* PROJECTS_LOADED__STATE */]:return renderProjectsLoadedState(className,projects,props);default:var undefinedStateError={title:'The projects list is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_3__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};ListProjectsView.propTypes=propTypes;/**\n * Renders the loading state of the projects list.\n * @param {*} className The class name of the projects list\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){var listProjectsViewLoadingClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"a\" /* Loading */],Object.assign({className:listProjectsViewLoadingClassNames},props));};/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var listProjectsViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:listProjectsViewErrorClassNames},error,props));};/**\n * Renders the empty state.\n * @param {*} className The class name of the project list\n * @param {*} props The properties of the component\n */var renderEmptyState=function renderEmptyState(className,props){var listProjectsViewEmptyClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__blank_BlankCard__[\"a\" /* BlankCard */],Object.assign({title:'You haven\\'t created any projects yet',message:'Once you start creating new projects, you will be able to see them here',className:listProjectsViewEmptyClassNames},props));};var LIST_PROJECTS_VIEW__CLASS_NAMES='listprojectsview';/**\n * Renders the projects loaded.\n * @param {*} className The class name of the projects list\n * @param {*} projects The projects to be displayed\n * @param {*} props The properties of the component\n */var renderProjectsLoadedState=function renderProjectsLoadedState(className,projects,props){var listProjectsViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(LIST_PROJECTS_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:listProjectsViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__ProjectsListCard__[\"a\" /* ProjectsListCard */],Object.assign({projects:projects},props)));};\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BlankCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlankCard_css__ = __webpack_require__(109);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlankCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__BlankCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={title:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired};var BLANKCARD__CLASS_NAMES='blankcard';var BLANKCARD_CONTAINER__CLASS_NAMES='blankcard-container';var BLANKCARD_TITLE__CLASS_NAMES='title-l';/**\n * The BlankCard component is used to render the empty state of a page.\n */var BlankCard=function BlankCard(_ref){var className=_ref.className,title=_ref.title,message=_ref.message,props=_objectWithoutProperties(_ref,['className','title','message']);var blankCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(BLANKCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:blankCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],right:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */],bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"a\" /* L */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:BLANKCARD_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{bottom:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('h1',{className:BLANKCARD_TITLE__CLASS_NAMES},title)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p',null,message))));};BlankCard.propTypes=propTypes;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 110 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectsListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__ = __webpack_require__(112);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__ProjectsListCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECTS_LIST_CARD__CLASS_NAMES='projectslistcard';var propTypes={projects:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array.isRequired};var defaultProps={projects:[]};/**\n * The ProjectsListCard is used to display a list of projects as a card.\n */var ProjectsListCard=function ProjectsListCard(_ref){var className=_ref.className,projects=_ref.projects,props=_objectWithoutProperties(_ref,['className','projects']);var projectsListCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(PROJECTS_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"a\" /* Card */],Object.assign({className:projectsListCardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */]},'Projects')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},projects.map(function(project){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__[\"b\" /* Link */],{to:'projects/'+project.name,key:project.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"d\" /* TWO_LINES */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"d\" /* MainText */],null,project.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"b\" /* AdditionalText */],null,project.description||'No description provided'))));})));};ProjectsListCard.propTypes=propTypes;ProjectsListCard.defaultProps=defaultProps;\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 113 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NewProjectCard__ = __webpack_require__(114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__NewProjectView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__NewProjectView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,errors:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string).isRequired,isValid:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,onSubmit:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,name:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,nameIsValid:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,nameErrors:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string).isRequired,onNameChange:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var defaultProps={errors:[],isValid:false,onSubmit:function onSubmit(){},name:'',nameIsValid:false,nameErrors:[],onNameChange:function onNameChange(){}};/**\n * The NewProjectView component is used to display a new project form.\n */var NewProjectView=function NewProjectView(_ref){var className=_ref.className,stateId=_ref.stateId,errors=_ref.errors,isValid=_ref.isValid,onSubmit=_ref.onSubmit,name=_ref.name,nameIsValid=_ref.nameIsValid,nameErrors=_ref.nameErrors,onNameChange=_ref.onNameChange,props=_objectWithoutProperties(_ref,['className','stateId','errors','isValid','onSubmit','name','nameIsValid','nameErrors','onNameChange']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"h\" /* PRISTINE__STATE */]:case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */]:return renderForm(className,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange);case __WEBPACK_IMPORTED_MODULE_7__NewProjectViewFiniteStateMachine__[\"i\" /* REDIRECT__STATE */]:return renderRedirectState(name);default:var undefinedStateError={title:'The new project page is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_4__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};NewProjectView.propTypes=propTypes;NewProjectView.defaultProps=defaultProps;var NEW_PROJECT_VIEW__CLASS_NAMES='newprojectview';/**\n * Renders the form used to create a new project.\n */var renderForm=function renderForm(className,errors,isValid,onSubmit,name,nameIsValid,nameErrors,onNameChange){var newProjectViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])(NEW_PROJECT_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:newProjectViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__NewProjectCard__[\"a\" /* NewProjectCard */],{errors:errors,isValid:isValid,onSubmit:onSubmit,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors,onNameChange:onNameChange}));};/**\n * Renders a redirect component used to redirect the router to the page of the\n * newly created project.\n *\n * @param {*} name The name of the project\n */var renderRedirectState=function renderRedirectState(name){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"c\" /* Redirect */],{to:'/projects/'+name});};/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var newProjectViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_3__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:newProjectViewErrorClassNames},error,props));};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__form_Form__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var NEWPROJECT_CARD__CLASS_NAMES='newprojectcard';var propTypes={};/**\n * The NewProjectCard is used to create a new project.\n */var NewProjectCard=function NewProjectCard(_ref){var className=_ref.className,errors=_ref.errors,isValid=_ref.isValid,onSubmit=_ref.onSubmit,name=_ref.name,nameIsValid=_ref.nameIsValid,nameErrors=_ref.nameErrors,onNameChange=_ref.onNameChange,props=_objectWithoutProperties(_ref,['className','errors','isValid','onSubmit','name','nameIsValid','nameErrors','onNameChange']);var newProjectCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(NEWPROJECT_CARD__CLASS_NAMES,className);var nameClassName='';if(!nameIsValid&&nameErrors.length>0){nameClassName='fielderror';}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"a\" /* Card */],Object.assign({className:newProjectCardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_7__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_9__text_TextConstants__[\"f\" /* LARGE */],hideOverflow:true},'New Project')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__cards_Card__[\"b\" /* Divider */],null),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"f\" /* Form */],{onSubmit:onSubmit},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"d\" /* ErrorGroup */],null,errors.map(function(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"c\" /* Error */],{key:error},error);})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"e\" /* Field */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"g\" /* Label */],{htmlFor:'name'},'Name'),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"b\" /* Description */],null,'The name of the project can only contain letters and numbers separated by dots, dashes or underscores.'),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"h\" /* TextField */],{id:'name',name:'name',className:nameClassName,placeholder:'Enter the name',value:name,onChange:onNameChange}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"d\" /* ErrorGroup */],null,nameErrors.map(function(error){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"c\" /* Error */],{key:error},error);}))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__form_Form__[\"a\" /* ActionGroup */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__buttons_Button__[\"a\" /* Button */],{kind:__WEBPACK_IMPORTED_MODULE_3__buttons_ButtonConstants__[\"c\" /* BUTTON_PRIMARY__KIND */],disabled:!isValid},'Create Project'))));};NewProjectCard.propTypes=propTypes;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectView; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectView_css__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProjectView_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__ProjectView_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={stateId:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string};/**\n * The ProjectView is used to display and manipulate a project.\n */var ProjectView=function ProjectView(_ref){var className=_ref.className,stateId=_ref.stateId,error=_ref.error,project=_ref.project,pageIdentifier=_ref.pageIdentifier,onTabClick=_ref.onTabClick,onActivityClick=_ref.onActivityClick,onNewDescription=_ref.onNewDescription,props=_objectWithoutProperties(_ref,['className','stateId','error','project','pageIdentifier','onTabClick','onActivityClick','onNewDescription']);switch(stateId){case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"i\" /* LOADING__STATE */]:return renderLoadingState(className,props);case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"a\" /* ERROR__STATE */]:return renderErrorState(className,error,props);case __WEBPACK_IMPORTED_MODULE_10__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */]:return renderProjectLoadedState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,props);default:var undefinedStateError={title:'The project is in an unsupported state: '+stateId,message:'Contact your administrator to find a suitable solution',code:__WEBPACK_IMPORTED_MODULE_3__common_errors__[\"c\" /* UNSUPPORTED_STATE */]};return renderErrorState(className,undefinedStateError,props);}};ProjectView.propTypes=propTypes;/**\n * Renders the loading state of the project.\n * @param {*} className The class name of the project\n * @param {*} props The properties of the component\n */var renderLoadingState=function renderLoadingState(className,props){var project={};var pageIdentifier=undefined;var onTabClick=function onTabClick(){};var onActivityClick=function onActivityClick(){};var onNewDescription=function onNewDescription(){};return renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,true,props);};/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */var renderErrorState=function renderErrorState(className,error,props){var projectViewErrorClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])('',className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__error_ErrorCard__[\"a\" /* ErrorCard */],Object.assign({className:projectViewErrorClassNames},error,props));};var renderProjectLoadedState=function renderProjectLoadedState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,props){return renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,false,props);};var PROJECT_VIEW__CLASS_NAMES='projectview';var PROJECT_VIEW_MAIN__CLASS_NAMES='projectview-main';var PROJECT_VIEW_DETAILS__CLASS_NAMES='projectview-details';var PROJECT_VIEW_WORKFLOW__CLASS_NAMES='projectview-workflow';/**\n * Renders the project.\n * @param {*} className The class name of the project\n * @param {*} project The project to be displayed\n * @param {*} pageIdentifier The identifier of the page displayed in the workflow\n * @param {*} onTabClick The callback executed when a tab is clicked\n * @param {*} onActivityClick The callback executed when an activity is clicked\n * @param {*} onNewDescription The callback executed when the description is updated\n * @param {*} loading Indicates if the page is being loaded\n * @param {*} props The properties of the component\n */var renderProjectState=function renderProjectState(className,project,pageIdentifier,onTabClick,onActivityClick,onNewDescription,loading,props){var projectViewClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_VIEW__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__loading_Loading__[\"c\" /* LoadingProvider */],{loading:loading},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:projectViewClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__header_ProjectHeaderCard__[\"a\" /* ProjectHeaderCard */],{name:project.name,description:project.description,onNewDescription:onNewDescription}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_MAIN__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_DETAILS__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__ProjectSemanticResourcesListCard__[\"a\" /* ProjectSemanticResourcesListCard */],{semanticResources:project.semanticResources}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__ProjectRepresentationsListCard__[\"a\" /* ProjectRepresentationsListCard */],{projectName:project.name,representations:project.representations})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:PROJECT_VIEW_WORKFLOW__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__workflow_WorkflowCard__[\"a\" /* WorkflowCard */],{projectName:project.name,pageIdentifier:pageIdentifier,pages:project.pages,sections:project.currentPageSections,onTabClick:onTabClick,onActivityClick:onActivityClick})))));};\n\n/***/ }),\n/* 119 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return WorkflowCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__icons_IconRun__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__ = __webpack_require__(128);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__WorkflowCard_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var propTypes={projectName:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,pageIdentifier:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,pages:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,sections:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,onTabClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,onActivityClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func};var defaultProps={projectName:'',pageIdentifier:'',pages:[],sections:[],onTabClick:function onTabClick(){},onActivityClick:function onActivityClick(){}};var WORKFLOWCARD__CLASS_NAMES='workflowcard';/**\n * The WorkflowCard component is used to render the workflow of the page.\n */var WorkflowCard=function WorkflowCard(_ref){var className=_ref.className,projectName=_ref.projectName,pageIdentifier=_ref.pageIdentifier,pages=_ref.pages,sections=_ref.sections,onTabClick=_ref.onTabClick,onActivityClick=_ref.onActivityClick,props=_objectWithoutProperties(_ref,['className','projectName','pageIdentifier','pages','sections','onTabClick','onActivityClick']);var selectedTabIndex=0;for(var index=0;index<pages.length;index++){var page=pages[index];if(page.identifier===pageIdentifier){selectedTabIndex=index;}}var sectionsElement=void 0;if(pages.length>0){sectionsElement=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Sections,{sections:sections,projectName:projectName,pageIdentifier:pageIdentifier,onActivityClick:onActivityClick});}var workflowCardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(WORKFLOWCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({},props,{className:workflowCardClassNames}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Workflow');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(WorkflowTabBar,{pages:pages,selectedTabIndex:selectedTabIndex,onTabClick:onTabClick}),sectionsElement);};WorkflowCard.propTypes=propTypes;WorkflowCard.defaultProps=defaultProps;var WorkflowTabBar=function WorkflowTabBar(_ref2){var pages=_ref2.pages,selectedTabIndex=_ref2.selectedTabIndex,onTabClick=_ref2.onTabClick;if(pages.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{loading:loading},'No workflow pages found');}));}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__tabbar_TabBar__[\"a\" /* TabBar */],{selectedTabIndex:selectedTabIndex,tabs:pages.map(function(page){return page.name;}),onTabClick:onTabClick});};var Sections=function Sections(_ref3){var sections=_ref3.sections,projectName=_ref3.projectName,pageIdentifier=_ref3.pageIdentifier,onActivityClick=_ref3.onActivityClick;if(sections.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptySections,null);}return sections.map(function(section,index){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react__[\"Fragment\"],{key:section.identifier},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Section,{key:section.identifier,projectName:projectName,pageIdentifier:pageIdentifier,section:section,onActivityClick:onActivityClick}),index+1<sections.length?__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"b\" /* Divider */],null):null);});};var EmptySections=function EmptySections(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],null,'No sections found in the workflow.'));};var SECTION__CLASS_NAMES='section';var Section=function Section(_ref4){var className=_ref4.className,projectName=_ref4.projectName,pageIdentifier=_ref4.pageIdentifier,section=_ref4.section,onActivityClick=_ref4.onActivityClick,props=_objectWithoutProperties(_ref4,['className','projectName','pageIdentifier','section','onActivityClick']);var sectionClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(SECTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:sectionClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_12__text_TextConstants__[\"h\" /* MEDIUM */],hideOverflow:true},section.name)),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Activities,{activities:section.activities,onActivityClick:onActivityClick,projectName:projectName,pageIdentifier:pageIdentifier,sectionIdentifier:section.identifier}));};var Activities=function Activities(_ref5){var activities=_ref5.activities,onActivityClick=_ref5.onActivityClick,projectName=_ref5.projectName,pageIdentifier=_ref5.pageIdentifier,sectionIdentifier=_ref5.sectionIdentifier;if(activities.length===0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptyActivities,null);}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(ActivitiesList,{activities:activities,onActivityClick:onActivityClick,projectName:projectName,pageIdentifier:pageIdentifier,sectionIdentifier:sectionIdentifier});};var ActivitiesList=function ActivitiesList(_ref6){var activities=_ref6.activities,onActivityClick=_ref6.onActivityClick,projectName=_ref6.projectName,pageIdentifier=_ref6.pageIdentifier,sectionIdentifier=_ref6.sectionIdentifier;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},activities.map(function(activity){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_6__list_ListConstants__[\"b\" /* SINGLE_LINE */],key:activity.identifier},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"d\" /* MainText */],null,activity.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__list_List__[\"a\" /* AdditionalIcon */],null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__icons_IconRun__[\"a\" /* IconRun */],{onClick:function onClick(){return onActivityClick(projectName,pageIdentifier,sectionIdentifier,activity.identifier);}})));}));};var EmptyActivities=function EmptyActivities(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_9__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_11__text_Text__[\"a\" /* Text */],null,'No activities in the section.'));};\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return IconRun; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__IconRun_css__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__IconRun_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__IconRun_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var ICONRUN__CLASS_NAMES='iconrun';/**\n * The run SVG icon.\n */var IconRun=function IconRun(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var iconRunClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(ICONRUN__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('svg',Object.assign({xmlns:'http://www.w3.org/2000/svg',className:iconRunClassNames,height:'16',width:'16'},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('polygon',{points:'0,0 16,8 0,16'}));};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 122 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TabBar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__TabBar_css__ = __webpack_require__(127);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__TabBar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__TabBar_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TABBAR__CLASS_NAMES='tabbar';var TABBAR_NAV__CLASS_NAMES='tabbar-nav';var TABBAR_NAV__DISABLED__CLASS_NAMES='tabbar-nav--disabled';var TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES='tabbar-nav--contain-selection';var TABBAR_TABS__CLASS_NAMES='tabbar-tabs';var propTypes={tabs:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,onTabClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,selectedTabIndex:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,numberOfTabsDisplayed:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired};var defaultProps={tabs:[],onTabClick:function onTabClick(){},selectedTabIndex:0,numberOfTabsDisplayed:3};/**\n * The TabBar component is used to display horizontally a list of elements with\n * two buttons to navigate into the list to the previous or next elements. It\n * also allows the selection of one specific element in the list.\n */var TabBar=function(_Component){_inherits(TabBar,_Component);function TabBar(props){_classCallCheck(this,TabBar);var _this=_possibleConstructorReturn(this,(TabBar.__proto__||Object.getPrototypeOf(TabBar)).call(this,props));_this.handleTabBarNavClick=_this.handleTabBarNavClick.bind(_this);_this.handleTabClick=_this.handleTabClick.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(TabBar,[{key:'dispatch',value:function dispatch(action,callback){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);},callback);}},{key:'handleTabBarNavClick',value:function handleTabBarNavClick(_ref){var target=_ref.target;var side=target.getAttribute('data-side');if(side==='previous'&&this.state.isPreviousAvailable){var action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandlePreviousAction();this.dispatch(action);}else if(side==='next'&&this.state.isNextAvailable){var _action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandleNextAction();this.dispatch(_action);}}},{key:'handleTabClick',value:function handleTabClick(event,index){var onTabClick=this.props.onTabClick;var action=__WEBPACK_IMPORTED_MODULE_6__TabBarDispatcher__[\"a\" /* actionCreator */].newHandleTabSelectedAction(index);this.dispatch(action,function(){return onTabClick(index);});}},{key:'getTabBarNavClassNames',value:function getTabBarNavClassNames(isAvailable,containsSelection){var tabBarNavClassNames=TABBAR_NAV__CLASS_NAMES;if(!isAvailable){tabBarNavClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR_NAV__CLASS_NAMES,TABBAR_NAV__DISABLED__CLASS_NAMES);}else if(containsSelection){tabBarNavClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR_NAV__CLASS_NAMES,TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES);}return tabBarNavClassNames;}},{key:'renderTabs',value:function renderTabs(tabs,startIndex,selectedTabIndex,numberOfTabsDisplayed){var tabsToDisplay=[];var endIndex=Math.min(tabs.length,startIndex+numberOfTabsDisplayed);for(var index=startIndex;index<endIndex;index++){var tab=tabs[index];tabsToDisplay.push(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Tab__[\"a\" /* Tab */],{key:tab,index:index,onClick:this.handleTabClick,selected:index===selectedTabIndex},tab));}return tabsToDisplay;}},{key:'render',value:function render(){var _props=this.props,className=_props.className,tabs=_props.tabs,numberOfTabsDisplayed=_props.numberOfTabsDisplayed;var _state=this.state,index=_state.index,isPreviousAvailable=_state.isPreviousAvailable,isNextAvailable=_state.isNextAvailable,selectedTabIndex=_state.selectedTabIndex;var previousContainsSelection=selectedTabIndex<index;var nextContainsSelection=index+numberOfTabsDisplayed<selectedTabIndex+1;var tabBarClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(TABBAR__CLASS_NAMES,className);var previousClassNames=this.getTabBarNavClassNames(isPreviousAvailable,previousContainsSelection);var nextClassNames=this.getTabBarNavClassNames(isNextAvailable,nextContainsSelection);var tabsToDisplay=this.renderTabs(tabs,index,selectedTabIndex,numberOfTabsDisplayed);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:tabBarClassNames},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:previousClassNames,onClick:this.handleTabBarNavClick,'data-side':'previous'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */]},'<')),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:TABBAR_TABS__CLASS_NAMES},tabsToDisplay),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:nextClassNames,onClick:this.handleTabBarNavClick,'data-side':'next'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */]},'>')));}}]);return TabBar;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);TabBar.propTypes=propTypes;TabBar.defaultProps=defaultProps;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Tab; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab_css__ = __webpack_require__(124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tab_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__Tab_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var TAB__CLASS_NAMES='tab';var TAB_SELECTED__CLASS_NAMES='tab--selected';var propTypes={selected:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool.isRequired,index:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number.isRequired,onClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var defaultProps={selected:false,onClick:function onClick(){}};/**\n * The Tab component is used to display one tab in a TabBar.\n */var Tab=function(_Component){_inherits(Tab,_Component);function Tab(props){_classCallCheck(this,Tab);var _this=_possibleConstructorReturn(this,(Tab.__proto__||Object.getPrototypeOf(Tab)).call(this,props));_this.handleTabClick=_this.handleTabClick.bind(_this);return _this;}_createClass(Tab,[{key:'handleTabClick',value:function handleTabClick(event){var _props=this.props,index=_props.index,onClick=_props.onClick;onClick(event,index);}},{key:'render',value:function render(){var _props2=this.props,className=_props2.className,children=_props2.children,selected=_props2.selected;var tabClassNames=TAB__CLASS_NAMES;if(selected){tabClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(tabClassNames,TAB_SELECTED__CLASS_NAMES);}tabClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(tabClassNames,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:tabClassNames,onClick:this.handleTabClick},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_4__text_TextConstants__[\"h\" /* MEDIUM */],hideOverflow:true},children));}}]);return Tab;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);Tab.propTypes=propTypes;Tab.defaultProps=defaultProps;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__ = __webpack_require__(126);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the tab bar.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the tab bar.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]:var initializedState=computeState(props.tabs,0,props.selectedTabIndex,props.numberOfTabsDisplayed);initializedState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"h\" /* PRISTINE__STATE */];return initializedState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"b\" /* HANDLE_NEXT__ACTION */]:var handleNextState=computeState(props.tabs,state.index+1,state.selectedTabIndex,props.numberOfTabsDisplayed);handleNextState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handleNextState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"c\" /* HANDLE_PREVIOUS__ACTION */]:var handlePreviousState=computeState(props.tabs,state.index-1,state.selectedTabIndex,props.numberOfTabsDisplayed);handlePreviousState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handlePreviousState;case __WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"d\" /* HANDLE_TAB_SELECTED__ACTION */]:var handleTabSelectedState=computeState(props.tabs,state.index,action.selectedTabIndex,props.numberOfTabsDisplayed);handleTabSelectedState.stateId=__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"g\" /* MOVED__STATE */];return handleTabSelectedState;default:return state;}};var computeState=function computeState(tabs,index,selectedTabIndex,numberOfTabsDisplayed){var isPreviousAvailable=index>0;var isNextAvailable=tabs.length>index+numberOfTabsDisplayed;return{index:index,isPreviousAvailable:isPreviousAvailable,isNextAvailable:isNextAvailable,selectedTabIndex:selectedTabIndex};};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle next action used to navigate to the next tabs in the tab bar.\n */var newHandleNextAction=function newHandleNextAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"b\" /* HANDLE_NEXT__ACTION */]};};/**\n * Returns an handle previous action used to navigate to the next tabs in the tab bar.\n */var newHandlePreviousAction=function newHandlePreviousAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"c\" /* HANDLE_PREVIOUS__ACTION */]};};/**\n * Returns an handle tab selected action used to select a specific tab in the tab bar.\n *\n * @param {*} selectedTabIndex The index of the selected tab\n */var newHandleTabSelectedAction=function newHandleTabSelectedAction(selectedTabIndex){return{kind:__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"d\" /* HANDLE_TAB_SELECTED__ACTION */],selectedTabIndex:selectedTabIndex};};var actionCreator={newInitializeAction:newInitializeAction,newHandleNextAction:newHandleNextAction,newHandlePreviousAction:newHandlePreviousAction,newHandleTabSelectedAction:newHandleTabSelectedAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"a\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_1__TabBarFiniteStateMachine__[\"f\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return INITIAL__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return PRISTINE__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return MOVED__STATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return INITIALIZE__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return HANDLE_NEXT__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return HANDLE_PREVIOUS__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HANDLE_TAB_SELECTED__ACTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FSM; });\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var INITIAL__STATE='INITIAL__STATE';var PRISTINE__STATE='PRISTINE__STATE';var MOVED__STATE='MOVED__STATE';var INITIALIZE__ACTION='INITIALIZE__ACTION';var HANDLE_NEXT__ACTION='HANDLE_NEXT__ACTION';var HANDLE_PREVIOUS__ACTION='HANDLE_PREVIOUS__ACTION';var HANDLE_TAB_SELECTED__ACTION='HANDLE_TAB_SELECTED__ACTION';var FSM={INITIAL__STATE:{INITIALIZE__ACTION:[PRISTINE__STATE]},PRISTINE__STATE:{HANDLE_NEXT__ACTION:[MOVED__STATE],HANDLE_PREVIOUS__ACTION:[MOVED__STATE],HANDLE_TAB_SELECTED__ACTION:[MOVED__STATE]},MOVED__STATE:{HANDLE_NEXT__ACTION:[MOVED__STATE],HANDLE_PREVIOUS__ACTION:[MOVED__STATE],HANDLE_TAB_SELECTED__ACTION:[MOVED__STATE]}};\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 129 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectHeaderCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__EditDescription__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ViewDescription__ = __webpack_require__(132);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECTHEADERCARD__CLASS_NAMES='projectheadercard';var projectHeaderCardPropTypes={name:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,onNewDescription:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var projectHeaderCardDefaultProps={name:'',onNewDescription:function onNewDescription(){}};/**\n * The ProjectHeaderCard is used to contain the most important properties of a\n * project and the main actions used to interact with it.\n */var ProjectHeaderCard=function(_Component){_inherits(ProjectHeaderCard,_Component);function ProjectHeaderCard(props){_classCallCheck(this,ProjectHeaderCard);var _this=_possibleConstructorReturn(this,(ProjectHeaderCard.__proto__||Object.getPrototypeOf(ProjectHeaderCard)).call(this,props));_this.handleEditClick=_this.handleEditClick.bind(_this);_this.handleNewDescription=_this.handleNewDescription.bind(_this);_this.state={isViewingDescription:true};return _this;}_createClass(ProjectHeaderCard,[{key:'handleEditClick',value:function handleEditClick(){this.setState({isViewingDescription:false});}},{key:'handleNewDescription',value:function handleNewDescription(description){var _this2=this;this.setState({isViewingDescription:true},function(){var onNewDescription=_this2.props.onNewDescription;onNewDescription(description);});}},{key:'render',value:function render(){var _props=this.props,className=_props.className,name=_props.name,description=_props.description,onNewDescription=_props.onNewDescription,props=_objectWithoutProperties(_props,['className','name','description','onNewDescription']);var isViewingDescription=this.state.isViewingDescription;var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECTHEADERCARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_8__text_TextConstants__[\"d\" /* EXTRA_LARGE */],hideOverflow:true,loading:loading},name);})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"c\" /* S */],left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},isViewingDescription?__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__ViewDescription__[\"a\" /* ViewDescription */],{description:description||'No description provided',onEditClick:this.handleEditClick}):__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__EditDescription__[\"a\" /* EditDescription */],{description:description,onNewDescription:this.handleNewDescription})));}}]);return ProjectHeaderCard;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);ProjectHeaderCard.propTypes=projectHeaderCardPropTypes;ProjectHeaderCard.defaultProps=projectHeaderCardDefaultProps;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EditDescription; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_Form__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__EditDescription_css__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__EditDescription_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__EditDescription_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var EDITDESCRIPTION__CLASS_NAMES='editdescription';var editDescriptionPropTypes={description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,onNewDescription:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};var editDescriptionDefaultProps={description:''};/**\n * The EditDescription component is used to edit the description of the project.\n */var EditDescription=function(_Component){_inherits(EditDescription,_Component);function EditDescription(props){_classCallCheck(this,EditDescription);var _this=_possibleConstructorReturn(this,(EditDescription.__proto__||Object.getPrototypeOf(EditDescription)).call(this,props));_this.handleDescriptionChange=_this.handleDescriptionChange.bind(_this);_this.handleDoneClick=_this.handleDoneClick.bind(_this);_this.state={description:props.description};return _this;}_createClass(EditDescription,[{key:'handleDescriptionChange',value:function handleDescriptionChange(_ref){var value=_ref.target.value;this.setState({description:value});}},{key:'handleDoneClick',value:function handleDoneClick(){var onNewDescription=this.props.onNewDescription;var description=this.state.description;onNewDescription(description);}},{key:'render',value:function render(){var description=this.state.description;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:EDITDESCRIPTION__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__form_Form__[\"h\" /* TextField */],{value:description,onChange:this.handleDescriptionChange}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__spacing_Spacing__[\"a\" /* Spacing */],{left:__WEBPACK_IMPORTED_MODULE_5__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__buttons_Button__[\"a\" /* Button */],{onClick:this.handleDoneClick},'Done')));}}]);return EditDescription;}(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]);EditDescription.propTypes=editDescriptionPropTypes;EditDescription.defaultProps=editDescriptionDefaultProps;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 132 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ViewDescription; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__buttons_Button__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ViewDescription_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__ViewDescription_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var VIEWDESCRIPTION__CLASS_NAMES='viewdescription';var VIEWDESCRIPTION_TEXT__CLASS_NAMES='viewdescription-text';var viewDescriptionPropTypes={description:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,onEditClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired};/**\n * The ViewDescription component is used to display the description of the\n * project with a button used to edit it.\n */var ViewDescription=function ViewDescription(_ref){var className=_ref.className,description=_ref.description,onEditClick=_ref.onEditClick,props=_objectWithoutProperties(_ref,['className','description','onEditClick']);var viewDescriptionClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(VIEWDESCRIPTION__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',Object.assign({className:viewDescriptionClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Fragment,null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__text_Text__[\"a\" /* Text */],{className:VIEWDESCRIPTION_TEXT__CLASS_NAMES,loading:loading},description),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__spacing_Spacing__[\"a\" /* Spacing */],{left:__WEBPACK_IMPORTED_MODULE_6__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__buttons_Button__[\"a\" /* Button */],{onClick:onEditClick,loading:loading},'Edit')));}));};ViewDescription.propTypes=viewDescriptionPropTypes;\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 134 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectRepresentationsListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES='projectrepresentationslistcard';var propTypes={representations:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired};var defaultProps={representations:[]};/**\n * The ProjectRepresentationsListCard is a Card listing all the representations\n * of a project.\n */var ProjectRepresentationsListCard=function ProjectRepresentationsListCard(_ref){var className=_ref.className,projectName=_ref.projectName,representations=_ref.representations,props=_objectWithoutProperties(_ref,['className','projectName','representations']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Representations');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Representations,{projectName:projectName,representations:representations}));};ProjectRepresentationsListCard.propTypes=propTypes;ProjectRepresentationsListCard.defaultProps=defaultProps;/**\n * Renders the representations of the card or a text indicating the lack of\n * representations.\n */var Representations=function Representations(_ref2){var projectName=_ref2.projectName,representations=_ref2.representations;if(representations.length>0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(RepresentationsList,{projectName:projectName,representations:representations});}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptyRepresentations,null);};/**\n * Renders the list of representations.\n */var RepresentationsList=function RepresentationsList(_ref3){var projectName=_ref3.projectName,representations=_ref3.representations;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},representations.map(function(representation){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"d\" /* TWO_LINES */],key:representation.name},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"d\" /* MainText */],null,representation.name),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"b\" /* AdditionalText */],null,representation.descriptionName)));}));};/**\n * Renders a text indicating the lack of representations.\n */var EmptyRepresentations=function EmptyRepresentations(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{loading:loading},'No representation has been found on the project.');}));};\n\n/***/ }),\n/* 135 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectSemanticResourcesListCard; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__cards_Card__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__list_List__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__list_ListConstants__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__loading_Loading__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__text_TextConstants__ = __webpack_require__(7);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES='projectsemanticresourceslistcard';var propTypes={semanticResources:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired};var defaultProps={semanticResources:[]};/**\n * The ProjectSemanticResourcesListCard is a Card displaying all the semantic\n * resources of a project.\n */var ProjectSemanticResourcesListCard=function ProjectSemanticResourcesListCard(_ref){var className=_ref.className,semanticResources=_ref.semanticResources,props=_objectWithoutProperties(_ref,['className','semanticResources']);var cardClassNames=Object(__WEBPACK_IMPORTED_MODULE_2__common_classnames__[\"a\" /* classNames */])(PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__cards_Card__[\"a\" /* Card */],Object.assign({className:cardClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"j\" /* SEMI_BOLD */],size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"f\" /* LARGE */],loading:loading,hideOverflow:true},'Semantic Resources');})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(SemanticResources,{semanticResources:semanticResources}));};ProjectSemanticResourcesListCard.propTypes=propTypes;ProjectSemanticResourcesListCard.defaultProps=defaultProps;/**\n * Renders the semantic resources of the card or a text indicating the lack of\n * semantic resources.\n */var SemanticResources=function SemanticResources(_ref2){var semanticResources=_ref2.semanticResources;if(semanticResources.length>0){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(SemanticResourcesList,{semanticResources:semanticResources});}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(EmptySemanticResources,null);};/**\n * Renders the list of semantic resources.\n */var SemanticResourcesList=function SemanticResourcesList(_ref3){var semanticResources=_ref3.semanticResources;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"c\" /* List */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"a\" /* LIST_WITH_HIGHLIGHT__KIND */]},semanticResources.map(function(resource){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"e\" /* Tile */],{kind:__WEBPACK_IMPORTED_MODULE_5__list_ListConstants__[\"b\" /* SINGLE_LINE */],key:resource.path},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__list_List__[\"d\" /* MainText */],null,resource.path),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{size:__WEBPACK_IMPORTED_MODULE_10__text_TextConstants__[\"k\" /* SMALL */]},resource.size));}));};/**\n * Renders a text indicating the lack of semantic resources.\n */var EmptySemanticResources=function EmptySemanticResources(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */],left:__WEBPACK_IMPORTED_MODULE_8__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__loading_Loading__[\"b\" /* LoadingConsumer */],null,function(loading){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__text_Text__[\"a\" /* Text */],{loading:loading},'No semantic resource has been found on the project.');}));};\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DashboardViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__ = __webpack_require__(140);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The DashboardViewStateContainer is the stateful component used to manipulate\n * the state of the dashboard.\n */var DashboardViewStateContainer=function(_Component){_inherits(DashboardViewStateContainer,_Component);function DashboardViewStateContainer(props){_classCallCheck(this,DashboardViewStateContainer);var _this=_possibleConstructorReturn(this,(DashboardViewStateContainer.__proto__||Object.getPrototypeOf(DashboardViewStateContainer)).call(this,props));_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(DashboardViewStateContainer,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){var jsonDashboardResponse,action,dashboardResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return fetch('/api/dashboard');case 3:jsonDashboardResponse=_context.sent;action=void 0;if(!jsonDashboardResponse.ok){_context.next=12;break;}_context.next=8;return jsonDashboardResponse.json();case 8:dashboardResponse=_context.sent;action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newHandleDashboardFetchedAction(dashboardResponse);_context.next=14;break;case 12:statusText=jsonDashboardResponse.statusText,status=jsonDashboardResponse.status;action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 14:this.dispatch(action);_context.next=21;break;case 17:_context.prev=17;_context.t0=_context['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0);this.dispatch(_action);case 21:case'end':return _context.stop();}}},_callee,this,[[0,17]]);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_dashboard_DashboardViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,dashboard=_state.dashboard;return render(stateId,error,dashboard);}}]);return DashboardViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = __webpack_require__(139);\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__ = __webpack_require__(39);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the dashboard view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the dashboard.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"f\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"h\" /* LOADING__STATE */],dashboard:{projects:[]},error:null};case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_DASHBOARD__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"a\" /* DASHBOARD_LOADED__STATE */],dashboard:action.dashboard,error:null};case __WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"b\" /* ERROR__STATE */],dashboard:state.dashboard,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"f\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle dashboard fetched action used to go from the loading state\n * to the dashboard loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleDashboardFetchedAction=function newHandleDashboardFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_DASHBOARD__ACTION */],dashboard:response};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the dashboard',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the dashboard',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleDashboardFetchedAction:newHandleDashboardFetchedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"c\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__DashboardViewFiniteStateMachine__[\"g\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 141 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ListProjectsViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__ = __webpack_require__(142);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ListProjectsViewStateContainer is the stateful component used to manipulate\n * the list of the projects.\n */var ListProjectsViewStateContainer=function(_Component){_inherits(ListProjectsViewStateContainer,_Component);function ListProjectsViewStateContainer(props){_classCallCheck(this,ListProjectsViewStateContainer);var _this=_possibleConstructorReturn(this,(ListProjectsViewStateContainer.__proto__||Object.getPrototypeOf(ListProjectsViewStateContainer)).call(this,props));_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(ListProjectsViewStateContainer,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){var jsonProjectsResponse,action,projectsResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return fetch('/api/projects');case 3:jsonProjectsResponse=_context.sent;action=void 0;if(!jsonProjectsResponse.ok){_context.next=12;break;}_context.next=8;return jsonProjectsResponse.json();case 8:projectsResponse=_context.sent;action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newHandleProjectsFetchedAction(projectsResponse);_context.next=14;break;case 12:statusText=jsonProjectsResponse.statusText,status=jsonProjectsResponse.status;action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 14:this.dispatch(action);_context.next=21;break;case 17:_context.prev=17;_context.t0=_context['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0);this.dispatch(_action);case 21:case'end':return _context.stop();}}},_callee,this,[[0,17]]);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_listprojects_ListProjectsViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,projects=_state.projects;return render(stateId,error,projects);}}]);return ListProjectsViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__ = __webpack_require__(40);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the list projects view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the list projects view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"g\" /* LOADING__STATE */],projects:[],error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"d\" /* HANDLE_FETCHED_PROJECTS__ACTION */]:if(action.projects.length===0){return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"h\" /* NO_PROJECTS_LOADED__STATE */],projects:[],error:undefined};}return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"i\" /* PROJECTS_LOADED__STATE */],projects:action.projects,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"a\" /* ERROR__STATE */],projects:state.projects,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"e\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle projects fetched action used to go from the loading state\n * to the projects loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleProjectsFetchedAction=function newHandleProjectsFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"d\" /* HANDLE_FETCHED_PROJECTS__ACTION */],projects:response.projects};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the list of projects',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the projects list',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleProjectsFetchedAction:newHandleProjectsFetchedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"b\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__ListProjectsViewFiniteStateMachine__[\"f\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NewProjectViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__ = __webpack_require__(144);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The NewProjectViewStateContainer is the stateful component used to manipulate\n * the state of the NewProjectView.\n */var NewProjectViewStateContainer=function(_Component){_inherits(NewProjectViewStateContainer,_Component);function NewProjectViewStateContainer(props){_classCallCheck(this,NewProjectViewStateContainer);var _this=_possibleConstructorReturn(this,(NewProjectViewStateContainer.__proto__||Object.getPrototypeOf(NewProjectViewStateContainer)).call(this,props));_this.handleNameChange=_this.handleNameChange.bind(_this);_this.handleSubmit=_this.handleSubmit.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(NewProjectViewStateContainer,[{key:'handleNameChange',value:function handleNameChange(event){var name=event.target.value;this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newModifyNameAction(name));}},{key:'handleSubmit',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(event){var name,body,request,jsonResponse,ok,statusText,message,response;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:name=this.state.name;event.preventDefault();_context.prev=2;body={name:name};request=new Request('/api/projects',{method:'POST',body:JSON.stringify(body)});_context.next=7;return fetch(request);case 7:jsonResponse=_context.sent;ok=jsonResponse.ok,statusText=jsonResponse.statusText;if(!ok){_context.next=13;break;}this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newCreatedProjectAction());_context.next=19;break;case 13:message=statusText;_context.next=16;return jsonResponse.json();case 16:response=_context.sent;if(response){message=response.message;}this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(message));case 19:_context.next=24;break;case 21:_context.prev=21;_context.t0=_context['catch'](2);this.dispatch(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context.t0.message));case 24:case'end':return _context.stop();}}},_callee,this,[[2,21]]);}));function handleSubmit(_x){return _ref.apply(this,arguments);}return handleSubmit;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_2__components_projects_newproject_NewProjectViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,errors=_state.errors,isValid=_state.isValid,name=_state.name,nameIsValid=_state.nameIsValid,nameErrors=_state.nameErrors;return render(stateId,errors,isValid,this.handleSubmit,name,nameIsValid,nameErrors,this.handleNameChange);}}]);return NewProjectViewStateContainer;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);\n\n/***/ }),\n/* 144 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__ = __webpack_require__(43);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the new project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the new project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"d\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"h\" /* PRISTINE__STATE */],errors:[],isValid:false,name:'',nameIsValid:false,nameErrors:[]};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"g\" /* MODIFY_NAME__ACTION */]:var name=action.name;var nameErrors=validateName(name);var nameIsValid=nameErrors.length===0;var isValid=nameIsValid;return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */],errors:[],isValid:isValid,name:name,nameIsValid:nameIsValid,nameErrors:nameErrors};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */]:var errors=[].concat(state.errors);errors.push(action.message);return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"f\" /* MODIFIED__STATE */],errors:errors,isValid:false};case __WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"b\" /* HANDLE_CREATED_PROJECT__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"i\" /* REDIRECT__STATE */]};default:return state;}};/**\n * Validates the given name and returns the errors found.\n * @param {*} name\n * @returns An array of string describing the errors found\n */var validateName=function validateName(name){var errors=[];if(name.trim().length===0){errors.push('The name is required');}var invalidCharacters=['\\\\','/',':','*','?','\"','<','>','|'];invalidCharacters.forEach(function(invalidCharacter){if(name.indexOf(invalidCharacter)!==-1){errors.push('The character '+invalidCharacter+' cannot be used in the name');}});if(name.trim()==='.'||name.trim()==='..'){errors.push('The name cannot have the value . or ..');}if(name.length>0&&name.charAt(name.length-1)==='.'){errors.push('The name cannot end with a dot');}if(name.length>0&&name.trim().length===0){errors.push('The name cannot be composed of whitespaces');}else if(name.length!==name.trim().length){errors.push('Remove any whitespace at the beginning or the end');}return errors;};/**\n * Returns an initialize action used to go from the initial state to the\n * pristine state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"d\" /* INITIALIZE__ACTION */]};};/**\n * Returns a new modify name action used to change the value of the name and\n * trigger the various validation rules.\n *\n * @param {*} name The name\n */var newModifyNameAction=function newModifyNameAction(name){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"g\" /* MODIFY_NAME__ACTION */],name:name};};/**\n * Returns a new unexpected error action used to handle an unexpected error in\n * our code.\n *\n * @param {*} message The message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],message:'An error has occured during the processing of the response'};};/**\n * Returns a new handle created project action used to redirect the user interface\n * to the new project created.\n */var newCreatedProjectAction=function newCreatedProjectAction(){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"b\" /* HANDLE_CREATED_PROJECT__ACTION */]};};/**\n * Returns a new invalid error action used to handle an invalid response from\n * the server.\n *\n * @param {*} message The message\n */var newInvalidResponseAction=function newInvalidResponseAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"c\" /* HANDLE_ERROR__ACTION */],message:message};};var actionCreator={newInitializeAction:newInitializeAction,newModifyNameAction:newModifyNameAction,newUnexpectedErrorAction:newUnexpectedErrorAction,newCreatedProjectAction:newCreatedProjectAction,newInvalidResponseAction:newInvalidResponseAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"a\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_1__NewProjectViewFiniteStateMachine__[\"e\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 145 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ProjectViewStateContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_router_dom__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__ = __webpack_require__(146);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _asyncToGenerator(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){function step(key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{return Promise.resolve(value).then(function(value){step(\"next\",value);},function(err){step(\"throw\",err);});}}return step(\"next\");});};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&(typeof call===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The ProjectViewStateContainerWithoutRouter is the stateful component used to\n * manipulate the state of the ProjectView.\n *\n * It leverages the router API in order to retrieve the name of the project to\n * display from the URL.\n */var ProjectViewStateContainerWithoutRouter=function(_Component){_inherits(ProjectViewStateContainerWithoutRouter,_Component);function ProjectViewStateContainerWithoutRouter(props){_classCallCheck(this,ProjectViewStateContainerWithoutRouter);var _this=_possibleConstructorReturn(this,(ProjectViewStateContainerWithoutRouter.__proto__||Object.getPrototypeOf(ProjectViewStateContainerWithoutRouter)).call(this,props));_this.handleActivityClick=_this.handleActivityClick.bind(_this);_this.handleTabClick=_this.handleTabClick.bind(_this);_this.handleNewDescription=_this.handleNewDescription.bind(_this);_this.state=Object(__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"b\" /* dispatcher */])(undefined,props,__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newInitializeAction());return _this;}_createClass(ProjectViewStateContainerWithoutRouter,[{key:'componentDidMount',value:function(){var _ref=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(){return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return this.updateData();case 2:case'end':return _context.stop();}}},_callee,this);}));function componentDidMount(){return _ref.apply(this,arguments);}return componentDidMount;}()},{key:'updateData',value:function(){var _ref2=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee2(){var projectName,jsonProjectResponse,action,projectResponse,statusText,status,_action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.prev=0;projectName=this.props.match.params.projectName;_context2.next=4;return fetch('/api/projects/'+projectName);case 4:jsonProjectResponse=_context2.sent;action=void 0;if(!jsonProjectResponse.ok){_context2.next=13;break;}_context2.next=9;return jsonProjectResponse.json();case 9:projectResponse=_context2.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandleProjectFetchedAction(projectResponse);_context2.next=15;break;case 13:statusText=jsonProjectResponse.statusText,status=jsonProjectResponse.status;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newInvalidResponseAction(statusText,status);case 15:this.dispatch(action);_context2.next=22;break;case 18:_context2.prev=18;_context2.t0=_context2['catch'](0);_action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newUnexpectedErrorAction(_context2.t0);this.dispatch(_action);case 22:case'end':return _context2.stop();}}},_callee2,this,[[0,18]]);}));function updateData(){return _ref2.apply(this,arguments);}return updateData;}()},{key:'handleTabClick',value:function(){var _ref3=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee3(index){var pages,pageIdentifier,projectName,jsonPageResponse,pageResponse,action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:pages=this.state.project.pages;pageIdentifier=pages[index].identifier;projectName=this.props.match.params.projectName;_context3.prev=3;_context3.next=6;return fetch('/api/projects/'+projectName+'/pages/'+pageIdentifier);case 6:jsonPageResponse=_context3.sent;_context3.next=9;return jsonPageResponse.json();case 9:pageResponse=_context3.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandlePageFetchedAction(pageResponse);this.dispatch(action);_context3.next=16;break;case 14:_context3.prev=14;_context3.t0=_context3['catch'](3);case 16:case'end':return _context3.stop();}}},_callee3,this,[[3,14]]);}));function handleTabClick(_x){return _ref3.apply(this,arguments);}return handleTabClick;}()},{key:'handleActivityClick',value:function(){var _ref4=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee4(projectName,pageIdentifier,sectionIdentifier,activityIdentifier){var request,jsonResponse,ok;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee4$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:_context4.prev=0;request=new Request('/api/projects/'+projectName+'/pages/'+pageIdentifier+'/sections/'+sectionIdentifier+'/activities/'+activityIdentifier+'/execute',{method:'POST'});_context4.next=4;return fetch(request);case 4:jsonResponse=_context4.sent;ok=jsonResponse.ok;if(!ok){// To be handled\n}_context4.next=9;return this.updateData();case 9:_context4.next=13;break;case 11:_context4.prev=11;_context4.t0=_context4['catch'](0);case 13:case'end':return _context4.stop();}}},_callee4,this,[[0,11]]);}));function handleActivityClick(_x2,_x3,_x4,_x5){return _ref4.apply(this,arguments);}return handleActivityClick;}()},{key:'handleNewDescription',value:function(){var _ref5=_asyncToGenerator(/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee5(description){var project,oldDescription,projectName,body,request,jsonResponse,response,action;return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee5$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:project=this.state.project;oldDescription=project.description;if(oldDescription===undefined){oldDescription='';}if(!(description!==oldDescription)){_context5.next=20;break;}projectName=this.props.match.params.projectName;_context5.prev=5;body=JSON.stringify({description:description});request=new Request('/api/projects/'+projectName,{method:'PUT',body:body});_context5.next=10;return fetch(request);case 10:jsonResponse=_context5.sent;_context5.next=13;return jsonResponse.json();case 13:response=_context5.sent;action=__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"a\" /* actionCreator */].newHandleDescriptionUpdatedAction(response);this.dispatch(action);_context5.next=20;break;case 18:_context5.prev=18;_context5.t0=_context5['catch'](5);case 20:case'end':return _context5.stop();}}},_callee5,this,[[5,18]]);}));function handleNewDescription(_x6){return _ref5.apply(this,arguments);}return handleNewDescription;}()},{key:'dispatch',value:function dispatch(action){this.setState(function(prevState,props){return Object(__WEBPACK_IMPORTED_MODULE_3__components_projects_project_ProjectViewDispatcher__[\"b\" /* dispatcher */])(prevState,props,action);});}},{key:'render',value:function render(){var _props=this.props,children=_props.children,_props$render=_props.render,render=_props$render===undefined?children:_props$render;var _state=this.state,stateId=_state.stateId,error=_state.error,project=_state.project,pageIdentifier=_state.pageIdentifier;return render(stateId,error,project,pageIdentifier,this.handleTabClick,this.handleActivityClick,this.handleNewDescription);}}]);return ProjectViewStateContainerWithoutRouter;}(__WEBPACK_IMPORTED_MODULE_1_react__[\"Component\"]);var ProjectViewStateContainer=Object(__WEBPACK_IMPORTED_MODULE_2_react_router_dom__[\"f\" /* withRouter */])(ProjectViewStateContainerWithoutRouter);\n\n/***/ }),\n/* 146 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return actionCreator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return dispatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_errors__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__ = __webpack_require__(44);\n/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************//**\n * The reducer of the project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */var reducer=function reducer(state,props,action){switch(action.kind){case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"g\" /* INITIALIZE__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"i\" /* LOADING__STATE */],project:undefined,pageIdentifier:undefined,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"f\" /* HANDLE_FETCHED_PROJECT__ACTION */]:var pageIdentifier=void 0;if(action.project.pages.length>0){pageIdentifier=action.project.pages[0].identifier;}return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:action.project,pageIdentifier:pageIdentifier,error:undefined};case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_PAGE__ACTION */]:var newFetchedPageState={stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:state.project,pageIdentifier:action.page.identifier,error:undefined};newFetchedPageState.project.currentPageSections=action.page.sections;return newFetchedPageState;case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"c\" /* HANDLE_DESCRIPTION_UPDATED__ACTION */]:var newDescriptionUpdatedState={stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"j\" /* PROJECT_LOADED__STATE */],project:state.project,pageIdentifier:state.pageIdentifier,error:undefined};newDescriptionUpdatedState.project=Object.assign({},newDescriptionUpdatedState.project,{description:action.description});return newDescriptionUpdatedState;case __WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */]:return{stateId:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"a\" /* ERROR__STATE */],project:state.project,pageIdentifier:state.pageIdentifier,error:action.error};default:return state;}};/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */var newInitializeAction=function newInitializeAction(){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"g\" /* INITIALIZE__ACTION */]};};/**\n * Returns an handle project fetched action used to go from the loading state\n * to the project loaded state.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleProjectFetchedAction=function newHandleProjectFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"f\" /* HANDLE_FETCHED_PROJECT__ACTION */],project:response};};/**\n * Returns an handle page fetched action used to change the current workflow\n * page.\n *\n * @param {*} response The HTTP response of the server\n */var newHandlePageFetchedAction=function newHandlePageFetchedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"e\" /* HANDLE_FETCHED_PAGE__ACTION */],page:response};};/**\n * Returns an handle description updated action used to change the current\n * description of the project.\n *\n * @param {*} response The HTTP response of the server\n */var newHandleDescriptionUpdatedAction=function newHandleDescriptionUpdatedAction(response){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"c\" /* HANDLE_DESCRIPTION_UPDATED__ACTION */],description:response.description};};/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */var newInvalidResponseAction=function newInvalidResponseAction(message,code){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'An error has occurred while retrieving the project',message:message,code:code}};};/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */var newUnexpectedErrorAction=function newUnexpectedErrorAction(message){return{kind:__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"d\" /* HANDLE_ERROR__ACTION */],error:{title:'Unexpected content retrieved for the project',message:message,code:__WEBPACK_IMPORTED_MODULE_1__common_errors__[\"b\" /* UNKNOWN_ERROR */]}};};var actionCreator={newInitializeAction:newInitializeAction,newHandleProjectFetchedAction:newHandleProjectFetchedAction,newHandlePageFetchedAction:newHandlePageFetchedAction,newHandleDescriptionUpdatedAction:newHandleDescriptionUpdatedAction,newInvalidResponseAction:newInvalidResponseAction,newUnexpectedErrorAction:newUnexpectedErrorAction};var dispatcher=Object(__WEBPACK_IMPORTED_MODULE_0__common_dispatcherCreator__[\"a\" /* dispatcherCreator */])(__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"b\" /* FSM */],reducer,__WEBPACK_IMPORTED_MODULE_2__ProjectViewFiniteStateMachine__[\"h\" /* INITIAL__STATE */]);\n\n/***/ }),\n/* 147 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Navbar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_classnames__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__text_Text__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__text_TextConstants__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Navbar_css__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Navbar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Navbar_css__);\nfunction _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/var NAVBAR__CLASS_NAMES='navbar';var NAVBAR_CONTAINER__CLASS_NAMES='navbar-container';var NARBAR_TITLE__CLASS_NAMES='navbar-title title-xxl';/**\n * The Navbar is used to display a navigation bar on top of the user interface.\n * It can contain the title of the application and various actions.\n */var Navbar=function Navbar(_ref){var className=_ref.className,props=_objectWithoutProperties(_ref,['className']);var navClassNames=Object(__WEBPACK_IMPORTED_MODULE_1__common_classnames__[\"a\" /* classNames */])(NAVBAR__CLASS_NAMES,className);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('nav',Object.assign({className:navClassNames},props),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__spacing_Spacing__[\"a\" /* Spacing */],{top:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],right:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */],bottom:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"c\" /* S */],left:__WEBPACK_IMPORTED_MODULE_3__spacing_SpacingConstants__[\"b\" /* M */]},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:NAVBAR_CONTAINER__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div',{className:NARBAR_TITLE__CLASS_NAMES},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__text_Text__[\"a\" /* Text */],{weight:__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__[\"a\" /* BOLD */],size:__WEBPACK_IMPORTED_MODULE_5__text_TextConstants__[\"c\" /* EXTRA_EXTRA_LARGE */]},'Eclipse Sirius')))));};\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// static/js/main.7441a635.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 45);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9590c7cee182aefb2c84","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/index.js\n// module id = 0\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 1\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n/**\n * Computes the class names of an element from the given static class names\n * along with optional class names which can be null or undefined.\n */\nexport const classNames = (staticClassNames, ...optionalClassNames) => {\n  const classNames = staticClassNames + ' ' + optionalClassNames.filter(n => n).join(' ');\n  return classNames.trim();\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/classnames.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const XS = '4px';\nexport const S = '8px';\nexport const M = '16px';\nexport const L = '32px';\nexport const XL = '64px';\nexport const XXL = '128px';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/spacing/SpacingConstants.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { XS, S, M, L, XL, XXL } from './SpacingConstants';\n\nconst propTypes = {\n  top: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  right: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  bottom: PropTypes.oneOf([XS, S, M, L, XL, XXL]),\n  left: PropTypes.oneOf([XS, S, M, L, XL, XXL])\n};\n\n/**\n * The Spacing component is used to help manage the layout of the components.\n *\n * It will compute a padding for the div which will encapsulate the children from\n * the given value of top, right, bottom and left.\n */\nexport const Spacing = ({ children, top, right, bottom, left }) => {\n  const style = {\n    paddingTop: top,\n    paddingRight: right,\n    paddingBottom: bottom,\n    paddingLeft: left\n  };\n  return <div style={style}>{children}</div>;\n};\nSpacing.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/spacing/Spacing.js","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/warning/browser.js\n// module id = 5\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport {\n  LIGHT,\n  REGULAR,\n  SEMI_BOLD,\n  BOLD,\n  EXTRA_BOLD,\n  EXTRA_SMALL,\n  SMALL,\n  MEDIUM,\n  LARGE,\n  EXTRA_LARGE,\n  EXTRA_EXTRA_LARGE\n} from './TextConstants';\n\nimport './Text.css';\n\nconst propTypes = {\n  children: PropTypes.string,\n  loading: PropTypes.bool,\n  weight: PropTypes.oneOf([LIGHT, REGULAR, SEMI_BOLD, BOLD, EXTRA_BOLD]).isRequired,\n  size: PropTypes.oneOf([EXTRA_SMALL, SMALL, MEDIUM, LARGE, EXTRA_LARGE, EXTRA_EXTRA_LARGE])\n    .isRequired,\n  hideOverflow: PropTypes.bool\n};\nconst defaultProps = {\n  weight: REGULAR,\n  size: SMALL\n};\n\nexport const Text = ({ children, className, weight, size, hideOverflow, loading, ...props }) => {\n  let textClassNames = classNames('text', size, weight);\n  if (hideOverflow) {\n    textClassNames = classNames(textClassNames, 'hideoverflow');\n  }\n  if (loading) {\n    textClassNames = classNames(textClassNames, 'loading');\n  }\n  textClassNames = classNames(textClassNames, className);\n  return <div className={textClassNames}>{children}</div>;\n};\nText.propTypes = propTypes;\nText.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/Text.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n// Text weights\nexport const LIGHT = 'light';\nexport const REGULAR = 'regular';\nexport const SEMI_BOLD = 'semibold';\nexport const BOLD = 'bold';\nexport const EXTRA_BOLD = 'extrabold';\n\n// Text sizes\nexport const EXTRA_EXTRA_LARGE = 'xxl';\nexport const EXTRA_LARGE = 'xl';\nexport const LARGE = 'l';\nexport const MEDIUM = 'm';\nexport const SMALL = 's';\nexport const EXTRA_SMALL = 'xs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/text/TextConstants.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/invariant/browser.js\n// module id = 8\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { classNames } from '../../common/classnames';\n\nimport './Card.css';\n\nconst CARD__CLASS_NAMES = 'card';\n\n/**\n * The Card component is used as a common block of the user interface.\n */\nexport const Card = ({ className, ...props }) => {\n  const cardClassNames = classNames(CARD__CLASS_NAMES, className);\n  return (\n    <div className={cardClassNames} {...props}>\n      {props.children}\n    </div>\n  );\n};\n\nconst CARD_DIVIDER__CLASS_NAMES = 'card-divider';\n\n/**\n * The Divider is used to separate two main parts of the Card like the Header\n * and the Body or the Body and the Footer.\n */\nexport const Divider = ({ className, ...props }) => {\n  const dividerClassNames = classNames(CARD_DIVIDER__CLASS_NAMES, className);\n  return <div className={dividerClassNames} {...props} />;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/cards/Card.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport './Loading.css';\n\nconst LOADING__CLASS_NAMES = 'loading';\n\n/**\n * The Login component is used to display that we are waiting for some\n * asynchronous process to finish like a request to a server.\n */\nexport const Loading = ({ className, ...props }) => {\n  const loadingClassNames = classNames(LOADING__CLASS_NAMES, className);\n  return (\n    <div className={loadingClassNames} {...props}>\n      <div />\n      <div />\n      <div />\n    </div>\n  );\n};\n\nexport class LoadingProvider extends Component {\n  getChildContext() {\n    return {\n      LoadingProvider_LOADING: this.props.loading\n    };\n  }\n  render() {\n    return this.props.children;\n  }\n}\nLoadingProvider.childContextTypes = {\n  LoadingProvider_LOADING: PropTypes.bool.isRequired\n};\n\nexport const LoadingConsumer = (props, context) => {\n  const { render, children = render } = props;\n  const loading = context.LoadingProvider_LOADING;\n  return children(loading);\n};\nLoadingConsumer.contextTypes = {\n  LoadingProvider_LOADING: PropTypes.bool\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loading/Loading.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n// See the knowledge base document for more information regarding errors\n\nexport const UNKNOWN_ERROR = 1000;\nexport const UNSUPPORTED_STATE = 1001;\nexport const RENDERING_ERROR = 1002;\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/errors.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const SINGLE_LINE = 'SINGLE_LINE';\nexport const TWO_LINES = 'TWO_LINES';\nexport const THREE_LINES = 'THREE_LINES';\n\nexport const LIST_WITH_SEPARATOR__KIND = 'list--separated';\nexport const LIST_WITH_HIGHLIGHT__KIND = 'list--highlighted';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/ListConstants.js","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/PathUtils.js\n// module id = 14\n// module chunks = 0","export var addLeadingSlash = function addLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n  return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n  return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n  var pathname = path || '/';\n  var search = '';\n  var hash = '';\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substr(hashIndex);\n    pathname = pathname.substr(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substr(searchIndex);\n    pathname = pathname.substr(0, searchIndex);\n  }\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nexport var createPath = function createPath(location) {\n  var pathname = location.pathname,\n      search = location.search,\n      hash = location.hash;\n\n\n  var path = pathname || '/';\n\n  if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n  return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/PathUtils.js\n// module id = 15\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L } from '../spacing/SpacingConstants';\n\nimport './ErrorCard.css';\n\nconst propTypes = {\n  code: PropTypes.number.isRequired,\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string.isRequired\n};\n\nconst ERRORCARD__CLASS_NAMES = 'errorcard';\nconst ERRORCARD_CONTAINER__CLASS_NAMES = 'errorcard-container';\nconst ERRORCARD_TITLE__CLASS_NAMES = 'title-l';\n\n/**\n * The ErrorCard component is used to display errors.\n */\nexport const ErrorCard = ({ className, code, title, message, ...props }) => {\n  const errorCardClassNames = classNames(ERRORCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={errorCardClassNames}>\n      <Spacing top={L} right={L} bottom={L} left={L}>\n        <div className={ERRORCARD_CONTAINER__CLASS_NAMES}>\n          <Spacing top={M} right={M} bottom={M} left={M}>\n            <h1 className={ERRORCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          </Spacing>\n          <p>{`${message} (code: ${code})`}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nErrorCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\n/**\n * The dispatcher creator is a function which will create a new dispatcher\n * initialized thanks to the following parameters:\n *\n * First, the finite state machine defining all the states and transitions in\n * the stateful component. Second, the reducer used to define the behavior of\n * each transition, allowing the stateful component to move from one state to\n * another and finally, the initial state of the finite state machine.\n *\n * It will then return a dispatcher which will ensure that the reducer cannot\n * be called to execute an action which is not defined on the current state\n * starting with the initial state. It will also make sure that the new state\n * computed by the reducer is accessible from the current state with the action\n * that the reducer had to execute.\n *\n * Failure to comply with those requirements will result in an error logged in\n * the console and no change will be applied to the returned state.\n */\nexport const dispatcherCreator = (FSM, reducer, INITIAL__STATE) => (\n  prevState = { stateId: INITIAL__STATE },\n  props,\n  action\n) => {\n  let transitions = FSM[prevState.stateId];\n  const newPotentialState = transitions[action.kind];\n  if (newPotentialState) {\n    const newState = reducer(prevState, props, action);\n    if (newPotentialState.indexOf(newState.stateId) !== -1) {\n      if (FSM[newState.stateId]) {\n        return newState;\n      } else {\n        console.error(`The state ${newState.stateId} does not exist.`);\n      }\n    } else {\n      console.error(\n        `The state '${newState.stateId}' should not be accessible from ${\n          prevState.stateId\n        } with the transition ${action.kind}.`\n      );\n    }\n  } else {\n    console.error(\n      `The state '${prevState.stateId}' does not support the transition '${action.kind}'.`\n    );\n  }\n  return prevState;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/common/dispatcherCreator.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 18\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = parsePath(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/LocationUtils.js\n// module id = 19\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\n\nimport { SINGLE_LINE, TWO_LINES, THREE_LINES } from './ListConstants';\n\nimport './List.css';\nimport { LIGHT, EXTRA_SMALL } from '../text/TextConstants';\n\nconst TILE_MAINICON__CLASS_NAMES = 'tile-mainicon';\n\nconst mainIconPropTypes = {};\n\n/**\n * The main icon is used to display an image before the main text.\n */\nexport const MainIcon = ({ className, ...props }) => {\n  const mainIconClassNames = classNames(TILE_MAINICON__CLASS_NAMES, className);\n  return <div className={mainIconClassNames} {...props} />;\n};\nMainIcon.propTypes = mainIconPropTypes;\n\nconst TILE_ADDITIONALICON__CLASS_NAMES = 'tile-additionalicon';\n\nconst additionalIconPropTypes = {};\n\n/**\n * The additional icon is used to display images after the main text.\n */\nexport const AdditionalIcon = ({ className, ...props }) => {\n  const additionalIconClassNames = classNames(TILE_ADDITIONALICON__CLASS_NAMES, className);\n  return <div className={additionalIconClassNames} {...props} />;\n};\nAdditionalIcon.propTypes = additionalIconPropTypes;\n\nconst TILE_MAINTEXT__CLASS_NAMES = 'tile-maintext';\n\nconst mainTextPropTypes = {\n  children: PropTypes.string\n};\n\n/**\n * The MainText component is used as the main text content of a tile.\n */\nexport const MainText = ({ className, children, ...props }) => {\n  const mainTextClassNames = classNames(TILE_MAINTEXT__CLASS_NAMES, className);\n  return (\n    <Text className={mainTextClassNames} {...props}>\n      {children}\n    </Text>\n  );\n};\nMainText.propTypes = mainTextPropTypes;\n\nconst TILE_ADDITIONALTEXT__CLASS_NAMES = 'tile-additionaltext';\n\nconst additionalTextPropTypes = {\n  children: PropTypes.string\n};\n\n/**\n * The AdditionalText component is used as the additional text content of a tile.\n */\nexport const AdditionalText = ({ className, children, ...props }) => {\n  const additionalTextClassNames = classNames(TILE_ADDITIONALTEXT__CLASS_NAMES, className);\n  return (\n    <Text className={additionalTextClassNames} {...props} size={EXTRA_SMALL} weight={LIGHT}>\n      {children}\n    </Text>\n  );\n};\nAdditionalText.propTypes = additionalTextPropTypes;\n\nconst TILE__CLASS_NAMES = 'tile';\nconst TILE__SINGLELINE__CLASS_NAMES = 'tile--singleline';\nconst TILE__TWOLINE__CLASS_NAMES = 'tile--twoline';\nconst TILE__THREELINE__CLASS_NAMES = 'tile--threeline';\n\nconst tilePropTypes = {\n  kind: PropTypes.oneOf([SINGLE_LINE, TWO_LINES, THREE_LINES]).isRequired\n};\n\n/**\n * The SingleLineTile is used to represent one line of the list component. It\n * can display a main icon, some text and additional icons. The text displayed\n * can only use one line for the main text.\n */\nexport const Tile = ({ className, kind, ...props }) => {\n  let kindClassName = TILE__SINGLELINE__CLASS_NAMES;\n  if (kind === TWO_LINES) {\n    kindClassName = TILE__TWOLINE__CLASS_NAMES;\n  } else if (kind === THREE_LINES) {\n    kindClassName = TILE__THREELINE__CLASS_NAMES;\n  }\n  const tileClassNames = classNames(TILE__CLASS_NAMES, kindClassName, className);\n  return <li className={tileClassNames} {...props} />;\n};\nTile.propTypes = tilePropTypes;\n\nconst LIST__CLASS_NAMES = 'list';\n\nconst listPropTypes = {\n  kind: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n  children: PropTypes.oneOfType([PropTypes.arrayOf(Tile), PropTypes.objectOf(Tile)])\n};\nconst listDefaultProps = {\n  kind: ''\n};\n\n/**\n * The List component is used to display a list of elements.\n *\n * Those elements can be separated by a line by using LIST_WITH_SEPARATOR__KIND\n * in the property kind. You can also add some highlight to the element over\n * which the mouse is located with LIST_WITH_HIGHLIGHT__KIND. Both properties\n * can be used at the same time.\n *\n * The List component can only have ListItem children.\n */\nexport const List = ({ children, className, kind, ...props }) => {\n  const kinds = computeKinds(kind);\n  const listClassNames = classNames(LIST__CLASS_NAMES, ...kinds, className);\n  return (\n    <ul className={listClassNames} {...props}>\n      <Spacing top={S} bottom={S}>\n        {children}\n      </Spacing>\n    </ul>\n  );\n};\nList.propTypes = listPropTypes;\nList.defaultProps = listDefaultProps;\n\n/**\n * Computes the kind ot the link.\n * @param kind The kind (which can be an array or a string)\n * @return The computed kind\n */\nconst computeKinds = kind => {\n  let kinds = [];\n  if (Array.isArray(kind)) {\n    kinds = kind;\n  } else if (typeof kind === 'string') {\n    kinds.push(kind);\n  }\n  return kinds;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/list/List.js","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/regenerator/index.js\n// module id = 21\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 22\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n  var location = void 0;\n  if (typeof path === 'string') {\n    // Two-arg form: push(path, state)\n    location = (0, _PathUtils.parsePath)(path);\n    location.state = state;\n  } else {\n    // One-arg form: push(location)\n    location = _extends({}, path);\n\n    if (location.pathname === undefined) location.pathname = '';\n\n    if (location.search) {\n      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n    } else {\n      location.search = '';\n    }\n\n    if (location.hash) {\n      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n    } else {\n      location.hash = '';\n    }\n\n    if (state !== undefined && location.state === undefined) location.state = state;\n  }\n\n  try {\n    location.pathname = decodeURI(location.pathname);\n  } catch (e) {\n    if (e instanceof URIError) {\n      throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n    } else {\n      throw e;\n    }\n  }\n\n  if (key) location.key = key;\n\n  if (currentLocation) {\n    // Resolve incomplete/relative pathname relative to current location.\n    if (!location.pathname) {\n      location.pathname = currentLocation.pathname;\n    } else if (location.pathname.charAt(0) !== '/') {\n      location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n    }\n  } else {\n    // When there is no prior location and pathname is empty, set it to /\n    if (!location.pathname) {\n      location.pathname = '/';\n    }\n  }\n\n  return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/LocationUtils.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createTransitionManager.js\n// module id = 24\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Router from 'react-router/es/Router';\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Router.js\n// module id = 25\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n  _inherits(Router, _React$Component);\n\n  function Router() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Router);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props.history.location.pathname)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Router.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        history: this.props.history,\n        route: {\n          location: this.props.history.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Router.prototype.computeMatch = function computeMatch(pathname) {\n    return {\n      path: '/',\n      url: '/',\n      params: {},\n      isExact: pathname === '/'\n    };\n  };\n\n  Router.prototype.componentWillMount = function componentWillMount() {\n    var _this2 = this;\n\n    var _props = this.props,\n        children = _props.children,\n        history = _props.history;\n\n\n    invariant(children == null || React.Children.count(children) === 1, 'A <Router> may have only one child element');\n\n    // Do this here so we can setState when a <Redirect> changes the\n    // location in componentWillMount. This happens e.g. when doing\n    // server rendering using a <StaticRouter>.\n    this.unlisten = history.listen(function () {\n      _this2.setState({\n        match: _this2.computeMatch(history.location.pathname)\n      });\n    });\n  };\n\n  Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    warning(this.props.history === nextProps.history, 'You cannot change <Router history>');\n  };\n\n  Router.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.unlisten();\n  };\n\n  Router.prototype.render = function render() {\n    var children = this.props.children;\n\n    return children ? React.Children.only(children) : null;\n  };\n\n  return Router;\n}(React.Component);\n\nRouter.propTypes = {\n  history: PropTypes.object.isRequired,\n  children: PropTypes.node\n};\nRouter.contextTypes = {\n  router: PropTypes.object\n};\nRouter.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Router.js\n// module id = 26\n// module chunks = 0","import pathToRegexp from 'path-to-regexp';\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n  var cacheKey = '' + options.end + options.strict + options.sensitive;\n  var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n  if (cache[pattern]) return cache[pattern];\n\n  var keys = [];\n  var re = pathToRegexp(pattern, keys, options);\n  var compiledPattern = { re: re, keys: keys };\n\n  if (cacheCount < cacheLimit) {\n    cache[pattern] = compiledPattern;\n    cacheCount++;\n  }\n\n  return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (typeof options === 'string') options = { path: options };\n\n  var _options = options,\n      _options$path = _options.path,\n      path = _options$path === undefined ? '/' : _options$path,\n      _options$exact = _options.exact,\n      exact = _options$exact === undefined ? false : _options$exact,\n      _options$strict = _options.strict,\n      strict = _options$strict === undefined ? false : _options$strict,\n      _options$sensitive = _options.sensitive,\n      sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n  var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n      re = _compilePath.re,\n      keys = _compilePath.keys;\n\n  var match = re.exec(pathname);\n\n  if (!match) return null;\n\n  var url = match[0],\n      values = match.slice(1);\n\n  var isExact = pathname === url;\n\n  if (exact && !isExact) return null;\n\n  return {\n    path: path, // the path pattern used to match\n    url: path === '/' && url === '' ? '/' : url, // the matched portion of the URL\n    isExact: isExact, // whether or not we matched exactly\n    params: keys.reduce(function (memo, key, index) {\n      memo[key.name] = values[index];\n      return memo;\n    }, {})\n  };\n};\n\nexport default matchPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/matchPath.js\n// module id = 27\n// module chunks = 0","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n  var prompt = null;\n\n  var setPrompt = function setPrompt(nextPrompt) {\n    warning(prompt == null, 'A history supports only one prompt at a time');\n\n    prompt = nextPrompt;\n\n    return function () {\n      if (prompt === nextPrompt) prompt = null;\n    };\n  };\n\n  var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n    // TODO: If another transition starts while we're still confirming\n    // the previous one, we may end up in a weird state. Figure out the\n    // best way to handle this.\n    if (prompt != null) {\n      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n      if (typeof result === 'string') {\n        if (typeof getUserConfirmation === 'function') {\n          getUserConfirmation(result, callback);\n        } else {\n          warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n          callback(true);\n        }\n      } else {\n        // Return false from a transition hook to cancel the transition.\n        callback(result !== false);\n      }\n    } else {\n      callback(true);\n    }\n  };\n\n  var listeners = [];\n\n  var appendListener = function appendListener(fn) {\n    var isActive = true;\n\n    var listener = function listener() {\n      if (isActive) fn.apply(undefined, arguments);\n    };\n\n    listeners.push(listener);\n\n    return function () {\n      isActive = false;\n      listeners = listeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  };\n\n  var notifyListeners = function notifyListeners() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    listeners.forEach(function (listener) {\n      return listener.apply(undefined, args);\n    });\n  };\n\n  return {\n    setPrompt: setPrompt,\n    confirmTransitionTo: confirmTransitionTo,\n    appendListener: appendListener,\n    notifyListeners: notifyListeners\n  };\n};\n\nexport default createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createTransitionManager.js\n// module id = 28\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Loading } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD } from '../text/TextConstants';\n\nimport {\n  BUTTON_DANGER__KIND,\n  BUTTON_DEFAULT__KIND,\n  BUTTON_PRIMARY__KIND,\n  BUTTON_SUCCESS__KIND,\n  BUTTON_WARNING__KIND\n} from './ButtonConstants';\n\nimport './Button.css';\n\nconst propTypes = {\n  kind: PropTypes.oneOf([\n    BUTTON_DANGER__KIND,\n    BUTTON_DEFAULT__KIND,\n    BUTTON_PRIMARY__KIND,\n    BUTTON_SUCCESS__KIND,\n    BUTTON_WARNING__KIND\n  ]),\n  loading: PropTypes.bool\n};\nconst defaultProps = {\n  kind: BUTTON_DEFAULT__KIND\n};\n\nconst BUTTON__CLASS_NAMES = 'button';\nconst BUTTON__LOADING__CLASS_NAMES = 'button--loading';\nconst BUTTON_CONTAINER__CLASS_NAMES = 'button-container';\nconst BUTTON_LOADINGINDICATOR__CLASS_NAMES = 'button-loadingindicator';\nconst BUTTON_LABEL__CLASS_NAMES = 'button-label';\n\n/**\n * The button component.\n */\nexport const Button = ({ className, kind, loading, ...props }) => {\n  let buttonClassNames = classNames(BUTTON__CLASS_NAMES, className);\n  if (loading) {\n    buttonClassNames = classNames(buttonClassNames, BUTTON__LOADING__CLASS_NAMES);\n  } else {\n    const kindClassNames = getKindClassNames(kind);\n    buttonClassNames = classNames(buttonClassNames, kindClassNames);\n  }\n\n  return (\n    <button className={buttonClassNames} {...props} disabled={loading}>\n      <Spacing right={M} left={M}>\n        <div className={BUTTON_CONTAINER__CLASS_NAMES}>\n          <Loading className={BUTTON_LOADINGINDICATOR__CLASS_NAMES} />\n          <Text className={BUTTON_LABEL__CLASS_NAMES} weight={SEMI_BOLD}>\n            {props.children}\n          </Text>\n        </div>\n      </Spacing>\n    </button>\n  );\n};\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nconst BUTTON_DEFAULT_KIND__CLASS_NAMES = 'button--default';\nconst BUTTON_PRIMARY_KIND__CLASS_NAMES = 'button--primary';\nconst BUTTON_SUCCESS_KIND__CLASS_NAMES = 'button--success';\nconst BUTTON_WARNING_KIND__CLASS_NAMES = 'button--warning';\nconst BUTTON_DANGER_KIND__CLASS_NAMES = 'button--danger';\n\n/**\n * Computes the name of the kind class from the given kind.\n * @param kind The kind of the button\n * @returns The class names for the given kind\n */\nconst getKindClassNames = kind => {\n  let kindClassNames;\n  switch (kind) {\n    case BUTTON_DEFAULT__KIND:\n      kindClassNames = BUTTON_DEFAULT_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_PRIMARY__KIND:\n      kindClassNames = BUTTON_PRIMARY_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_SUCCESS__KIND:\n      kindClassNames = BUTTON_SUCCESS_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_WARNING__KIND:\n      kindClassNames = BUTTON_WARNING_KIND__CLASS_NAMES;\n      break;\n    case BUTTON_DANGER__KIND:\n      kindClassNames = BUTTON_DANGER_KIND__CLASS_NAMES;\n      break;\n    default:\n      kindClassNames = BUTTON_DEFAULT_KIND__CLASS_NAMES;\n      break;\n  }\n  return kindClassNames;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/Button.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n  try {\n    return obj.then;\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nfunction tryCallOne(fn, a) {\n  try {\n    return fn(a);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\nfunction tryCallTwo(fn, a, b) {\n  try {\n    fn(a, b);\n  } catch (ex) {\n    LAST_ERROR = ex;\n    return IS_ERROR;\n  }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n  if (typeof this !== 'object') {\n    throw new TypeError('Promises must be constructed via new');\n  }\n  if (typeof fn !== 'function') {\n    throw new TypeError('Promise constructor\\'s argument is not a function');\n  }\n  this._75 = 0;\n  this._83 = 0;\n  this._18 = null;\n  this._38 = null;\n  if (fn === noop) return;\n  doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  if (this.constructor !== Promise) {\n    return safeThen(this, onFulfilled, onRejected);\n  }\n  var res = new Promise(noop);\n  handle(this, new Handler(onFulfilled, onRejected, res));\n  return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n  return new self.constructor(function (resolve, reject) {\n    var res = new Promise(noop);\n    res.then(resolve, reject);\n    handle(self, new Handler(onFulfilled, onRejected, res));\n  });\n}\nfunction handle(self, deferred) {\n  while (self._83 === 3) {\n    self = self._18;\n  }\n  if (Promise._47) {\n    Promise._47(self);\n  }\n  if (self._83 === 0) {\n    if (self._75 === 0) {\n      self._75 = 1;\n      self._38 = deferred;\n      return;\n    }\n    if (self._75 === 1) {\n      self._75 = 2;\n      self._38 = [self._38, deferred];\n      return;\n    }\n    self._38.push(deferred);\n    return;\n  }\n  handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n  asap(function() {\n    var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      if (self._83 === 1) {\n        resolve(deferred.promise, self._18);\n      } else {\n        reject(deferred.promise, self._18);\n      }\n      return;\n    }\n    var ret = tryCallOne(cb, self._18);\n    if (ret === IS_ERROR) {\n      reject(deferred.promise, LAST_ERROR);\n    } else {\n      resolve(deferred.promise, ret);\n    }\n  });\n}\nfunction resolve(self, newValue) {\n  // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n  if (newValue === self) {\n    return reject(\n      self,\n      new TypeError('A promise cannot be resolved with itself.')\n    );\n  }\n  if (\n    newValue &&\n    (typeof newValue === 'object' || typeof newValue === 'function')\n  ) {\n    var then = getThen(newValue);\n    if (then === IS_ERROR) {\n      return reject(self, LAST_ERROR);\n    }\n    if (\n      then === self.then &&\n      newValue instanceof Promise\n    ) {\n      self._83 = 3;\n      self._18 = newValue;\n      finale(self);\n      return;\n    } else if (typeof then === 'function') {\n      doResolve(then.bind(newValue), self);\n      return;\n    }\n  }\n  self._83 = 1;\n  self._18 = newValue;\n  finale(self);\n}\n\nfunction reject(self, newValue) {\n  self._83 = 2;\n  self._18 = newValue;\n  if (Promise._71) {\n    Promise._71(self, newValue);\n  }\n  finale(self);\n}\nfunction finale(self) {\n  if (self._75 === 1) {\n    handle(self, self._38);\n    self._38 = null;\n  }\n  if (self._75 === 2) {\n    for (var i = 0; i < self._38.length; i++) {\n      handle(self, self._38[i]);\n    }\n    self._38 = null;\n  }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n  var done = false;\n  var res = tryCallTwo(fn, function (value) {\n    if (done) return;\n    done = true;\n    resolve(promise, value);\n  }, function (reason) {\n    if (done) return;\n    done = true;\n    reject(promise, reason);\n  });\n  if (!done && res === IS_ERROR) {\n    done = true;\n    reject(promise, LAST_ERROR);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/core.js\n// module id = 30\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyObject.js\n// module id = 31\n// module chunks = 0","function isAbsolute(pathname) {\n  return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n    list[i] = list[k];\n  }\n\n  list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var toParts = to && to.split('/') || [];\n  var fromParts = from && from.split('/') || [];\n\n  var isToAbs = to && isAbsolute(to);\n  var isFromAbs = from && isAbsolute(from);\n  var mustEndAbs = isToAbs || isFromAbs;\n\n  if (to && isAbsolute(to)) {\n    // to is absolute\n    fromParts = toParts;\n  } else if (toParts.length) {\n    // to is relative, drop the filename\n    fromParts.pop();\n    fromParts = fromParts.concat(toParts);\n  }\n\n  if (!fromParts.length) return '/';\n\n  var hasTrailingSlash = void 0;\n  if (fromParts.length) {\n    var last = fromParts[fromParts.length - 1];\n    hasTrailingSlash = last === '.' || last === '..' || last === '';\n  } else {\n    hasTrailingSlash = false;\n  }\n\n  var up = 0;\n  for (var i = fromParts.length; i >= 0; i--) {\n    var part = fromParts[i];\n\n    if (part === '.') {\n      spliceOne(fromParts, i);\n    } else if (part === '..') {\n      spliceOne(fromParts, i);\n      up++;\n    } else if (up) {\n      spliceOne(fromParts, i);\n      up--;\n    }\n  }\n\n  if (!mustEndAbs) for (; up--; up) {\n    fromParts.unshift('..');\n  }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n  var result = fromParts.join('/');\n\n  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n  return result;\n}\n\nexport default resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/resolve-pathname/index.js\n// module id = 32\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n  if (a === b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return valueEqual(item, b[index]);\n    });\n  }\n\n  var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n  var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n  if (aType !== bType) return false;\n\n  if (aType === 'object') {\n    var aValue = a.valueOf();\n    var bValue = b.valueOf();\n\n    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n\n    if (aKeys.length !== bKeys.length) return false;\n\n    return aKeys.every(function (key) {\n      return valueEqual(a[key], b[key]);\n    });\n  }\n\n  return false;\n}\n\nexport default valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/value-equal/index.js\n// module id = 33\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/DOMUtils.js\n// module id = 34\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware <a>.\n */\n\nvar Link = function (_React$Component) {\n  _inherits(Link, _React$Component);\n\n  function Link() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Link);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n      if (_this.props.onClick) _this.props.onClick(event);\n\n      if (!event.defaultPrevented && // onClick prevented default\n      event.button === 0 && // ignore right clicks\n      !_this.props.target && // let browser handle \"target=_blank\" etc.\n      !isModifiedEvent(event) // ignore clicks with modifier keys\n      ) {\n          event.preventDefault();\n\n          var history = _this.context.router.history;\n          var _this$props = _this.props,\n              replace = _this$props.replace,\n              to = _this$props.to;\n\n\n          if (replace) {\n            history.replace(to);\n          } else {\n            history.push(to);\n          }\n        }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Link.prototype.render = function render() {\n    var _props = this.props,\n        replace = _props.replace,\n        to = _props.to,\n        innerRef = _props.innerRef,\n        props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars\n\n    invariant(this.context.router, 'You should not use <Link> outside a <Router>');\n\n    var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);\n\n    return React.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n  };\n\n  return Link;\n}(React.Component);\n\nLink.propTypes = {\n  onClick: PropTypes.func,\n  target: PropTypes.string,\n  replace: PropTypes.bool,\n  to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n  innerRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n};\nLink.defaultProps = {\n  replace: false\n};\nLink.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      push: PropTypes.func.isRequired,\n      replace: PropTypes.func.isRequired,\n      createHref: PropTypes.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\nexport default Link;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Link.js\n// module id = 35\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Route from 'react-router/es/Route';\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Route.js\n// module id = 36\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport matchPath from './matchPath';\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n  return React.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n  _inherits(Route, _React$Component);\n\n  function Route() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Route);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n      match: _this.computeMatch(_this.props, _this.context.router)\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Route.prototype.getChildContext = function getChildContext() {\n    return {\n      router: _extends({}, this.context.router, {\n        route: {\n          location: this.props.location || this.context.router.route.location,\n          match: this.state.match\n        }\n      })\n    };\n  };\n\n  Route.prototype.computeMatch = function computeMatch(_ref, router) {\n    var computedMatch = _ref.computedMatch,\n        location = _ref.location,\n        path = _ref.path,\n        strict = _ref.strict,\n        exact = _ref.exact,\n        sensitive = _ref.sensitive;\n\n    if (computedMatch) return computedMatch; // <Switch> already computed the match for us\n\n    invariant(router, 'You should not use <Route> or withRouter() outside a <Router>');\n\n    var route = router.route;\n\n    var pathname = (location || route.location).pathname;\n\n    return path ? matchPath(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }) : route.match;\n  };\n\n  Route.prototype.componentWillMount = function componentWillMount() {\n    warning(!(this.props.component && this.props.render), 'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored');\n\n    warning(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored');\n\n    warning(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored');\n  };\n\n  Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n    warning(!(nextProps.location && !this.props.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    warning(!(!nextProps.location && this.props.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n    this.setState({\n      match: this.computeMatch(nextProps, nextContext.router)\n    });\n  };\n\n  Route.prototype.render = function render() {\n    var match = this.state.match;\n    var _props = this.props,\n        children = _props.children,\n        component = _props.component,\n        render = _props.render;\n    var _context$router = this.context.router,\n        history = _context$router.history,\n        route = _context$router.route,\n        staticContext = _context$router.staticContext;\n\n    var location = this.props.location || route.location;\n    var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n    return component ? // component prop gets first priority, only called if there's a match\n    match ? React.createElement(component, props) : null : render ? // render prop is next, only called if there's a match\n    match ? render(props) : null : children ? // children come last, always called\n    typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? React.Children.only(children) : null : null;\n  };\n\n  return Route;\n}(React.Component);\n\nRoute.propTypes = {\n  computedMatch: PropTypes.object, // private, from <Switch>\n  path: PropTypes.string,\n  exact: PropTypes.bool,\n  strict: PropTypes.bool,\n  sensitive: PropTypes.bool,\n  component: PropTypes.func,\n  render: PropTypes.func,\n  children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n  location: PropTypes.object\n};\nRoute.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.object.isRequired,\n    route: PropTypes.object.isRequired,\n    staticContext: PropTypes.object\n  })\n};\nRoute.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Route.js\n// module id = 37\n// module chunks = 0","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n  return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n  return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n  return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n  var ua = window.navigator.userAgent;\n\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n  return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n  return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n  return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/DOMUtils.js\n// module id = 38\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const DASHBOARD_LOADED__STATE = 'DASHBOARD_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_DASHBOARD__ACTION = 'HANDLE_FETCHED_DASHBOARD__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_DASHBOARD__ACTION: [DASHBOARD_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  DASHBOARD_LOADED__STATE: {},\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const NO_PROJECTS_LOADED__STATE = 'NO_PROJECTS_LOADED__STATE';\nexport const PROJECTS_LOADED__STATE = 'PROJECTS_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_PROJECTS__ACTION = 'HANDLE_FETCHED_PROJECTS__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_PROJECTS__ACTION: [NO_PROJECTS_LOADED__STATE, PROJECTS_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  NO_PROJECTS_LOADED__STATE: {},\n  PROJECTS_LOADED__STATE: {},\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const BUTTON_DEFAULT__KIND = 'default';\nexport const BUTTON_PRIMARY__KIND = 'primary';\nexport const BUTTON_SUCCESS__KIND = 'success';\nexport const BUTTON_WARNING__KIND = 'warning';\nexport const BUTTON_DANGER__KIND = 'danger';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/buttons/ButtonConstants.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\n\nimport './Form.css';\n\nconst FORM__CLASS_NAMES = 'form';\n\n/**\n * The Form component.\n */\nexport const Form = ({ children, className, ...props }) => {\n  const formClassNames = classNames(FORM__CLASS_NAMES, className);\n  return (\n    <form className={formClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        {children}\n      </Spacing>\n    </form>\n  );\n};\n\nconst FIELD__CLASS_NAMES = 'field';\n\n/**\n * The Field component used to contain the label, the description and the widget.\n */\nexport const Field = ({ children, className, ...props }) => {\n  const fieldClassNames = classNames(FIELD__CLASS_NAMES, className);\n  return (\n    <div className={fieldClassNames} {...props}>\n      <Spacing bottom={M}>{children}</Spacing>\n    </div>\n  );\n};\n\nconst LABEL__CLASS_NAMES = 'label body-l';\n\n/**\n * The Label component.\n */\nexport const Label = ({ className, ...props }) => {\n  const labelClassNames = classNames(LABEL__CLASS_NAMES, className);\n  return (\n    <Spacing bottom={S}>\n      <label className={labelClassNames} {...props} />\n    </Spacing>\n  );\n};\n\nconst DESCRIPTION__CLASS_NAMES = 'description caption-m';\n\n/**\n * The Description of the widget.\n */\nexport const Description = ({ className, ...props }) => {\n  const descriptionClassNames = classNames(DESCRIPTION__CLASS_NAMES, className);\n  return (\n    <Spacing bottom={S}>\n      <p className={descriptionClassNames} {...props} />\n    </Spacing>\n  );\n};\n\nconst TEXTFIELD__CLASS_NAMES = 'textfield';\n\n/**\n * The Text widget.\n */\nexport const TextField = ({ className, ...props }) => {\n  const textClassNames = classNames(TEXTFIELD__CLASS_NAMES, className);\n  return <input className={textClassNames} type=\"text\" {...props} />;\n};\n\nconst ACTION_GROUP__CLASS_NAMES = 'actiongroup';\n\n/**\n * The group of actions of the form, for example, the submit button.\n */\nexport const ActionGroup = ({ children, className, ...props }) => {\n  const actionGroupClassNames = classNames(ACTION_GROUP__CLASS_NAMES, className);\n  return (\n    <div className={actionGroupClassNames} {...props}>\n      <Spacing top={M}>{children}</Spacing>\n    </div>\n  );\n};\n\nconst ERROR_GROUP__CLASS_NAMES = 'errorgroup';\n\n/**\n * The group of errors of the form.\n */\nexport const ErrorGroup = ({ children, className, ...props }) => {\n  const errorGroupClassNames = classNames(ERROR_GROUP__CLASS_NAMES, className);\n  return (\n    <div className={errorGroupClassNames} {...props}>\n      <Spacing top={S} bottom={S}>\n        {children}\n      </Spacing>\n    </div>\n  );\n};\n\nconst ERROR__CLASS_NAMES = 'error';\n\n/**\n * An error to be displayed in the form.\n */\nexport const Error = ({ children, className, ...props }) => {\n  const errorClassNames = classNames(ERROR__CLASS_NAMES, className);\n  return (\n    <div className={errorClassNames} {...props}>\n      <Spacing top={S}>{children}</Spacing>\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/form/Form.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const PRISTINE__STATE = 'PRISTINE__STATE';\nexport const MODIFIED__STATE = 'MODIFIED__STATE';\nexport const REDIRECT__STATE = 'REDIRECT__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const MODIFY_NAME__ACTION = 'MODIFY_NAME__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\nexport const HANDLE_CREATED_PROJECT__ACTION = 'HANDLE_CREATED_PROJECT__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [PRISTINE__STATE] },\n  PRISTINE__STATE: { MODIFY_NAME__ACTION: [MODIFIED__STATE] },\n  MODIFIED__STATE: {\n    MODIFY_NAME__ACTION: [MODIFIED__STATE],\n    HANDLE_ERROR__ACTION: [MODIFIED__STATE],\n    HANDLE_CREATED_PROJECT__ACTION: [REDIRECT__STATE]\n  },\n  REDIRECT__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectViewFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const LOADING__STATE = 'LOADING__STATE';\nexport const ERROR__STATE = 'ERROR__STATE';\nexport const PROJECT_LOADED__STATE = 'PROJECT_LOADED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_FETCHED_PROJECT__ACTION = 'HANDLE_FETCHED_PROJECT__ACTION';\nexport const HANDLE_FETCHED_PAGE__ACTION = 'HANDLE_FETCHED_PAGE__ACTION';\nexport const HANDLE_DESCRIPTION_UPDATED__ACTION = 'HANDLE_DESCRIPTION_UPDATED__ACTION';\nexport const HANDLE_ERROR__ACTION = 'HANDLE_ERROR__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [LOADING__STATE] },\n  LOADING__STATE: {\n    HANDLE_FETCHED_PROJECT__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_ERROR__ACTION: [ERROR__STATE]\n  },\n  PROJECT_LOADED__STATE: {\n    HANDLE_FETCHED_PROJECT__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_FETCHED_PAGE__ACTION: [PROJECT_LOADED__STATE],\n    HANDLE_DESCRIPTION_UPDATED__ACTION: [PROJECT_LOADED__STATE]\n  },\n  ERROR__STATE: {}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectViewFiniteStateMachine.js","// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n'use strict';\n\nif (typeof Promise === 'undefined') {\n  // Rejection tracking prevents a common issue where React gets into an\n  // inconsistent state due to an error, but it gets swallowed by a Promise,\n  // and the user has no idea what causes React's erratic future behavior.\n  require('promise/lib/rejection-tracking').enable();\n  window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n  require('raf').polyfill(global);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-scripts/config/polyfills.js\n// module id = 46\n// module chunks = 0","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n  ReferenceError,\n  TypeError,\n  RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n  enabled = false;\n  Promise._47 = null;\n  Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n  options = options || {};\n  if (enabled) disable();\n  enabled = true;\n  var id = 0;\n  var displayId = 0;\n  var rejections = {};\n  Promise._47 = function (promise) {\n    if (\n      promise._83 === 2 && // IS REJECTED\n      rejections[promise._56]\n    ) {\n      if (rejections[promise._56].logged) {\n        onHandled(promise._56);\n      } else {\n        clearTimeout(rejections[promise._56].timeout);\n      }\n      delete rejections[promise._56];\n    }\n  };\n  Promise._71 = function (promise, err) {\n    if (promise._75 === 0) { // not yet handled\n      promise._56 = id++;\n      rejections[promise._56] = {\n        displayId: null,\n        error: err,\n        timeout: setTimeout(\n          onUnhandled.bind(null, promise._56),\n          // For reference errors and type errors, this almost always\n          // means the programmer made a mistake, so log them after just\n          // 100ms\n          // otherwise, wait 2 seconds to see if they get handled\n          matchWhitelist(err, DEFAULT_WHITELIST)\n            ? 100\n            : 2000\n        ),\n        logged: false\n      };\n    }\n  };\n  function onUnhandled(id) {\n    if (\n      options.allRejections ||\n      matchWhitelist(\n        rejections[id].error,\n        options.whitelist || DEFAULT_WHITELIST\n      )\n    ) {\n      rejections[id].displayId = displayId++;\n      if (options.onUnhandled) {\n        rejections[id].logged = true;\n        options.onUnhandled(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      } else {\n        rejections[id].logged = true;\n        logError(\n          rejections[id].displayId,\n          rejections[id].error\n        );\n      }\n    }\n  }\n  function onHandled(id) {\n    if (rejections[id].logged) {\n      if (options.onHandled) {\n        options.onHandled(rejections[id].displayId, rejections[id].error);\n      } else if (!rejections[id].onUnhandled) {\n        console.warn(\n          'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n        );\n        console.warn(\n          '  This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n          rejections[id].displayId + '.'\n        );\n      }\n    }\n  }\n}\n\nfunction logError(id, error) {\n  console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n  var errStr = (error && (error.stack || error)) + '';\n  errStr.split('\\n').forEach(function (line) {\n    console.warn('  ' + line);\n  });\n}\n\nfunction matchWhitelist(error, list) {\n  return list.some(function (cls) {\n    return error instanceof cls;\n  });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/rejection-tracking.js\n// module id = 47\n// module chunks = 0","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n    if (!queue.length) {\n        requestFlush();\n        flushing = true;\n    }\n    // Equivalent to push, but avoids a function call.\n    queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n    while (index < queue.length) {\n        var currentIndex = index;\n        // Advance the index before calling the task. This ensures that we will\n        // begin flushing on the next task the task throws an error.\n        index = index + 1;\n        queue[currentIndex].call();\n        // Prevent leaking memory for long chains of recursive calls to `asap`.\n        // If we call `asap` within tasks scheduled by `asap`, the queue will\n        // grow, but to avoid an O(n) walk for every task we execute, we don't\n        // shift tasks off the queue after they have been executed.\n        // Instead, we periodically shift 1024 tasks off the queue.\n        if (index > capacity) {\n            // Manually shift all values starting at the index back to the\n            // beginning of the queue.\n            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n                queue[scan] = queue[scan + index];\n            }\n            queue.length -= index;\n            index = 0;\n        }\n    }\n    queue.length = 0;\n    index = 0;\n    flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n    requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n    requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n    var toggle = 1;\n    var observer = new BrowserMutationObserver(callback);\n    var node = document.createTextNode(\"\");\n    observer.observe(node, {characterData: true});\n    return function requestCall() {\n        toggle = -toggle;\n        node.data = toggle;\n    };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n    return function requestCall() {\n        // We dispatch a timeout with a specified delay of 0 for engines that\n        // can reliably accommodate that request. This will usually be snapped\n        // to a 4 milisecond delay, but once we're flushing, there's no delay\n        // between events.\n        var timeoutHandle = setTimeout(handleTimer, 0);\n        // However, since this timer gets frequently dropped in Firefox\n        // workers, we enlist an interval handle that will try to fire\n        // an event 20 times per second until it succeeds.\n        var intervalHandle = setInterval(handleTimer, 50);\n\n        function handleTimer() {\n            // Whichever timer succeeds will cancel both timers and\n            // execute the callback.\n            clearTimeout(timeoutHandle);\n            clearInterval(intervalHandle);\n            callback();\n        }\n    };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/asap/browser-raw.js\n// module id = 48\n// module chunks = 0","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 49\n// module chunks = 0","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n  var p = new Promise(Promise._44);\n  p._83 = 1;\n  p._18 = value;\n  return p;\n}\nPromise.resolve = function (value) {\n  if (value instanceof Promise) return value;\n\n  if (value === null) return NULL;\n  if (value === undefined) return UNDEFINED;\n  if (value === true) return TRUE;\n  if (value === false) return FALSE;\n  if (value === 0) return ZERO;\n  if (value === '') return EMPTYSTRING;\n\n  if (typeof value === 'object' || typeof value === 'function') {\n    try {\n      var then = value.then;\n      if (typeof then === 'function') {\n        return new Promise(then.bind(value));\n      }\n    } catch (ex) {\n      return new Promise(function (resolve, reject) {\n        reject(ex);\n      });\n    }\n  }\n  return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n    function res(i, val) {\n      if (val && (typeof val === 'object' || typeof val === 'function')) {\n        if (val instanceof Promise && val.then === Promise.prototype.then) {\n          while (val._83 === 3) {\n            val = val._18;\n          }\n          if (val._83 === 1) return res(i, val._18);\n          if (val._83 === 2) reject(val._18);\n          val.then(function (val) {\n            res(i, val);\n          }, reject);\n          return;\n        } else {\n          var then = val.then;\n          if (typeof then === 'function') {\n            var p = new Promise(then.bind(val));\n            p.then(function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n      }\n      args[i] = val;\n      if (--remaining === 0) {\n        resolve(args);\n      }\n    }\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    values.forEach(function(value){\n      Promise.resolve(value).then(resolve, reject);\n    });\n  });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/es6-extensions.js\n// module id = 50\n// module chunks = 0","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = 'status' in options ? options.status : 200\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 51\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { BrowserRouter } from 'react-router-dom';\n\nimport { App } from './components/app/App';\n\nimport './reset.css';\nimport './app.css';\n\n/**\n * The entry point of the application.\n */\nReactDOM.render(\n  <BrowserRouter basename={process.env.PUBLIC_URL || ''}>\n    <App />\n  </BrowserRouter>,\n  document.getElementById('root')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var m=require(\"object-assign\"),n=require(\"fbjs/lib/emptyObject\"),p=require(\"fbjs/lib/emptyFunction\"),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;c<b;c++)e+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[c+1]);b=Error(e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}\nvar z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};function A(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}A.prototype.isReactComponent={};A.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?y(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};A.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction B(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}function C(){}C.prototype=A.prototype;var D=B.prototype=new C;D.constructor=B;m(D,A.prototype);D.isPureReactComponent=!0;function E(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}var F=E.prototype=new C;F.constructor=E;m(F,A.prototype);F.unstable_isAsyncReactComponent=!0;F.render=function(){return this.props.children};var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,e){var c,d={},g=null,k=null;if(null!=b)for(c in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)H.call(b,c)&&!I.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var h=Array(f),l=0;l<f;l++)h[l]=arguments[l+2];d.children=h}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:k,props:d,_owner:G.current}}function K(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===r}\nfunction escape(a){var b={\"\\x3d\":\"\\x3d0\",\":\":\"\\x3d2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var L=/\\/+/g,M=[];function N(a,b,e,c){if(M.length){var d=M.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function O(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>M.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+Q(d,k);g+=P(d,f,e,c)}else if(null===a||\"undefined\"===typeof a?f=null:(f=x&&a[x]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=\nf.call(a),k=0;!(d=a.next()).done;)d=d.value,f=b+Q(d,k++),g+=P(d,f,e,c);else\"object\"===d&&(e=\"\"+a,y(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function R(a,b){a.func.call(a.context,b,a.count++)}\nfunction S(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?T(a,c,e,p.thatReturnsArgument):null!=a&&(K(a)&&(b=d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(L,\"$\\x26/\")+\"/\")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function T(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(L,\"$\\x26/\")+\"/\");b=N(b,g,c,d);null==a||P(a,\"\",S,b);O(b)}\nvar U={Children:{map:function(a,b,e){if(null==a)return a;var c=[];T(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=N(null,null,b,e);null==a||P(a,\"\",R,b);O(b)},count:function(a){return null==a?0:P(a,\"\",p.thatReturnsNull,null)},toArray:function(a){var b=[];T(a,b,null,p.thatReturnsArgument);return b},only:function(a){K(a)?void 0:y(\"143\");return a}},Component:A,PureComponent:B,unstable_AsyncComponent:E,Fragment:w,createElement:J,cloneElement:function(a,b,e){var c=m({},a.props),\nd=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)H.call(b,h)&&!I.hasOwnProperty(h)&&(c[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)c.children=e;else if(1<h){f=Array(h);for(var l=0;l<h;l++)f[l]=arguments[l+2];c.children=f}return{$$typeof:r,type:a.type,key:d,ref:g,props:c,_owner:k}},createFactory:function(a){var b=J.bind(null,a);b.type=a;return b},\nisValidElement:K,version:\"16.2.0\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:G,assign:m}},V=Object.freeze({default:U}),W=V&&U||V;module.exports=W[\"default\"]?W[\"default\"]:W;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/cjs/react.production.min.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-dom/index.js\n// module id = 54\n// module chunks = 0","/** @license React v16.2.0\n * react-dom.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),l=require(\"fbjs/lib/ExecutionEnvironment\"),B=require(\"object-assign\"),C=require(\"fbjs/lib/emptyFunction\"),ba=require(\"fbjs/lib/EventListener\"),da=require(\"fbjs/lib/getActiveElement\"),ea=require(\"fbjs/lib/shallowEqual\"),fa=require(\"fbjs/lib/containsNode\"),ia=require(\"fbjs/lib/focusNode\"),D=require(\"fbjs/lib/emptyObject\");\nfunction E(a){for(var b=arguments.length-1,c=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,d=0;d<b;d++)c+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[d+1]);b=Error(c+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}aa?void 0:E(\"227\");\nvar oa={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0};function pa(a,b){return(a&b)===b}\nvar ta={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=ta,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ua.hasOwnProperty(f)?E(\"48\",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:pa(h,b.MUST_USE_PROPERTY),\nhasBooleanValue:pa(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:pa(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:pa(h,b.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:pa(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:pa(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2<a.length&&(\"o\"===a[0]||\"O\"===a[0])&&(\"n\"===a[1]||\"N\"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case \"boolean\":return oa.hasOwnProperty(a)?a=!0:(b=wa(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a=\"data-\"===a||\"aria-\"===a),a;case \"undefined\":case \"number\":case \"string\":case \"object\":return!0;default:return!1}}function wa(a){return ua.hasOwnProperty(a)?ua[a]:null}\nvar xa=ta,ya=xa.MUST_USE_PROPERTY,K=xa.HAS_BOOLEAN_VALUE,za=xa.HAS_NUMERIC_VALUE,Aa=xa.HAS_POSITIVE_NUMERIC_VALUE,Ba=xa.HAS_OVERLOADED_BOOLEAN_VALUE,Ca=xa.HAS_STRING_BOOLEAN_VALUE,Da={Properties:{allowFullScreen:K,async:K,autoFocus:K,autoPlay:K,capture:Ba,checked:ya|K,cols:Aa,contentEditable:Ca,controls:K,\"default\":K,defer:K,disabled:K,download:Ba,draggable:Ca,formNoValidate:K,hidden:K,loop:K,multiple:ya|K,muted:ya|K,noValidate:K,open:K,playsInline:K,readOnly:K,required:K,reversed:K,rows:Aa,rowSpan:za,\nscoped:K,seamless:K,selected:ya|K,size:Aa,start:za,span:Aa,spellCheck:Ca,style:0,tabIndex:0,itemScope:K,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ca},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute(\"value\");\"number\"!==a.type||!1===a.hasAttribute(\"value\")?a.setAttribute(\"value\",\"\"+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&\na.setAttribute(\"value\",\"\"+b)}}},Ea=xa.HAS_STRING_BOOLEAN_VALUE,M={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},Ga={Properties:{autoReverse:Ea,externalResourcesRequired:Ea,preserveAlpha:Ea},DOMAttributeNames:{autoReverse:\"autoReverse\",externalResourcesRequired:\"externalResourcesRequired\",preserveAlpha:\"preserveAlpha\"},DOMAttributeNamespaces:{xlinkActuate:M.xlink,xlinkArcrole:M.xlink,xlinkHref:M.xlink,xlinkRole:M.xlink,xlinkShow:M.xlink,xlinkTitle:M.xlink,xlinkType:M.xlink,\nxmlBase:M.xml,xmlLang:M.xml,xmlSpace:M.xml}},Ha=/[\\-\\:]([a-z])/g;function Ia(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space\".split(\" \").forEach(function(a){var b=a.replace(Ha,\nIa);Ga.Properties[b]=0;Ga.DOMAttributeNames[b]=a});xa.injectDOMPropertyConfig(Da);xa.injectDOMPropertyConfig(Ga);\nvar P={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){\"function\"!==typeof a.invokeGuardedCallback?E(\"197\"):void 0;Ja=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Ja.apply(P,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){P.invokeGuardedCallback.apply(this,arguments);if(P.hasCaughtError()){var q=P.clearCaughtError();P._hasRethrowError||(P._hasRethrowError=!0,P._rethrowError=\nq)}},rethrowCaughtError:function(){return Ka.apply(P,arguments)},hasCaughtError:function(){return P._hasCaughtError},clearCaughtError:function(){if(P._hasCaughtError){var a=P._caughtError;P._caughtError=null;P._hasCaughtError=!1;return a}E(\"198\")}};function Ja(a,b,c,d,e,f,g,h,k){P._hasCaughtError=!1;P._caughtError=null;var q=Array.prototype.slice.call(arguments,3);try{b.apply(c,q)}catch(v){P._caughtError=v,P._hasCaughtError=!0}}\nfunction Ka(){if(P._hasRethrowError){var a=P._rethrowError;P._rethrowError=null;P._hasRethrowError=!1;throw a;}}var La=null,Ma={};\nfunction Na(){if(La)for(var a in Ma){var b=Ma[a],c=La.indexOf(a);-1<c?void 0:E(\"96\",a);if(!Oa[c]){b.extractEvents?void 0:E(\"97\",a);Oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Pa.hasOwnProperty(h)?E(\"99\",h):void 0;Pa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&Qa(k[e],g,h);e=!0}else f.registrationName?(Qa(f.registrationName,g,h),e=!0):e=!1;e?void 0:E(\"98\",d,a)}}}}\nfunction Qa(a,b,c){Ra[a]?E(\"100\",a):void 0;Ra[a]=b;Sa[a]=b.eventTypes[c].dependencies}var Oa=[],Pa={},Ra={},Sa={};function Ta(a){La?E(\"101\"):void 0;La=Array.prototype.slice.call(a);Na()}function Ua(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];Ma.hasOwnProperty(c)&&Ma[c]===d||(Ma[c]?E(\"102\",c):void 0,Ma[c]=d,b=!0)}b&&Na()}\nvar Va=Object.freeze({plugins:Oa,eventNameDispatchConfigs:Pa,registrationNameModules:Ra,registrationNameDependencies:Sa,possibleRegistrationNames:null,injectEventPluginOrder:Ta,injectEventPluginsByName:Ua}),Wa=null,Xa=null,Ya=null;function Za(a,b,c,d){b=a.type||\"unknown-event\";a.currentTarget=Ya(d);P.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}\nfunction $a(a,b){null==b?E(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function ab(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var bb=null;\nfunction cb(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Za(a,b,c[e],d[e]);else c&&Za(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function db(a){return cb(a,!0)}function gb(a){return cb(a,!1)}var hb={injectEventPluginOrder:Ta,injectEventPluginsByName:Ua};\nfunction ib(a,b){var c=a.stateNode;if(!c)return null;var d=Wa(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?E(\"231\",b,typeof c):void 0;\nreturn c}function jb(a,b,c,d){for(var e,f=0;f<Oa.length;f++){var g=Oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=$a(e,g))}return e}function kb(a){a&&(bb=$a(bb,a))}function lb(a){var b=bb;bb=null;b&&(a?ab(b,db):ab(b,gb),bb?E(\"95\"):void 0,P.rethrowCaughtError())}var mb=Object.freeze({injection:hb,getListener:ib,extractEvents:jb,enqueueEvents:kb,processEventQueue:lb}),nb=Math.random().toString(36).slice(2),Q=\"__reactInternalInstance$\"+nb,ob=\"__reactEventHandlers$\"+nb;\nfunction pb(a){if(a[Q])return a[Q];for(var b=[];!a[Q];)if(b.push(a),a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[Q];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[Q]);a=b.pop())c=d;return c}function qb(a){if(5===a.tag||6===a.tag)return a.stateNode;E(\"33\")}function rb(a){return a[ob]||null}\nvar sb=Object.freeze({precacheFiberNode:function(a,b){b[Q]=a},getClosestInstanceFromNode:pb,getInstanceFromNode:function(a){a=a[Q];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:qb,getFiberCurrentPropsFromNode:rb,updateFiberProps:function(a,b){a[ob]=b}});function tb(a){do a=a[\"return\"];while(a&&5!==a.tag);return a?a:null}function ub(a,b,c){for(var d=[];a;)d.push(a),a=tb(a);for(a=d.length;0<a--;)b(d[a],\"captured\",c);for(a=0;a<d.length;a++)b(d[a],\"bubbled\",c)}\nfunction vb(a,b,c){if(b=ib(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a)}function wb(a){a&&a.dispatchConfig.phasedRegistrationNames&&ub(a._targetInst,vb,a)}function xb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?tb(b):null;ub(b,vb,a)}}\nfunction yb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=ib(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a))}function zb(a){a&&a.dispatchConfig.registrationName&&yb(a._targetInst,null,a)}function Ab(a){ab(a,wb)}\nfunction Bb(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=tb(h))g++;h=0;for(var k=f;k;k=tb(k))h++;for(;0<g-h;)e=tb(e),g--;for(;0<h-g;)f=tb(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=tb(e);f=tb(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=tb(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=tb(d)}for(d=0;d<e.length;d++)yb(e[d],\"bubbled\",a);for(a=c.length;0<a--;)yb(c[a],\"captured\",b)}\nvar Cb=Object.freeze({accumulateTwoPhaseDispatches:Ab,accumulateTwoPhaseDispatchesSkipTarget:function(a){ab(a,xb)},accumulateEnterLeaveDispatches:Bb,accumulateDirectDispatches:function(a){ab(a,zb)}}),Db=null;function Eb(){!Db&&l.canUseDOM&&(Db=\"textContent\"in document.documentElement?\"textContent\":\"innerText\");return Db}var S={_root:null,_startText:null,_fallbackText:null};\nfunction Fb(){if(S._fallbackText)return S._fallbackText;var a,b=S._startText,c=b.length,d,e=Gb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);S._fallbackText=e.slice(a,1<d?1-d:void 0);return S._fallbackText}function Gb(){return\"value\"in S._root?S._root.value:S._root[Eb()]}\nvar Hb=\"dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances\".split(\" \"),Ib={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nfunction T(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?C.thatReturnsTrue:C.thatReturnsFalse;this.isPropagationStopped=C.thatReturnsFalse;return this}\nB(T.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,\ndestructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Hb.length;a++)this[Hb[a]]=null}});T.Interface=Ib;T.augmentClass=function(a,b){function c(){}c.prototype=this.prototype;var d=new c;B(d,a.prototype);a.prototype=d;a.prototype.constructor=a;a.Interface=B({},this.Interface,b);a.augmentClass=this.augmentClass;Jb(a)};Jb(T);function Kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction Lb(a){a instanceof this?void 0:E(\"223\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8<Wb&&11>=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"topCompositionEnd\":return $b?null:b.data;default:return null}}\nvar ic={eventTypes:bc,extractEvents:function(a,b,c,d){var e;if(Vb)b:{switch(a){case \"topCompositionStart\":var f=bc.compositionStart;break b;case \"topCompositionEnd\":f=bc.compositionEnd;break b;case \"topCompositionUpdate\":f=bc.compositionUpdate;break b}f=void 0}else fc?dc(a,c)&&(f=bc.compositionEnd):\"topKeyDown\"===a&&229===c.keyCode&&(f=bc.compositionStart);f?($b&&(fc||f!==bc.compositionStart?f===bc.compositionEnd&&fc&&(e=Fb()):(S._root=d,S._startText=Gb(),fc=!0)),f=Mb.getPooled(f,b,c,d),e?f.data=\ne:(e=ec(c),null!==e&&(f.data=e)),Ab(f),e=f):e=null;(a=Zb?gc(a,c):hc(a,c))?(b=Nb.getPooled(bc.beforeInput,b,c,d),b.data=a,Ab(b)):b=null;return[e,b]}},jc=null,kc=null,lc=null;function mc(a){if(a=Xa(a)){jc&&\"function\"===typeof jc.restoreControlledState?void 0:E(\"194\");var b=Wa(a.stateNode);jc.restoreControlledState(a.stateNode,a.type,b)}}var nc={injectFiberControlledHostComponent:function(a){jc=a}};function oc(a){kc?lc?lc.push(a):lc=[a]:kc=a}\nfunction pc(){if(kc){var a=kc,b=lc;lc=kc=null;mc(a);if(b)for(a=0;a<b.length;a++)mc(b[a])}}var qc=Object.freeze({injection:nc,enqueueStateRestore:oc,restoreStateIfNeeded:pc});function rc(a,b){return a(b)}var sc=!1;function tc(a,b){if(sc)return rc(a,b);sc=!0;try{return rc(a,b)}finally{sc=!1,pc()}}var uc={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};\nfunction vc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!uc[a.type]:\"textarea\"===b?!0:!1}function wc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xc;l.canUseDOM&&(xc=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\"));\nfunction yc(a,b){if(!l.canUseDOM||b&&!(\"addEventListener\"in document))return!1;b=\"on\"+a;var c=b in document;c||(c=document.createElement(\"div\"),c.setAttribute(b,\"return;\"),c=\"function\"===typeof c[b]);!c&&xc&&\"wheel\"===a&&(c=document.implementation.hasFeature(\"Events.wheel\",\"3.0\"));return c}function zc(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ac(a){var b=zc(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"function\"===typeof c.get&&\"function\"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=\"\"+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}\nfunction Bc(a){a._valueTracker||(a._valueTracker=Ac(a))}function Cc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=zc(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}var Dc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange\".split(\" \")}};\nfunction Ec(a,b,c){a=T.getPooled(Dc.change,a,b,c);a.type=\"change\";oc(c);Ab(a);return a}var Fc=null,Gc=null;function Hc(a){kb(a);lb(!1)}function Ic(a){var b=qb(a);if(Cc(b))return a}function Jc(a,b){if(\"topChange\"===a)return b}var Kc=!1;l.canUseDOM&&(Kc=yc(\"input\")&&(!document.documentMode||9<document.documentMode));function Lc(){Fc&&(Fc.detachEvent(\"onpropertychange\",Mc),Gc=Fc=null)}function Mc(a){\"value\"===a.propertyName&&Ic(Gc)&&(a=Ec(Gc,a,wc(a)),tc(Hc,a))}\nfunction Nc(a,b,c){\"topFocus\"===a?(Lc(),Fc=b,Gc=c,Fc.attachEvent(\"onpropertychange\",Mc)):\"topBlur\"===a&&Lc()}function Oc(a){if(\"topSelectionChange\"===a||\"topKeyUp\"===a||\"topKeyDown\"===a)return Ic(Gc)}function Pc(a,b){if(\"topClick\"===a)return Ic(b)}function $c(a,b){if(\"topInput\"===a||\"topChange\"===a)return Ic(b)}\nvar ad={eventTypes:Dc,_isInputEventSupported:Kc,extractEvents:function(a,b,c,d){var e=b?qb(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Jc;else if(vc(e))if(Kc)g=$c;else{g=Oc;var h=Nc}else f=e.nodeName,!f||\"input\"!==f.toLowerCase()||\"checkbox\"!==e.type&&\"radio\"!==e.type||(g=Pc);if(g&&(g=g(a,b)))return Ec(g,c,d);h&&h(a,e,b);\"topBlur\"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&\"number\"===e.type&&(a=\"\"+e.value,e.getAttribute(\"value\")!==\na&&e.setAttribute(\"value\",a))}};function bd(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(bd,{view:null,detail:null});var cd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}function fd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(fd,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});\nvar gd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},hd={eventTypes:gd,extractEvents:function(a,b,c,d){if(\"topMouseOver\"===a&&(c.relatedTarget||c.fromElement)||\"topMouseOut\"!==a&&\"topMouseOver\"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;\"topMouseOut\"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?pb(b):null):a=null;if(a===\nb)return null;var f=null==a?e:qb(a);e=null==b?e:qb(b);var g=fd.getPooled(gd.mouseLeave,a,c,d);g.type=\"mouseleave\";g.target=f;g.relatedTarget=e;c=fd.getPooled(gd.mouseEnter,b,c,d);c.type=\"mouseenter\";c.target=e;c.relatedTarget=f;Bb(g,c,a,b);return[g,c]}},id=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;function jd(a){a=a.type;return\"string\"===typeof a?a:\"function\"===typeof a?a.displayName||a.name:null}\nfunction kd(a){var b=a;if(a.alternate)for(;b[\"return\"];)b=b[\"return\"];else{if(0!==(b.effectTag&2))return 1;for(;b[\"return\"];)if(b=b[\"return\"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){return(a=a._reactInternalFiber)?2===kd(a):!1}function md(a){2!==kd(a)?E(\"188\"):void 0}\nfunction nd(a){var b=a.alternate;if(!b)return b=kd(a),3===b?E(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c[\"return\"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return md(e),a;if(g===d)return md(e),b;g=g.sibling}E(\"188\")}if(c[\"return\"]!==d[\"return\"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:E(\"189\")}}c.alternate!==d?E(\"190\"):void 0}3!==c.tag?E(\"188\"):void 0;return c.stateNode.current===c?a:b}function od(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}\nfunction pd(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}var qd=[];\nfunction rd(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c[\"return\"];)c=c[\"return\"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);b=pb(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],sd(a.topLevelType,b,a.nativeEvent,wc(a.nativeEvent))}var td=!0,sd=void 0;function ud(a){td=!!a}function U(a,b,c){return c?ba.listen(c,b,vd.bind(null,a)):null}function wd(a,b,c){return c?ba.capture(c,b,vd.bind(null,a)):null}\nfunction vd(a,b){if(td){var c=wc(b);c=pb(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(qd.length){var d=qd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{tc(rd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?qb(b):window;switch(a){case \"topFocus\":if(vc(e)||\"true\"===e.contentEditable)Nd=e,Od=b,Pd=null;break;case \"topBlur\":Pd=Od=Nd=null;break;case \"topMouseDown\":Qd=!0;break;case \"topContextMenu\":case \"topMouseUp\":return Qd=!1,Rd(c,d);case \"topSelectionChange\":if(Ld)break;\ncase \"topKeyDown\":case \"topKeyUp\":return Rd(c,d)}return null}};function Td(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});function Ud(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Ud,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}});function Vd(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(Vd,{relatedTarget:null});\nfunction Wd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}\nvar Xd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Yd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};function Zd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(Zd,{key:function(a){if(a.key){var b=Xd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=Wd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Yd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ed,charCode:function(a){return\"keypress\"===a.type?Wd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?Wd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}});function $d(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass($d,{dataTransfer:null});function ae(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(ae,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ed});function be(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(be,{propertyName:null,elapsedTime:null,pseudoElement:null});\nfunction ce(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass(ce,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null});var de={},ee={};\n\"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel\".split(\" \").forEach(function(a){var b=a[0].toUpperCase()+\na.slice(1),c=\"on\"+b;b=\"top\"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+\"Capture\"},dependencies:[b]};de[a]=c;ee[b]=c});\nvar fe={eventTypes:de,extractEvents:function(a,b,c,d){var e=ee[a];if(!e)return null;switch(a){case \"topKeyPress\":if(0===Wd(c))return null;case \"topKeyDown\":case \"topKeyUp\":a=Zd;break;case \"topBlur\":case \"topFocus\":a=Vd;break;case \"topClick\":if(2===c.button)return null;case \"topDoubleClick\":case \"topMouseDown\":case \"topMouseMove\":case \"topMouseUp\":case \"topMouseOut\":case \"topMouseOver\":case \"topContextMenu\":a=fd;break;case \"topDrag\":case \"topDragEnd\":case \"topDragEnter\":case \"topDragExit\":case \"topDragLeave\":case \"topDragOver\":case \"topDragStart\":case \"topDrop\":a=\n$d;break;case \"topTouchCancel\":case \"topTouchEnd\":case \"topTouchMove\":case \"topTouchStart\":a=ae;break;case \"topAnimationEnd\":case \"topAnimationIteration\":case \"topAnimationStart\":a=Td;break;case \"topTransitionEnd\":a=be;break;case \"topScroll\":a=bd;break;case \"topWheel\":a=ce;break;case \"topCopy\":case \"topCut\":case \"topPaste\":a=Ud;break;default:a=T}b=a.getPooled(e,b,c,d);Ab(b);return b}};sd=function(a,b,c,d){a=jb(a,b,c,d);kb(a);lb(!1)};hb.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nWa=sb.getFiberCurrentPropsFromNode;Xa=sb.getInstanceFromNode;Ya=sb.getNodeFromInstance;hb.injectEventPluginsByName({SimpleEventPlugin:fe,EnterLeaveEventPlugin:hd,ChangeEventPlugin:ad,SelectEventPlugin:Sd,BeforeInputEventPlugin:ic});var ge=[],he=-1;function V(a){0>he||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;\"function\"!==typeof e?E(\"191\",e):void 0;e.call(b)}}\nfunction Le(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:ld,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,g)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});\na(c,g)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);He(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=ke(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?me(a,d):D;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,\nb){var c=a.alternate,d=a.stateNode,e=d.state||null,g=a.pendingProps;g?void 0:E(\"158\");var h=ke(a);d.props=g;d.state=a.memoizedState=e;d.refs=D;d.context=me(a,h);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);\"function\"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,null!==e&&(d.state=Je(c,a,e,d,g,b)));\"function\"===typeof d.componentDidMount&&(a.effectTag|=\n4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?E(\"159\"):void 0);var u=g.context,z=ke(b);z=me(b,z);\"function\"!==typeof g.componentWillReceiveProps||h===k&&u===z||(u=g.state,g.componentWillReceiveProps(k,z),g.state!==u&&f.enqueueReplaceState(g,g.state,null));u=b.memoizedState;e=null!==b.updateQueue?Je(a,b,b.updateQueue,g,k,e):u;if(!(h!==k||u!==e||X.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return\"function\"!==\ntypeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),!1;var G=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)G=!0;else{var I=b.stateNode,L=b.type;G=\"function\"===typeof I.shouldComponentUpdate?I.shouldComponentUpdate(G,e,z):L.prototype&&L.prototype.isPureReactComponent?!ea(h,G)||!ea(u,e):!0}G?(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(k,e,z),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4)):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=z;return G}}}var Qe=\"function\"===typeof Symbol&&Symbol[\"for\"],Re=Qe?Symbol[\"for\"](\"react.element\"):60103,Se=Qe?Symbol[\"for\"](\"react.call\"):60104,Te=Qe?Symbol[\"for\"](\"react.return\"):60105,Ue=Qe?Symbol[\"for\"](\"react.portal\"):60106,Ve=Qe?Symbol[\"for\"](\"react.fragment\"):60107,We=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction Xe(a){if(null===a||\"undefined\"===typeof a)return null;a=We&&a[We]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ye=Array.isArray;\nfunction Ze(a,b){var c=b.ref;if(null!==c&&\"function\"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?E(\"110\"):void 0,d=b.stateNode);d?void 0:E(\"147\",c);var e=\"\"+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===D?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}\"string\"!==typeof c?E(\"148\"):void 0;b._owner?void 0:E(\"149\",c)}return c}\nfunction $e(a,b){\"textarea\"!==a.type&&E(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction af(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=se(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=ve(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Ze(b,c),d[\"return\"]=a,d;d=te(c,a.internalContextTag,d);d.ref=Ze(b,c);d[\"return\"]=a;return d}function q(a,b,c,d){if(null===b||7!==b.tag)return b=we(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);\nb[\"return\"]=a;return b}function v(a,b,c,d){if(null===b||9!==b.tag)return b=xe(c,a.internalContextTag,d),b.type=c.value,b[\"return\"]=a,b;b=e(b,null,d);b.type=c.value;b[\"return\"]=a;return b}function y(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ye(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c.children||[],d);b[\"return\"]=a;return b}function u(a,b,c,d,f){if(null===b||10!==b.tag)return b=ue(c,a.internalContextTag,\nd,f),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function z(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=ve(\"\"+b,a.internalContextTag,c),b[\"return\"]=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Re:if(b.type===Ve)return b=ue(b.props.children,a.internalContextTag,c,b.key),b[\"return\"]=a,b;c=te(b,a.internalContextTag,c);c.ref=Ze(null,b);c[\"return\"]=a;return c;case Se:return b=we(b,a.internalContextTag,c),b[\"return\"]=a,b;case Te:return c=xe(b,a.internalContextTag,\nc),c.type=b.value,c[\"return\"]=a,c;case Ue:return b=ye(b,a.internalContextTag,c),b[\"return\"]=a,b}if(Ye(b)||Xe(b))return b=ue(b,a.internalContextTag,c,null),b[\"return\"]=a,b;$e(a,b)}return null}function G(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Re:return c.key===e?c.type===Ve?u(a,b,c.props.children,d,e):k(a,b,c,d):null;case Se:return c.key===e?q(a,b,c,d):null;case Te:return null===\ne?v(a,b,c,d):null;case Ue:return c.key===e?y(a,b,c,d):null}if(Ye(c)||Xe(c))return null!==e?null:u(a,b,c,d,null);$e(a,c)}return null}function I(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Re:return a=a.get(null===d.key?c:d.key)||null,d.type===Ve?u(b,a,d.props.children,e,d.key):k(b,a,d,e);case Se:return a=a.get(null===d.key?c:d.key)||null,q(b,a,d,e);case Te:return a=a.get(c)||null,v(b,a,d,e);case Ue:return a=\na.get(null===d.key?c:d.key)||null,y(b,a,d,e)}if(Ye(d)||Xe(d))return a=a.get(c)||null,u(b,a,d,e,null);$e(b,d)}return null}function L(e,g,m,A){for(var h=null,r=null,n=g,w=g=0,k=null;null!==n&&w<m.length;w++){n.index>w?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;w<m.length;w++)if(n=z(e,m[w],A))g=f(n,g,w),null===r?h=n:r.sibling=n,r=n;return h}for(n=\nd(e,n);w<m.length;w++)if(k=I(n,e,w,m[w],A)){if(a&&null!==k.alternate)n[\"delete\"](null===k.key?w:k.key);g=f(k,g,w);null===r?h=k:r.sibling=k;r=k}a&&n.forEach(function(a){return b(e,a)});return h}function N(e,g,m,A){var h=Xe(m);\"function\"!==typeof h?E(\"150\"):void 0;m=h.call(m);null==m?E(\"151\"):void 0;for(var r=h=null,n=g,w=g=0,k=null,x=m.next();null!==n&&!x.done;w++,x=m.next()){n.index>w?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=a;var c=a.firstEffect}else c=a;else c=a.firstEffect;yg();for(t=c;null!==t;){var d=!1,e=void 0;try{for(;null!==t;){var f=t.effectTag;f&16&&zg(t);if(f&128){var g=t.alternate;null!==g&&Ag(g)}switch(f&-242){case 2:Ne(t);t.effectTag&=-3;break;case 6:Ne(t);t.effectTag&=-3;Oe(t.alternate,t);break;case 4:Oe(t.alternate,\nt);break;case 8:Sc=!0,Bg(t),Sc=!1}t=t.nextEffect}}catch(Tc){d=!0,e=Tc}d&&(null===t?E(\"178\"):void 0,h(t,e),null!==t&&(t=t.nextEffect))}Cg();b.current=a;for(t=c;null!==t;){c=!1;d=void 0;try{for(;null!==t;){var k=t.effectTag;k&36&&Dg(t.alternate,t);k&128&&Eg(t);if(k&64)switch(e=t,f=void 0,null!==R&&(f=R.get(e),R[\"delete\"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=R.get(e),R[\"delete\"](e))),null==f?E(\"184\"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});\nbreak;case 3:null===ca&&(ca=f.error);break;default:E(\"157\")}var Qc=t.nextEffect;t.nextEffect=null;t=Qc}}catch(Tc){c=!0,d=Tc}c&&(null===t?E(\"178\"):void 0,h(t,d),null!==t&&(t=t.nextEffect))}ja=Qb=!1;\"function\"===typeof De&&De(a.stateNode);ha&&(ha.forEach(G),ha=null);null!==ca&&(a=ca,ca=null,Ob(a));b=b.current.expirationTime;0===b&&(qa=R=null);return b}function c(a){for(;;){var b=Fg(a.alternate,a,H),c=a[\"return\"],d=a.sibling;var e=a;if(2147483647===H||2147483647!==e.expirationTime){if(2!==e.tag&&3!==\ne.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;\nif(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=rg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function e(a){var b=Gg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function f(a){if(null!==R){if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1<he;)ge[he]=null,he--;je=D;ie.current=D;X.current=!1;x();ra=a;H=b;F=se(ra.current,null,b)}var c=!1,d=null;try{f(b)}catch(Rc){c=!0,d=Rc}for(;c;){if(eb){ca=d;break}var g=F;if(null===g)eb=!0;else{var k=h(g,d);null===k?E(\"183\"):void 0;if(!eb){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ne(g);break;case 5:qg(g);break;case 3:p(g);break;case 4:p(g)}if(g===k||g.alternate===k)break;g=g[\"return\"]}F=e(c);f(d)}catch(Rc){c=!0;d=Rc;continue}break}}}b=ca;eb=ja=!1;ca=\nnull;null!==b&&Ob(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=id.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,q(a)&&(eb=!0);else for(var g=a[\"return\"];null!==g&&null===c;){2===g.tag?\"function\"===typeof g.stateNode.componentDidCatch&&(d=!0,f=jd(g),c=g,e=!0):3===g.tag&&(c=g);if(q(g)){if(Sc||null!==ha&&(ha.has(g)||null!==g.alternate&&ha.has(g.alternate)))return null;c=null;e=!1}g=g[\"return\"]}if(null!==c){null===qa&&(qa=new Set);qa.add(c);var h=\"\";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=\ng._debugOwner,Qc=g._debugSource;var m=jd(g);var n=null;k&&(n=jd(k));k=Qc;m=\"\\n    in \"+(m||\"Unknown\")+(k?\" (at \"+k.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+k.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\");break a;default:m=\"\"}h+=m;g=g[\"return\"]}while(g);g=h;a=jd(a);null===R&&(R=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};R.set(c,b);try{var p=b.error;p&&p.suppressReactErrorLogging||console.error(p)}catch(Vc){Vc&&\nVc.suppressReactErrorLogging||console.error(Vc)}Qb?(null===ha&&(ha=new Set),ha.add(c)):G(c);return c}null===ca&&(ca=b);return null}function k(a){return null!==R&&(R.has(a)||null!==a.alternate&&R.has(a.alternate))}function q(a){return null!==qa&&(qa.has(a)||null!==a.alternate&&qa.has(a.alternate))}function v(){return 20*(((I()+100)/20|0)+1)}function y(a){return 0!==ka?ka:ja?Qb?1:H:!Hg||a.internalContextTag&1?v():1}function u(a,b){return z(a,b,!1)}function z(a,b){for(;null!==a;){if(0===a.expirationTime||\na.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&b<H&&(F=ra=null,H=0);var d=c,e=b;Rb>Ig&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Fa||(la?\nSb&&(ma=d,na=1,m(ma,na)):1===e?w(1,null):L(e));!ja&&c===ra&&b<H&&(F=ra=null,H=0)}else break;a=a[\"return\"]}}function G(a){z(a,1,!0)}function I(){return Uc=((Wc()-Pe)/10|0)+2}function L(a){if(0!==Tb){if(a>Tb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===O)break;c=d;d=d.nextScheduledRoot}}c=ma;null!==c&&c===b?Rb++:Rb=0;ma=b;na=a}function J(a){w(0,a)}function w(a,b){fb=b;for(N();null!==ma&&0!==na&&(0===a||na<=a)&&!Yc;)m(ma,na),N();null!==fb&&(Tb=0,Xc=-1);0!==na&&L(na);fb=null;Yc=!1;Rb=0;if(Ub)throw a=Zc,Zc=\nnull,Ub=!1,a;}function m(a,c){Fa?E(\"245\"):void 0;Fa=!0;if(c<=I()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(A()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Fa=!1}function A(){return null===fb||fb.timeRemaining()>Lg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ue,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}var qf=\"object\"===typeof performance&&\"function\"===typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};\nvar sf=void 0,tf=void 0;\nif(l.canUseDOM)if(\"function\"!==typeof requestIdleCallback||\"function\"!==typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);window.addEventListener(\"message\",function(a){if(a.source===window&&a.data===Cf){vf=!1;a=rf();if(0>=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b;yf=a+Af;vf||(vf=!0,window.postMessage(Cf,\"*\"))};sf=function(a,b){uf=a;null!=b&&\"number\"===typeof b.timeout&&(wf=rf()+b.timeout);xf||(xf=!0,requestAnimationFrame(Df));return 0};tf=function(){uf=null;vf=!1;wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},\ntf=function(a){clearTimeout(a)};var Ef=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Ff={},Gf={};\nfunction Hf(a){if(Gf.hasOwnProperty(a))return!0;if(Ff.hasOwnProperty(a))return!1;if(Ef.test(a))return Gf[a]=!0;Ff[a]=!0;return!1}\nfunction If(a,b,c){var d=wa(b);if(d&&va(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Tf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Uf(a,b){null!=b.dangerouslySetInnerHTML?E(\"91\"):void 0;return B({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Vf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?E(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Zf(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||(\"topScroll\"===e?wd(\"topScroll\",\"scroll\",a):\"topFocus\"===e||\"topBlur\"===e?(wd(\"topFocus\",\"focus\",a),wd(\"topBlur\",\"blur\",a),c.topBlur=!0,c.topFocus=!0):\"topCancel\"===e?(yc(\"cancel\",!0)&&wd(\"topCancel\",\"cancel\",a),c.topCancel=!0):\"topClose\"===e?(yc(\"close\",!0)&&wd(\"topClose\",\"close\",a),c.topClose=!0):Dd.hasOwnProperty(e)&&U(e,Dd[e],a),c[e]=!0)}}\nvar mg={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",\ntopWaiting:\"waiting\"};function ng(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;d===jg&&(d=Zf(a));d===jg?\"script\"===a?(a=c.createElement(\"div\"),a.innerHTML=\"\\x3cscript\\x3e\\x3c/script\\x3e\",a=a.removeChild(a.firstChild)):a=\"string\"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function og(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}\nfunction pg(a,b,c,d){var e=ig(b,c);switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);var f=c;break;case \"video\":case \"audio\":for(f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);f=c;break;case \"source\":U(\"topError\",\"error\",a);f=c;break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);f=c;break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);f=c;break;case \"details\":U(\"topToggle\",\"toggle\",a);f=c;break;case \"input\":Mf(a,c);f=Lf(a,c);U(\"topInvalid\",\"invalid\",a);\nlg(d,\"onChange\");break;case \"option\":f=Rf(a,c);break;case \"select\":Tf(a,c);f=B({},c,{value:void 0});U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;case \"textarea\":Vf(a,c);f=Uf(a,c);U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;default:f=c}hg(b,f,kg);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];\"style\"===h?fg(a,k,kg):\"dangerouslySetInnerHTML\"===h?(k=k?k.__html:void 0,null!=k&&bg(a,k)):\"children\"===h?\"string\"===typeof k?(\"textarea\"!==b||\"\"!==k)&&cg(a,k):\"number\"===typeof k&&cg(a,\n\"\"+k):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(Ra.hasOwnProperty(h)?null!=k&&lg(d,h):e?Kf(a,h,k):null!=k&&If(a,h,k))}switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"option\":null!=c.value&&a.setAttribute(\"value\",c.value);break;case \"select\":a.multiple=!!c.multiple;b=c.value;null!=b?Sf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Sf(a,!!c.multiple,c.defaultValue,!0);break;default:\"function\"===typeof f.onClick&&(a.onclick=\nC)}}\nfunction sg(a,b,c,d,e){var f=null;switch(b){case \"input\":c=Lf(a,c);d=Lf(a,d);f=[];break;case \"option\":c=Rf(a,c);d=Rf(a,d);f=[];break;case \"select\":c=B({},c,{value:void 0});d=B({},d,{value:void 0});f=[];break;case \"textarea\":c=Uf(a,c);d=Uf(a,d);f=[];break;default:\"function\"!==typeof c.onClick&&\"function\"===typeof d.onClick&&(a.onclick=C)}hg(b,d,kg);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if(\"style\"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]=\n\"\");else\"dangerouslySetInnerHTML\"!==g&&\"children\"!==g&&\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&\"autoFocus\"!==g&&(Ra.hasOwnProperty(g)?f||(f=[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if(\"style\"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]=\"\");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else\"dangerouslySetInnerHTML\"===\ng?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,\"\"+k)):\"children\"===g?b===k||\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(g,\"\"+k):\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&(Ra.hasOwnProperty(g)?(null!=k&&lg(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push(\"style\",a);return f}\nfunction tg(a,b,c,d,e){\"input\"===c&&\"radio\"===e.type&&null!=e.name&&Nf(a,e);ig(c,d);d=ig(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];\"style\"===g?fg(a,h,kg):\"dangerouslySetInnerHTML\"===g?bg(a,h):\"children\"===g?cg(a,h):d?null!=h?Kf(a,g,h):a.removeAttribute(g):null!=h?If(a,g,h):Jf(a,g)}switch(c){case \"input\":Of(a,e);break;case \"textarea\":Wf(a,e);break;case \"select\":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Sf(a,\n!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Sf(a,!!e.multiple,e.defaultValue,!0):Sf(a,!!e.multiple,e.multiple?[]:\"\",!1))}}\nfunction ug(a,b,c,d,e){switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);break;case \"video\":case \"audio\":for(var f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);break;case \"source\":U(\"topError\",\"error\",a);break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);break;case \"details\":U(\"topToggle\",\"toggle\",a);break;case \"input\":Mf(a,c);U(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"select\":Tf(a,c);\nU(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"textarea\":Vf(a,c),U(\"topInvalid\",\"invalid\",a),lg(e,\"onChange\")}hg(b,c,kg);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],\"children\"===g?\"string\"===typeof f?a.textContent!==f&&(d=[\"children\",f]):\"number\"===typeof f&&a.textContent!==\"\"+f&&(d=[\"children\",\"\"+f]):Ra.hasOwnProperty(g)&&null!=f&&lg(e,g));switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"select\":case \"option\":break;default:\"function\"===typeof c.onClick&&\n(a.onclick=C)}return d}function vg(a,b){return a.nodeValue!==b}\nvar wg=Object.freeze({createElement:ng,createTextNode:og,setInitialProperties:pg,diffProperties:sg,updateProperties:tg,diffHydratedProperties:ug,diffHydratedText:vg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(a,b,c){switch(b){case \"input\":Of(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=\nc.parentNode;c=c.querySelectorAll(\"input[name\\x3d\"+JSON.stringify(\"\"+b)+'][type\\x3d\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=rb(d);e?void 0:E(\"90\");Cc(d);Of(d,e)}}}break;case \"textarea\":Wf(a,c);break;case \"select\":b=c.value,null!=b&&Sf(a,!!c.multiple,b,!1)}}});nc.injectFiberControlledHostComponent(wg);var xg=null,Mg=null;function Ng(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction Og(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute(\"data-reactroot\"))}\nvar Z=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:$f(null,\"\");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=$f(a,b)}return a},getChildHostContext:function(a,b){return $f(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){xg=td;var a=da();if(Kd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();\nif(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(z){b=null;break a}var f=0,g=-1,h=-1,k=0,q=0,v=a,y=null;b:for(;;){for(var u;;){v!==b||0!==d&&3!==v.nodeType||(g=f+d);v!==e||0!==c&&3!==v.nodeType||(h=f+c);3===v.nodeType&&(f+=v.nodeValue.length);if(null===(u=v.firstChild))break;y=v;v=u}for(;;){if(v===a)break b;y===b&&++k===d&&(g=f);y===e&&++q===c&&(h=f);if(null!==(u=v.nextSibling))break;v=y;y=v.parentNode}v=u}b=-1===g||-1===h?null:\n{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Mg={focusedElem:a,selectionRange:b};ud(!1)},resetAfterCommit:function(){var a=Mg,b=da(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&fa(document.documentElement,c)){if(Kd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[Eb()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=\na.top}Mg=null;ud(xg);xg=null},createInstance:function(a,b,c,d,e){a=ng(a,b,c,d);a[Q]=e;a[ob]=b;return a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){pg(a,b,c,d);a:{switch(b){case \"button\":case \"input\":case \"select\":case \"textarea\":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e){return sg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return\"textarea\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===\ntypeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&\"string\"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=og(a,b);a[Q]=d;return a},now:rf,mutation:{commitMount:function(a){a.focus()},commitUpdate:function(a,b,c,d,e){a[ob]=e;tg(a,b,c,d,e)},resetTextContent:function(a){a.textContent=\"\"},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,\nb){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,\nb){return\"\"===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[Q]=f;a[ob]=c;return ug(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[Q]=c;return vg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},\ndidNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf,useSyncScheduling:!0});rc=Z.batchedUpdates;\nfunction Pg(a,b,c,d,e){Ng(c)?void 0:E(\"200\");var f=c._reactRootContainer;if(f)Z.updateContainer(b,f,a,e);else{d=d||Og(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=Z.createContainer(c,d);f=c._reactRootContainer=g;Z.unbatchedUpdates(function(){Z.updateContainer(b,g,a,e)})}return Z.getPublicRootInstance(f)}function Qg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Ng(b)?void 0:E(\"200\");return pf(a,b,null,c)}\nfunction Rg(a,b){this._reactRootContainer=Z.createContainer(a,b)}Rg.prototype.render=function(a,b){Z.updateContainer(a,this._reactRootContainer,null,b)};Rg.prototype.unmount=function(a){Z.updateContainer(null,this._reactRootContainer,null,a)};\nvar Sg={createPortal:Qg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return Z.findHostInstance(b);\"function\"===typeof a.render?E(\"188\"):E(\"213\",Object.keys(a))},hydrate:function(a,b,c){return Pg(null,a,b,!0,c)},render:function(a,b,c){return Pg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?E(\"38\"):void 0;return Pg(a,b,c,!1,d)},unmountComponentAtNode:function(a){Ng(a)?void 0:\nE(\"40\");return a._reactRootContainer?(Z.unbatchedUpdates(function(){Pg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Qg,unstable_batchedUpdates:tc,unstable_deferredUpdates:Z.deferredUpdates,flushSync:Z.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:mb,EventPluginRegistry:Va,EventPropagators:Cb,ReactControlledComponent:qc,ReactDOMComponentTree:sb,ReactDOMEventListener:xd}};\nZ.injectIntoDevTools({findFiberByHostInstance:pb,bundleType:0,version:\"16.2.0\",rendererPackageName:\"react-dom\"});var Tg=Object.freeze({default:Sg}),Ug=Tg&&Sg||Tg;module.exports=Ug[\"default\"]?Ug[\"default\"]:Ug;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-dom/cjs/react-dom.production.min.js\n// module id = 55\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/ExecutionEnvironment.js\n// module id = 56\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function listen(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function remove() {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function capture(target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function remove() {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/EventListener.js\n// module id = 57\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/getActiveElement.js\n// module id = 58\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/shallowEqual.js\n// module id = 59\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = containsNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/containsNode.js\n// module id = 60\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/isTextNode.js\n// module id = 61\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n  var doc = object ? object.ownerDocument || object : document;\n  var defaultView = doc.defaultView || window;\n  return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/isNode.js\n// module id = 62\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/focusNode.js\n// module id = 63\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createBrowserHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n  _inherits(BrowserRouter, _React$Component);\n\n  function BrowserRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, BrowserRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<BrowserRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');\n  };\n\n  BrowserRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return BrowserRouter;\n}(React.Component);\n\nBrowserRouter.propTypes = {\n  basename: PropTypes.string,\n  forceRefresh: PropTypes.bool,\n  getUserConfirmation: PropTypes.func,\n  keyLength: PropTypes.number,\n  children: PropTypes.node\n};\n\n\nexport default BrowserRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/BrowserRouter.js\n// module id = 64\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/factoryWithThrowingShims.js\n// module id = 65\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/invariant.js\n// module id = 66\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js\n// module id = 67\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = (0, _DOMUtils.supportsHistory)();\n  var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + (0, _PathUtils.createPath)(location);\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createBrowserHistory.js\n// module id = 68\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createHashHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = function (_React$Component) {\n  _inherits(HashRouter, _React$Component);\n\n  function HashRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, HashRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  HashRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<HashRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');\n  };\n\n  HashRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return HashRouter;\n}(React.Component);\n\nHashRouter.propTypes = {\n  basename: PropTypes.string,\n  getUserConfirmation: PropTypes.func,\n  hashType: PropTypes.oneOf(['hashbang', 'noslash', 'slash']),\n  children: PropTypes.node\n};\n\n\nexport default HashRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/HashRouter.js\n// module id = 69\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: _PathUtils.stripLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  },\n  slash: {\n    encodePath: _PathUtils.addLeadingSlash,\n    decodePath: _PathUtils.addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n    return (0, _LocationUtils.createLocation)(path);\n  };\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n  };\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = (0, _PathUtils.createPath)(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createHashHistory.js\n// module id = 70\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport MemoryRouter from 'react-router/es/MemoryRouter';\n\nexport default MemoryRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/MemoryRouter.js\n// module id = 71\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createHistory from 'history/createMemoryHistory';\nimport Router from './Router';\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n  _inherits(MemoryRouter, _React$Component);\n\n  function MemoryRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, MemoryRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<MemoryRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');\n  };\n\n  MemoryRouter.prototype.render = function render() {\n    return React.createElement(Router, { history: this.history, children: this.props.children });\n  };\n\n  return MemoryRouter;\n}(React.Component);\n\nMemoryRouter.propTypes = {\n  initialEntries: PropTypes.array,\n  initialIndex: PropTypes.number,\n  getUserConfirmation: PropTypes.func,\n  keyLength: PropTypes.number,\n  children: PropTypes.node\n};\n\n\nexport default MemoryRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/MemoryRouter.js\n// module id = 72\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = (0, _createTransitionManager2.default)();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = _PathUtils.createPath;\n\n  var push = function push(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createMemoryHistory.js\n// module id = 73\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Route from './Route';\nimport Link from './Link';\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nvar NavLink = function NavLink(_ref) {\n  var to = _ref.to,\n      exact = _ref.exact,\n      strict = _ref.strict,\n      location = _ref.location,\n      activeClassName = _ref.activeClassName,\n      className = _ref.className,\n      activeStyle = _ref.activeStyle,\n      style = _ref.style,\n      getIsActive = _ref.isActive,\n      ariaCurrent = _ref.ariaCurrent,\n      rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);\n\n  return React.createElement(Route, {\n    path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,\n    exact: exact,\n    strict: strict,\n    location: location,\n    children: function children(_ref2) {\n      var location = _ref2.location,\n          match = _ref2.match;\n\n      var isActive = !!(getIsActive ? getIsActive(match, location) : match);\n\n      return React.createElement(Link, _extends({\n        to: to,\n        className: isActive ? [className, activeClassName].filter(function (i) {\n          return i;\n        }).join(' ') : className,\n        style: isActive ? _extends({}, style, activeStyle) : style,\n        'aria-current': isActive && ariaCurrent\n      }, rest));\n    }\n  });\n};\n\nNavLink.propTypes = {\n  to: Link.propTypes.to,\n  exact: PropTypes.bool,\n  strict: PropTypes.bool,\n  location: PropTypes.object,\n  activeClassName: PropTypes.string,\n  className: PropTypes.string,\n  activeStyle: PropTypes.object,\n  style: PropTypes.object,\n  isActive: PropTypes.func,\n  ariaCurrent: PropTypes.oneOf(['page', 'step', 'location', 'true'])\n};\n\nNavLink.defaultProps = {\n  activeClassName: 'active',\n  ariaCurrent: 'true'\n};\n\nexport default NavLink;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/NavLink.js\n// module id = 74\n// module chunks = 0","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = options && options.delimiter || '/'\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      continue\n    }\n\n    var next = str[index]\n    var prefix = res[2]\n    var name = res[3]\n    var capture = res[4]\n    var group = res[5]\n    var modifier = res[6]\n    var asterisk = res[7]\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n    }\n\n    var partial = prefix != null && next != null && next !== prefix\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var delimiter = res[2] || defaultDelimiter\n    var pattern = capture || group\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    })\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index)\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path)\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n    }\n  }\n\n  return function (obj, opts) {\n    var path = ''\n    var data = obj || {}\n    var options = opts || {}\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n\n        continue\n      }\n\n      var value = data[token.name]\n      var segment\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j])\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      })\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  var strict = options.strict\n  var end = options.end !== false\n  var route = ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var prefix = escapeString(token.prefix)\n      var capture = '(?:' + token.pattern + ')'\n\n      keys.push(token)\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*'\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?'\n        } else {\n          capture = prefix + '(' + capture + ')?'\n        }\n      } else {\n        capture = prefix + '(' + capture + ')'\n      }\n\n      route += capture\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/')\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n  }\n\n  if (end) {\n    route += '$'\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options)\n    keys = []\n  }\n\n  options = options || {}\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/path-to-regexp/index.js\n// module id = 75\n// module chunks = 0","module.exports = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/isarray/index.js\n// module id = 76\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Prompt from 'react-router/es/Prompt';\n\nexport default Prompt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Prompt.js\n// module id = 77\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n  _inherits(Prompt, _React$Component);\n\n  function Prompt() {\n    _classCallCheck(this, Prompt);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Prompt.prototype.enable = function enable(message) {\n    if (this.unblock) this.unblock();\n\n    this.unblock = this.context.router.history.block(message);\n  };\n\n  Prompt.prototype.disable = function disable() {\n    if (this.unblock) {\n      this.unblock();\n      this.unblock = null;\n    }\n  };\n\n  Prompt.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Prompt> outside a <Router>');\n\n    if (this.props.when) this.enable(this.props.message);\n  };\n\n  Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    if (nextProps.when) {\n      if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n    } else {\n      this.disable();\n    }\n  };\n\n  Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n    this.disable();\n  };\n\n  Prompt.prototype.render = function render() {\n    return null;\n  };\n\n  return Prompt;\n}(React.Component);\n\nPrompt.propTypes = {\n  when: PropTypes.bool,\n  message: PropTypes.oneOfType([PropTypes.func, PropTypes.string]).isRequired\n};\nPrompt.defaultProps = {\n  when: true\n};\nPrompt.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      block: PropTypes.func.isRequired\n    }).isRequired\n  }).isRequired\n};\n\n\nexport default Prompt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Prompt.js\n// module id = 78\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Redirect from 'react-router/es/Redirect';\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Redirect.js\n// module id = 79\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from 'history';\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n  _inherits(Redirect, _React$Component);\n\n  function Redirect() {\n    _classCallCheck(this, Redirect);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Redirect.prototype.isStatic = function isStatic() {\n    return this.context.router && this.context.router.staticContext;\n  };\n\n  Redirect.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Redirect> outside a <Router>');\n\n    if (this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidMount = function componentDidMount() {\n    if (!this.isStatic()) this.perform();\n  };\n\n  Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var prevTo = createLocation(prevProps.to);\n    var nextTo = createLocation(this.props.to);\n\n    if (locationsAreEqual(prevTo, nextTo)) {\n      warning(false, 'You tried to redirect to the same route you\\'re currently on: ' + ('\"' + nextTo.pathname + nextTo.search + '\"'));\n      return;\n    }\n\n    this.perform();\n  };\n\n  Redirect.prototype.perform = function perform() {\n    var history = this.context.router.history;\n    var _props = this.props,\n        push = _props.push,\n        to = _props.to;\n\n\n    if (push) {\n      history.push(to);\n    } else {\n      history.replace(to);\n    }\n  };\n\n  Redirect.prototype.render = function render() {\n    return null;\n  };\n\n  return Redirect;\n}(React.Component);\n\nRedirect.propTypes = {\n  push: PropTypes.bool,\n  from: PropTypes.string,\n  to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nRedirect.defaultProps = {\n  push: false\n};\nRedirect.contextTypes = {\n  router: PropTypes.shape({\n    history: PropTypes.shape({\n      push: PropTypes.func.isRequired,\n      replace: PropTypes.func.isRequired\n    }).isRequired,\n    staticContext: PropTypes.object\n  }).isRequired\n};\n\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Redirect.js\n// module id = 80\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n  try {\n    return window.history.state || {};\n  } catch (e) {\n    // IE 11 sometimes throws when accessing window.history.state\n    // See https://github.com/ReactTraining/history/pull/289\n    return {};\n  }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  invariant(canUseDOM, 'Browser history needs a DOM');\n\n  var globalHistory = window.history;\n  var canUseHistory = supportsHistory();\n  var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n  var _props$forceRefresh = props.forceRefresh,\n      forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n      _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var getDOMLocation = function getDOMLocation(historyState) {\n    var _ref = historyState || {},\n        key = _ref.key,\n        state = _ref.state;\n\n    var _window$location = window.location,\n        pathname = _window$location.pathname,\n        search = _window$location.search,\n        hash = _window$location.hash;\n\n\n    var path = pathname + search + hash;\n\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = stripBasename(path, basename);\n\n    return createLocation(path, state, key);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var handlePopState = function handlePopState(event) {\n    // Ignore extraneous popstate events in WebKit.\n    if (isExtraneousPopstateEvent(event)) return;\n\n    handlePop(getDOMLocation(event.state));\n  };\n\n  var handleHashChange = function handleHashChange() {\n    handlePop(getDOMLocation(getHistoryState()));\n  };\n\n  var forceNextPop = false;\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of keys we've seen in sessionStorage.\n    // Instead, we just default to 0 for keys we don't know.\n\n    var toIndex = allKeys.indexOf(toLocation.key);\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allKeys.indexOf(fromLocation.key);\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  var initialLocation = getDOMLocation(getHistoryState());\n  var allKeys = [initialLocation.key];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return basename + createPath(location);\n  };\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.pushState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.href = href;\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n          var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n          nextKeys.push(location.key);\n          allKeys = nextKeys;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n        window.location.href = href;\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var href = createHref(location);\n      var key = location.key,\n          state = location.state;\n\n\n      if (canUseHistory) {\n        globalHistory.replaceState({ key: key, state: state }, null, href);\n\n        if (forceRefresh) {\n          window.location.replace(href);\n        } else {\n          var prevIndex = allKeys.indexOf(history.location.key);\n\n          if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n          setState({ action: action, location: location });\n        }\n      } else {\n        warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n        window.location.replace(href);\n      }\n    });\n  };\n\n  var go = function go(n) {\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, PopStateEvent, handlePopState);\n\n      if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createBrowserHistory.js\n// module id = 82\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from './LocationUtils';\nimport { addLeadingSlash, stripLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsGoWithoutReloadUsingHash } from './DOMUtils';\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n  hashbang: {\n    encodePath: function encodePath(path) {\n      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n    },\n    decodePath: function decodePath(path) {\n      return path.charAt(0) === '!' ? path.substr(1) : path;\n    }\n  },\n  noslash: {\n    encodePath: stripLeadingSlash,\n    decodePath: addLeadingSlash\n  },\n  slash: {\n    encodePath: addLeadingSlash,\n    decodePath: addLeadingSlash\n  }\n};\n\nvar getHashPath = function getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var hashIndex = href.indexOf('#');\n  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n  return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n  var hashIndex = window.location.href.indexOf('#');\n\n  window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  invariant(canUseDOM, 'Hash history needs a DOM');\n\n  var globalHistory = window.history;\n  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n\n  var _props$getUserConfirm = props.getUserConfirmation,\n      getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n      _props$hashType = props.hashType,\n      hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n  var _HashPathCoders$hashT = HashPathCoders[hashType],\n      encodePath = _HashPathCoders$hashT.encodePath,\n      decodePath = _HashPathCoders$hashT.decodePath;\n\n\n  var getDOMLocation = function getDOMLocation() {\n    var path = decodePath(getHashPath());\n\n    warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n    if (basename) path = stripBasename(path, basename);\n\n    return createLocation(path);\n  };\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = globalHistory.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var forceNextPop = false;\n  var ignorePath = null;\n\n  var handleHashChange = function handleHashChange() {\n    var path = getHashPath();\n    var encodedPath = encodePath(path);\n\n    if (path !== encodedPath) {\n      // Ensure we always have a properly-encoded hash.\n      replaceHashPath(encodedPath);\n    } else {\n      var location = getDOMLocation();\n      var prevLocation = history.location;\n\n      if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n      ignorePath = null;\n\n      handlePop(location);\n    }\n  };\n\n  var handlePop = function handlePop(location) {\n    if (forceNextPop) {\n      forceNextPop = false;\n      setState();\n    } else {\n      var action = 'POP';\n\n      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n        if (ok) {\n          setState({ action: action, location: location });\n        } else {\n          revertPop(location);\n        }\n      });\n    }\n  };\n\n  var revertPop = function revertPop(fromLocation) {\n    var toLocation = history.location;\n\n    // TODO: We could probably make this more reliable by\n    // keeping a list of paths we've seen in sessionStorage.\n    // Instead, we just default to 0 for paths we don't know.\n\n    var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n\n    if (toIndex === -1) toIndex = 0;\n\n    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n\n    if (fromIndex === -1) fromIndex = 0;\n\n    var delta = toIndex - fromIndex;\n\n    if (delta) {\n      forceNextPop = true;\n      go(delta);\n    }\n  };\n\n  // Ensure the hash is encoded properly before doing anything else.\n  var path = getHashPath();\n  var encodedPath = encodePath(path);\n\n  if (path !== encodedPath) replaceHashPath(encodedPath);\n\n  var initialLocation = getDOMLocation();\n  var allPaths = [createPath(initialLocation)];\n\n  // Public interface\n\n  var createHref = function createHref(location) {\n    return '#' + encodePath(basename + createPath(location));\n  };\n\n  var push = function push(path, state) {\n    warning(state === undefined, 'Hash history cannot push state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a PUSH, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        pushHashPath(encodedPath);\n\n        var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n        var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n        nextPaths.push(path);\n        allPaths = nextPaths;\n\n        setState({ action: action, location: location });\n      } else {\n        warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n        setState();\n      }\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, undefined, undefined, history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var path = createPath(location);\n      var encodedPath = encodePath(basename + path);\n      var hashChanged = getHashPath() !== encodedPath;\n\n      if (hashChanged) {\n        // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n        // rather setState here and ignore the hashchange. The caveat here\n        // is that other hash histories in the page will consider it a POP.\n        ignorePath = path;\n        replaceHashPath(encodedPath);\n      }\n\n      var prevIndex = allPaths.indexOf(createPath(history.location));\n\n      if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n    globalHistory.go(n);\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var listenerCount = 0;\n\n  var checkDOMListeners = function checkDOMListeners(delta) {\n    listenerCount += delta;\n\n    if (listenerCount === 1) {\n      addEventListener(window, HashChangeEvent, handleHashChange);\n    } else if (listenerCount === 0) {\n      removeEventListener(window, HashChangeEvent, handleHashChange);\n    }\n  };\n\n  var isBlocked = false;\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var unblock = transitionManager.setPrompt(prompt);\n\n    if (!isBlocked) {\n      checkDOMListeners(1);\n      isBlocked = true;\n    }\n\n    return function () {\n      if (isBlocked) {\n        isBlocked = false;\n        checkDOMListeners(-1);\n      }\n\n      return unblock();\n    };\n  };\n\n  var listen = function listen(listener) {\n    var unlisten = transitionManager.appendListener(listener);\n    checkDOMListeners(1);\n\n    return function () {\n      checkDOMListeners(-1);\n      unlisten();\n    };\n  };\n\n  var history = {\n    length: globalHistory.length,\n    action: 'POP',\n    location: initialLocation,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createHashHistory.js\n// module id = 83\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport { createPath } from './PathUtils';\nimport { createLocation } from './LocationUtils';\nimport createTransitionManager from './createTransitionManager';\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n  return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var getUserConfirmation = props.getUserConfirmation,\n      _props$initialEntries = props.initialEntries,\n      initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n      _props$initialIndex = props.initialIndex,\n      initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n      _props$keyLength = props.keyLength,\n      keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n  var transitionManager = createTransitionManager();\n\n  var setState = function setState(nextState) {\n    _extends(history, nextState);\n\n    history.length = history.entries.length;\n\n    transitionManager.notifyListeners(history.location, history.action);\n  };\n\n  var createKey = function createKey() {\n    return Math.random().toString(36).substr(2, keyLength);\n  };\n\n  var index = clamp(initialIndex, 0, initialEntries.length - 1);\n  var entries = initialEntries.map(function (entry) {\n    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n  });\n\n  // Public interface\n\n  var createHref = createPath;\n\n  var push = function push(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'PUSH';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      var prevIndex = history.index;\n      var nextIndex = prevIndex + 1;\n\n      var nextEntries = history.entries.slice(0);\n      if (nextEntries.length > nextIndex) {\n        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n      } else {\n        nextEntries.push(location);\n      }\n\n      setState({\n        action: action,\n        location: location,\n        index: nextIndex,\n        entries: nextEntries\n      });\n    });\n  };\n\n  var replace = function replace(path, state) {\n    warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n    var action = 'REPLACE';\n    var location = createLocation(path, state, createKey(), history.location);\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (!ok) return;\n\n      history.entries[history.index] = location;\n\n      setState({ action: action, location: location });\n    });\n  };\n\n  var go = function go(n) {\n    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n    var action = 'POP';\n    var location = history.entries[nextIndex];\n\n    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n      if (ok) {\n        setState({\n          action: action,\n          location: location,\n          index: nextIndex\n        });\n      } else {\n        // Mimic the behavior of DOM histories by\n        // causing a render after a cancelled POP.\n        setState();\n      }\n    });\n  };\n\n  var goBack = function goBack() {\n    return go(-1);\n  };\n\n  var goForward = function goForward() {\n    return go(1);\n  };\n\n  var canGo = function canGo(n) {\n    var nextIndex = history.index + n;\n    return nextIndex >= 0 && nextIndex < history.entries.length;\n  };\n\n  var block = function block() {\n    var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return transitionManager.setPrompt(prompt);\n  };\n\n  var listen = function listen(listener) {\n    return transitionManager.appendListener(listener);\n  };\n\n  var history = {\n    length: entries.length,\n    action: 'POP',\n    location: entries[index],\n    index: index,\n    entries: entries,\n    createHref: createHref,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    canGo: canGo,\n    block: block,\n    listen: listen\n  };\n\n  return history;\n};\n\nexport default createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/es/createMemoryHistory.js\n// module id = 84\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport StaticRouter from 'react-router/es/StaticRouter';\n\nexport default StaticRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/StaticRouter.js\n// module id = 85\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { addLeadingSlash, createPath, parsePath } from 'history/PathUtils';\nimport Router from './Router';\n\nvar normalizeLocation = function normalizeLocation(object) {\n  var _object$pathname = object.pathname,\n      pathname = _object$pathname === undefined ? '/' : _object$pathname,\n      _object$search = object.search,\n      search = _object$search === undefined ? '' : _object$search,\n      _object$hash = object.hash,\n      hash = _object$hash === undefined ? '' : _object$hash;\n\n\n  return {\n    pathname: pathname,\n    search: search === '?' ? '' : search,\n    hash: hash === '#' ? '' : hash\n  };\n};\n\nvar addBasename = function addBasename(basename, location) {\n  if (!basename) return location;\n\n  return _extends({}, location, {\n    pathname: addLeadingSlash(basename) + location.pathname\n  });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n  if (!basename) return location;\n\n  var base = addLeadingSlash(basename);\n\n  if (location.pathname.indexOf(base) !== 0) return location;\n\n  return _extends({}, location, {\n    pathname: location.pathname.substr(base.length)\n  });\n};\n\nvar createLocation = function createLocation(location) {\n  return typeof location === 'string' ? parsePath(location) : normalizeLocation(location);\n};\n\nvar createURL = function createURL(location) {\n  return typeof location === 'string' ? location : createPath(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n  return function () {\n    invariant(false, 'You cannot %s with <StaticRouter>', methodName);\n  };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n  _inherits(StaticRouter, _React$Component);\n\n  function StaticRouter() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, StaticRouter);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n      return addLeadingSlash(_this.props.basename + createURL(path));\n    }, _this.handlePush = function (location) {\n      var _this$props = _this.props,\n          basename = _this$props.basename,\n          context = _this$props.context;\n\n      context.action = 'PUSH';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleReplace = function (location) {\n      var _this$props2 = _this.props,\n          basename = _this$props2.basename,\n          context = _this$props2.context;\n\n      context.action = 'REPLACE';\n      context.location = addBasename(basename, createLocation(location));\n      context.url = createURL(context.location);\n    }, _this.handleListen = function () {\n      return noop;\n    }, _this.handleBlock = function () {\n      return noop;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  StaticRouter.prototype.getChildContext = function getChildContext() {\n    return {\n      router: {\n        staticContext: this.props.context\n      }\n    };\n  };\n\n  StaticRouter.prototype.componentWillMount = function componentWillMount() {\n    warning(!this.props.history, '<StaticRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');\n  };\n\n  StaticRouter.prototype.render = function render() {\n    var _props = this.props,\n        basename = _props.basename,\n        context = _props.context,\n        location = _props.location,\n        props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);\n\n    var history = {\n      createHref: this.createHref,\n      action: 'POP',\n      location: stripBasename(basename, createLocation(location)),\n      push: this.handlePush,\n      replace: this.handleReplace,\n      go: staticHandler('go'),\n      goBack: staticHandler('goBack'),\n      goForward: staticHandler('goForward'),\n      listen: this.handleListen,\n      block: this.handleBlock\n    };\n\n    return React.createElement(Router, _extends({}, props, { history: history }));\n  };\n\n  return StaticRouter;\n}(React.Component);\n\nStaticRouter.propTypes = {\n  basename: PropTypes.string,\n  context: PropTypes.object.isRequired,\n  location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\nStaticRouter.defaultProps = {\n  basename: '',\n  location: '/'\n};\nStaticRouter.childContextTypes = {\n  router: PropTypes.object.isRequired\n};\n\n\nexport default StaticRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/StaticRouter.js\n// module id = 86\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Switch from 'react-router/es/Switch';\n\nexport default Switch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Switch.js\n// module id = 87\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport matchPath from './matchPath';\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = function (_React$Component) {\n  _inherits(Switch, _React$Component);\n\n  function Switch() {\n    _classCallCheck(this, Switch);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  Switch.prototype.componentWillMount = function componentWillMount() {\n    invariant(this.context.router, 'You should not use <Switch> outside a <Router>');\n  };\n\n  Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n    warning(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n    warning(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n  };\n\n  Switch.prototype.render = function render() {\n    var route = this.context.router.route;\n    var children = this.props.children;\n\n    var location = this.props.location || route.location;\n\n    var match = void 0,\n        child = void 0;\n    React.Children.forEach(children, function (element) {\n      if (!React.isValidElement(element)) return;\n\n      var _element$props = element.props,\n          pathProp = _element$props.path,\n          exact = _element$props.exact,\n          strict = _element$props.strict,\n          sensitive = _element$props.sensitive,\n          from = _element$props.from;\n\n      var path = pathProp || from;\n\n      if (match == null) {\n        child = element;\n        match = path ? matchPath(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }) : route.match;\n      }\n    });\n\n    return match ? React.cloneElement(child, { location: location, computedMatch: match }) : null;\n  };\n\n  return Switch;\n}(React.Component);\n\nSwitch.contextTypes = {\n  router: PropTypes.shape({\n    route: PropTypes.object.isRequired\n  }).isRequired\n};\nSwitch.propTypes = {\n  children: PropTypes.node,\n  location: PropTypes.object\n};\n\n\nexport default Switch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Switch.js\n// module id = 88\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport matchPath from 'react-router/es/matchPath';\n\nexport default matchPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/matchPath.js\n// module id = 89\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport withRouter from 'react-router/es/withRouter';\n\nexport default withRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/withRouter.js\n// module id = 90\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistStatics from 'hoist-non-react-statics';\nimport Route from './Route';\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n  var C = function C(props) {\n    var wrappedComponentRef = props.wrappedComponentRef,\n        remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);\n\n    return React.createElement(Route, { render: function render(routeComponentProps) {\n        return React.createElement(Component, _extends({}, remainingProps, routeComponentProps, { ref: wrappedComponentRef }));\n      } });\n  };\n\n  C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';\n  C.WrappedComponent = Component;\n  C.propTypes = {\n    wrappedComponentRef: PropTypes.func\n  };\n\n  return hoistStatics(C, Component);\n};\n\nexport default withRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/withRouter.js\n// module id = 91\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.hoistNonReactStatics = factory());\n}(this, (function () {\n    'use strict';\n    \n    var REACT_STATICS = {\n        childContextTypes: true,\n        contextTypes: true,\n        defaultProps: true,\n        displayName: true,\n        getDefaultProps: true,\n        getDerivedStateFromProps: true,\n        mixins: true,\n        propTypes: true,\n        type: true\n    };\n    \n    var KNOWN_STATICS = {\n        name: true,\n        length: true,\n        prototype: true,\n        caller: true,\n        callee: true,\n        arguments: true,\n        arity: true\n    };\n    \n    var defineProperty = Object.defineProperty;\n    var getOwnPropertyNames = Object.getOwnPropertyNames;\n    var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var getPrototypeOf = Object.getPrototypeOf;\n    var objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n    \n    return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n        if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n            \n            if (objectPrototype) {\n                var inheritedComponent = getPrototypeOf(sourceComponent);\n                if (inheritedComponent && inheritedComponent !== objectPrototype) {\n                    hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n                }\n            }\n            \n            var keys = getOwnPropertyNames(sourceComponent);\n            \n            if (getOwnPropertySymbols) {\n                keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n            }\n            \n            for (var i = 0; i < keys.length; ++i) {\n                var key = keys[i];\n                if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n                    var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n                    try { // Avoid failures from read-only properties\n                        defineProperty(targetComponent, key, descriptor);\n                    } catch (e) {}\n                }\n            }\n            \n            return targetComponent;\n        }\n        \n        return targetComponent;\n    };\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/node_modules/hoist-non-react-statics/index.js\n// module id = 92\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Aside } from '../aside/Aside';\nimport { Main } from '../main/Main';\nimport { Navbar } from '../navbar/Navbar';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L, XL } from '../spacing/SpacingConstants';\n\nimport './App.css';\nimport './ie11.css';\n\nconst APP__CLASS_NAMES = 'app';\nconst APP_NAVBAR__CLASS_NAMES = 'app-navbar';\nconst APP_CONTAINER__CLASS_NAMES = 'app-container';\nconst APP_ASIDE__CLASS_NAMES = 'app-aside';\nconst APP_MAIN__CLASS_NAMES = 'app-main';\nconst FULLSCREEN__CLASS_NAMES = 'fullscreen';\n\nconst FULLSCREEN_PARAMETER_NAME = 'fullscreen';\nconst IE11__CLASS_NAMES = 'ie11';\n\n/**\n * The App component is the entry point of the user interface of the application.\n *\n * It defines the global layout with a Narvab on top to display the name of the\n * application along with some additional actions. Under the Navbar, two columns\n * are used to display side by side the Aside component and the Main component.\n */\nconst AppWithoutRouter = ({ className, ...props }) => {\n  const { location } = props;\n\n  let query = location.search;\n  if (query[0] === '?') {\n    query = query.substring(1);\n  }\n  const segments = query.split('&');\n  const parameters = {};\n  for (var i = 0; i < segments.length; i++) {\n    const entry = segments[i].split('=');\n    parameters[decodeURIComponent(entry[0])] = decodeURIComponent(entry[1]);\n  }\n\n  const isFullScreen = parameters[FULLSCREEN_PARAMETER_NAME];\n\n  let appClassNames = classNames(APP__CLASS_NAMES, className);\n  let container = (\n    <div className={APP_CONTAINER__CLASS_NAMES}>\n      <Aside className={APP_ASIDE__CLASS_NAMES} />\n      <Main className={APP_MAIN__CLASS_NAMES} />\n    </div>\n  );\n\n  if (isFullScreen) {\n    appClassNames = classNames(APP__CLASS_NAMES, FULLSCREEN__CLASS_NAMES, className);\n    container = (\n      <div className={APP_CONTAINER__CLASS_NAMES}>\n        <Main className={APP_MAIN__CLASS_NAMES} />\n      </div>\n    );\n  }\n\n  const isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n  if (isIE11) {\n    appClassNames = classNames(appClassNames, IE11__CLASS_NAMES);\n  }\n\n  return (\n    <div className={appClassNames}>\n      <Navbar className={APP_NAVBAR__CLASS_NAMES} />\n      <Spacing top={L} right={M} bottom={XL} left={M}>\n        {container}\n      </Spacing>\n    </div>\n  );\n};\nexport const App = withRouter(AppWithoutRouter);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/app/App.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport './Aside.css';\n\nconst ASIDE__CLASS_NAMES = 'aside';\n\nconst ASIDE_MAIN_LINKS__CLASS_NAMES = 'aside-mainlinks';\nconst MAIN_LINKS__CLASS_NAMES = 'title-s';\n\nconst ASIDE_ADDITIONAL_LINKS__CLASS_NAMES = 'aside-additionallinks';\nconst ADDITIONAL_LINKS__CLASS_NAMES = 'caption-s';\n\n/**\n * The Aside component is used to display the navigation links to move from one\n * page to another.\n *\n * It contains two different kinds of links. One the top, we will have the main\n * links which are used to navigate to the major parts of the application. Under\n * those, we will display the additional links which will mainly be links to\n * external websites for help and support.\n */\nexport const Aside = ({ className, ...props }) => {\n  const asideClassNames = classNames(ASIDE__CLASS_NAMES, className);\n  return (\n    <aside className={asideClassNames} {...props}>\n      <div className={ASIDE_MAIN_LINKS__CLASS_NAMES}>\n        <ul>\n          <li>\n            <Link className={MAIN_LINKS__CLASS_NAMES} to=\"/\">\n              Dashboard\n            </Link>\n          </li>\n          <li>\n            <Link className={MAIN_LINKS__CLASS_NAMES} to=\"/projects\">\n              Projects\n            </Link>\n          </li>\n        </ul>\n      </div>\n      <div className={ASIDE_ADDITIONAL_LINKS__CLASS_NAMES}>\n        <ul>\n          <li>\n            <a\n              className={ADDITIONAL_LINKS__CLASS_NAMES}\n              href=\"https://github.com/eclipse/sirius-components/issues\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\">\n              Report an issue\n            </a>\n          </li>\n          <li>\n            <a\n              className={ADDITIONAL_LINKS__CLASS_NAMES}\n              href=\"https://stackoverflow.com/questions/tagged/sirius\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\">\n              Help\n            </a>\n          </li>\n        </ul>\n      </div>\n    </aside>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/aside/Aside.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport { classNames } from '../../common/classnames';\n\nimport { DashboardView } from '../dashboard/DashboardView';\nimport { ErrorBoundary } from '../error/ErrorBoundary';\nimport { ListProjectsView } from '../projects/listprojects/ListProjectsView';\nimport { NewProjectView } from '../projects/newproject/NewProjectView';\nimport { ProjectView } from '../projects/project/ProjectView';\nimport { Spacing } from '../spacing/Spacing';\nimport { L } from '../spacing/SpacingConstants';\n\nimport { DashboardViewStateContainer } from '../../containers/dashboard/DashboardViewStateContainer';\nimport { ListProjectsViewStateContainer } from '../../containers/projects/ListProjectsViewStateContainer';\nimport { NewProjectViewStateContainer } from '../../containers/projects/NewProjectViewStateContainer';\nimport { ProjectViewStateContainer } from '../../containers/projects/ProjectViewStateContainer';\n\nconst MAIN__CLASS_NAMES = 'main';\n\n/**\n * The Main is used to define the content of the main area of the application.\n *\n * This component will define the routing strategy of the application with the\n * list of views and their associated URLs.\n */\nexport const Main = ({ className, ...props }) => {\n  const mainClassNames = classNames(MAIN__CLASS_NAMES, className);\n  return (\n    <main className={mainClassNames} {...props}>\n      <Spacing right={L} left={L}>\n        <ErrorBoundary>\n          <Switch>\n            <Route exact path=\"/\" render={renderDashboardViewStateContainer} />\n            <Route exact path=\"/projects\" render={renderListProjectsViewStateContainer} />\n            <Route exact path=\"/projects/:projectName\" render={renderProjectViewStateContainer} />\n            <Route exact path=\"/newproject\" render={renderNewProjectViewStateContainer} />\n          </Switch>\n        </ErrorBoundary>\n      </Spacing>\n    </main>\n  );\n};\n\nconst renderDashboardViewStateContainer = () => (\n  <DashboardViewStateContainer>\n    {(stateId, error, dashboard) => (\n      <DashboardView stateId={stateId} error={error} dashboard={dashboard} />\n    )}\n  </DashboardViewStateContainer>\n);\n\nconst renderListProjectsViewStateContainer = () => (\n  <ListProjectsViewStateContainer>\n    {(stateId, error, projects) => (\n      <ListProjectsView stateId={stateId} error={error} projects={projects} />\n    )}\n  </ListProjectsViewStateContainer>\n);\n\nconst renderProjectViewStateContainer = () => (\n  <ProjectViewStateContainer>\n    {(stateId, error, project, pageIdentifier, onTabClick, onActivityClick, onNewDescription) => (\n      <ProjectView\n        stateId={stateId}\n        error={error}\n        project={project}\n        pageIdentifier={pageIdentifier}\n        onTabClick={onTabClick}\n        onActivityClick={onActivityClick}\n        onNewDescription={onNewDescription}\n      />\n    )}\n  </ProjectViewStateContainer>\n);\n\nconst renderNewProjectViewStateContainer = () => (\n  <NewProjectViewStateContainer>\n    {(stateId, errors, isValid, onSubmit, name, nameIsValid, nameErrors, onNameChange) => (\n      <NewProjectView\n        stateId={stateId}\n        errors={errors}\n        isValid={isValid}\n        onSubmit={onSubmit}\n        name={name}\n        nameIsValid={nameIsValid}\n        nameErrors={nameErrors}\n        onNameChange={onNameChange}\n      />\n    )}\n  </NewProjectViewStateContainer>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/main/Main.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../common/errors';\n\nimport { ErrorCard } from '../error/ErrorCard';\nimport { InfoCard } from '../info/InfoCard';\nimport { Loading } from '../loading/Loading';\nimport { ProjectSummaryCard } from '../projects/ProjectSummaryCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  DASHBOARD_LOADED__STATE\n} from './DashboardViewFiniteStateMachine';\n\nimport './DashboardView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired\n};\n\n/**\n * The DashboardView component is used as the main component in the dashboard page.\n * It will render a bird eye view of the state of the data of the user starting\n * with the list of the projects available.\n */\nexport const DashboardView = ({ className, stateId, error, dashboard, ...props }) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case DASHBOARD_LOADED__STATE:\n      return renderDashboardLoadedState(className, dashboard, props);\n    default:\n      const undefinedStateError = {\n        title: `The dashboard is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nDashboardView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the dashboard.\n * @param {*} className The class name of the dashboard.\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => <Loading className={className} {...props} />;\n\n/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => (\n  <ErrorCard className={className} {...error} {...props} />\n);\n\nconst DASHBOARD_VIEW__CLASS_NAMES = 'dashboardview';\nconst INFO__CLASS_NAMES = 'info';\nconst PROJECTS_INFO__CLASS_NAMES = 'projectsinfo';\nconst VIEWPOINTS_INFO__CLASS_NAMES = 'viewpointsinfo';\nconst METAMODELS_INFO__CLASS_NAMES = 'metamodelsinfo';\nconst NEWPROJECT_INFO__CLASS_NAMES = 'newprojectinfo';\nconst PROJECTS__CLASS_NAMES = 'projects';\nconst PROJECTS_BODY__CLASS_NAMES = 'projects-body';\n\n/**\n * Renders the dashboard.\n * @param {*} className The class name of the dashboard\n * @param {*} dashboard The dashboard to display\n * @param {*} props The properties of the component\n */\nconst renderDashboardLoadedState = (className, dashboard, props) => {\n  const dashboardViewClassNames = classNames(DASHBOARD_VIEW__CLASS_NAMES, className);\n\n  const { projectsCount, viewpointsCount, metamodelsCount } = dashboard;\n\n  return (\n    <div className={dashboardViewClassNames} {...props}>\n      <div className={INFO__CLASS_NAMES}>\n        <InfoCard\n          className={PROJECTS_INFO__CLASS_NAMES}\n          title={projectsCount.toString()}\n          message={'Projects'}\n        />\n        <InfoCard\n          className={VIEWPOINTS_INFO__CLASS_NAMES}\n          title={viewpointsCount.toString()}\n          message={'Viewpoints'}\n        />\n        <InfoCard\n          className={METAMODELS_INFO__CLASS_NAMES}\n          title={metamodelsCount.toString()}\n          message={'Metamodels'}\n        />\n      </div>\n      <div className={PROJECTS__CLASS_NAMES}>\n        <div className={PROJECTS_BODY__CLASS_NAMES}>\n          <Link to=\"/newproject\">\n            <InfoCard\n              className={NEWPROJECT_INFO__CLASS_NAMES}\n              title=\"+\"\n              message=\"New Project\"\n              to=\"\"\n            />\n          </Link>\n          {dashboard.projects.map(project => (\n            <ProjectSummaryCard key={project.name} project={project} />\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { L } from '../spacing/SpacingConstants';\n\nimport './InfoCard.css';\n\nconst propTypes = {\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string\n};\n\nconst INFOCARD__CLASS_NAMES = 'infocard';\nconst INFOCARD_CONTAINER__CLASS_NAMES = 'infocard-container';\nconst INFOCARD_TITLE__CLASS_NAMES = 'infocard-title';\nconst INFOCARD_MESSAGE__CLASS_NAMES = 'infocard-message';\n\n/**\n * The InfoCard component is used to display some information with a catchy card.\n */\nexport const InfoCard = ({ className, title, message, ...props }) => {\n  const infoCardClassNames = classNames(INFOCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={infoCardClassNames}>\n      <Spacing top={L} right={L} bottom={L} left={L}>\n        <div className={INFOCARD_CONTAINER__CLASS_NAMES}>\n          <h1 className={INFOCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          <p className={INFOCARD_MESSAGE__CLASS_NAMES}>{message}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nInfoCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/info/InfoCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst PROJECT_SUMMARY_CARD__CLASS_NAMES = 'projectsummarycard';\n\nconst propTypes = {\n  project: PropTypes.object.isRequired\n};\n\n/**\n * The ProjectSummaryCard is used to display a bird eye view of the project. It\n * displays the small amount of relevant properties of a project.\n */\nexport const ProjectSummaryCard = ({ project, ...props }) => {\n  return (\n    <Card className={PROJECT_SUMMARY_CARD__CLASS_NAMES} {...props}>\n      <Link to={`/projects/${project.name}`}>\n        <Spacing top={M} right={M} bottom={M} left={M}>\n          <Text weight={SEMI_BOLD} size={LARGE} hideOverflow>\n            {project.name}\n          </Text>\n        </Spacing>\n      </Link>\n      <Spacing top={S} right={M} bottom={M} left={M}>\n        <Text>{project.description || 'No description provided'}</Text>\n      </Spacing>\n    </Card>\n  );\n};\nProjectSummaryCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectSummaryCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\n\nimport { RENDERING_ERROR } from '../../common/errors';\n\nimport { ErrorCard } from './ErrorCard';\n\n/**\n * The ErrorBoundary is a component used to intercept uncaught exceptions\n * during the rendering.\n */\nexport class ErrorBoundary extends Component {\n  constructor(props) {\n    super(props);\n    this.state = { error: null };\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({ error });\n  }\n\n  render() {\n    const { error } = this.state;\n    const title = 'An unexpected error has appeared during the rendering';\n    if (error) {\n      return <ErrorCard code={RENDERING_ERROR} title={title} message={error.message} />;\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/ErrorBoundary.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { BlankCard } from '../../blank/BlankCard';\nimport { ErrorCard } from '../../error/ErrorCard';\nimport { Loading } from '../../loading/Loading';\n\nimport { ProjectsListCard } from '../ProjectsListCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  NO_PROJECTS_LOADED__STATE,\n  PROJECTS_LOADED__STATE\n} from './ListProjectsViewFiniteStateMachine';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired\n};\n\n/**\n * The ListProjectsView component is used to display the list of all the projects.\n */\nexport const ListProjectsView = ({ className, stateId, error, projects, ...props }) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case NO_PROJECTS_LOADED__STATE:\n      return renderEmptyState(className, props);\n    case PROJECTS_LOADED__STATE:\n      return renderProjectsLoadedState(className, projects, props);\n    default:\n      const undefinedStateError = {\n        title: `The projects list is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nListProjectsView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the projects list.\n * @param {*} className The class name of the projects list\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => {\n  const listProjectsViewLoadingClassNames = classNames('', className);\n  return <Loading className={listProjectsViewLoadingClassNames} {...props} />;\n};\n\n/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const listProjectsViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={listProjectsViewErrorClassNames} {...error} {...props} />;\n};\n\n/**\n * Renders the empty state.\n * @param {*} className The class name of the project list\n * @param {*} props The properties of the component\n */\nconst renderEmptyState = (className, props) => {\n  const listProjectsViewEmptyClassNames = classNames('', className);\n  return (\n    <BlankCard\n      title=\"You haven't created any projects yet\"\n      message=\"Once you start creating new projects, you will be able to see them here\"\n      className={listProjectsViewEmptyClassNames}\n      {...props}\n    />\n  );\n};\n\nconst LIST_PROJECTS_VIEW__CLASS_NAMES = 'listprojectsview';\n\n/**\n * Renders the projects loaded.\n * @param {*} className The class name of the projects list\n * @param {*} projects The projects to be displayed\n * @param {*} props The properties of the component\n */\nconst renderProjectsLoadedState = (className, projects, props) => {\n  const listProjectsViewClassNames = classNames(LIST_PROJECTS_VIEW__CLASS_NAMES, className);\n  return (\n    <div className={listProjectsViewClassNames}>\n      <ProjectsListCard projects={projects} {...props} />\n    </div>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { Spacing } from '../spacing/Spacing';\nimport { M, L } from '../spacing/SpacingConstants';\n\nimport './BlankCard.css';\n\nconst propTypes = {\n  title: PropTypes.string.isRequired,\n  message: PropTypes.string.isRequired\n};\n\nconst BLANKCARD__CLASS_NAMES = 'blankcard';\nconst BLANKCARD_CONTAINER__CLASS_NAMES = 'blankcard-container';\nconst BLANKCARD_TITLE__CLASS_NAMES = 'title-l';\n\n/**\n * The BlankCard component is used to render the empty state of a page.\n */\nexport const BlankCard = ({ className, title, message, ...props }) => {\n  const blankCardClassNames = classNames(BLANKCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={blankCardClassNames}>\n      <Spacing top={L} right={L} left={L} bottom={L}>\n        <div className={BLANKCARD_CONTAINER__CLASS_NAMES}>\n          <Spacing bottom={M}>\n            <h1 className={BLANKCARD_TITLE__CLASS_NAMES}>{title}</h1>\n          </Spacing>\n          <p>{message}</p>\n        </div>\n      </Spacing>\n    </Card>\n  );\n};\nBlankCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/blank/BlankCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { AdditionalText, List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND } from '../list/ListConstants';\nimport { TWO_LINES } from '../list/ListConstants';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nimport './ProjectsListCard.css';\n\nconst PROJECTS_LIST_CARD__CLASS_NAMES = 'projectslistcard';\n\nconst propTypes = {\n  projects: PropTypes.array.isRequired\n};\nconst defaultProps = {\n  projects: []\n};\n\n/**\n * The ProjectsListCard is used to display a list of projects as a card.\n */\nexport const ProjectsListCard = ({ className, projects, ...props }) => {\n  const projectsListCardClassNames = classNames(PROJECTS_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={projectsListCardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={LARGE}>\n          Projects\n        </Text>\n      </Spacing>\n      <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n        {projects.map(project => {\n          return (\n            <Link to={`projects/${project.name}`} key={project.name}>\n              <Tile kind={TWO_LINES}>\n                <div>\n                  <MainText>{project.name}</MainText>\n                  <AdditionalText>\n                    {project.description || 'No description provided'}\n                  </AdditionalText>\n                </div>\n              </Tile>\n            </Link>\n          );\n        })}\n      </List>\n    </Card>\n  );\n};\nProjectsListCard.propTypes = propTypes;\nProjectsListCard.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectsListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Redirect } from 'react-router-dom';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { ErrorCard } from '../../error/ErrorCard';\n\nimport { NewProjectCard } from '../NewProjectCard';\n\nimport {\n  PRISTINE__STATE,\n  MODIFIED__STATE,\n  REDIRECT__STATE\n} from './NewProjectViewFiniteStateMachine';\n\nimport './NewProjectView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string.isRequired,\n  errors: PropTypes.arrayOf(PropTypes.string).isRequired,\n  isValid: PropTypes.bool.isRequired,\n  onSubmit: PropTypes.func.isRequired,\n  name: PropTypes.string.isRequired,\n  nameIsValid: PropTypes.bool.isRequired,\n  nameErrors: PropTypes.arrayOf(PropTypes.string).isRequired,\n  onNameChange: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n  errors: [],\n  isValid: false,\n  onSubmit: () => {},\n  name: '',\n  nameIsValid: false,\n  nameErrors: [],\n  onNameChange: () => {}\n};\n\n/**\n * The NewProjectView component is used to display a new project form.\n */\nexport const NewProjectView = ({\n  className,\n  stateId,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange,\n  ...props\n}) => {\n  switch (stateId) {\n    case PRISTINE__STATE:\n    case MODIFIED__STATE:\n      return renderForm(\n        className,\n        errors,\n        isValid,\n        onSubmit,\n        name,\n        nameIsValid,\n        nameErrors,\n        onNameChange\n      );\n    case REDIRECT__STATE:\n      return renderRedirectState(name);\n    default:\n      const undefinedStateError = {\n        title: `The new project page is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nNewProjectView.propTypes = propTypes;\nNewProjectView.defaultProps = defaultProps;\n\nconst NEW_PROJECT_VIEW__CLASS_NAMES = 'newprojectview';\n\n/**\n * Renders the form used to create a new project.\n */\nconst renderForm = (\n  className,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange\n) => {\n  const newProjectViewClassNames = classNames(NEW_PROJECT_VIEW__CLASS_NAMES, className);\n  return (\n    <div className={newProjectViewClassNames}>\n      <NewProjectCard\n        errors={errors}\n        isValid={isValid}\n        onSubmit={onSubmit}\n        name={name}\n        nameIsValid={nameIsValid}\n        nameErrors={nameErrors}\n        onNameChange={onNameChange}\n      />\n    </div>\n  );\n};\n\n/**\n * Renders a redirect component used to redirect the router to the page of the\n * newly created project.\n *\n * @param {*} name The name of the project\n */\nconst renderRedirectState = name => <Redirect to={`/projects/${name}`} />;\n\n/**\n * Renders the error.\n * @param {*} className The class name of the project list\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const newProjectViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={newProjectViewErrorClassNames} {...error} {...props} />;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Button } from '../buttons/Button';\nimport { BUTTON_PRIMARY__KIND } from '../buttons/ButtonConstants';\nimport { Card, Divider } from '../cards/Card';\nimport {\n  ActionGroup,\n  Description,\n  ErrorGroup,\n  Error,\n  Form,\n  Field,\n  Label,\n  TextField\n} from '../form/Form';\nimport { Spacing } from '../spacing/Spacing';\nimport { M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst NEWPROJECT_CARD__CLASS_NAMES = 'newprojectcard';\n\nconst propTypes = {};\n\n/**\n * The NewProjectCard is used to create a new project.\n */\nexport const NewProjectCard = ({\n  className,\n  errors,\n  isValid,\n  onSubmit,\n  name,\n  nameIsValid,\n  nameErrors,\n  onNameChange,\n  ...props\n}) => {\n  const newProjectCardClassNames = classNames(NEWPROJECT_CARD__CLASS_NAMES, className);\n  let nameClassName = '';\n  if (!nameIsValid && nameErrors.length > 0) {\n    nameClassName = 'fielderror';\n  }\n\n  return (\n    <Card className={newProjectCardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={LARGE} hideOverflow>\n          New Project\n        </Text>\n      </Spacing>\n      <Divider />\n      <Form onSubmit={onSubmit}>\n        <ErrorGroup>{errors.map(error => <Error key={error}>{error}</Error>)}</ErrorGroup>\n        <Field>\n          <Label htmlFor=\"name\">Name</Label>\n          <Description>\n            The name of the project can only contain letters and numbers separated by dots, dashes\n            or underscores.\n          </Description>\n          <TextField\n            id=\"name\"\n            name=\"name\"\n            className={nameClassName}\n            placeholder=\"Enter the name\"\n            value={name}\n            onChange={onNameChange}\n          />\n          <ErrorGroup>{nameErrors.map(error => <Error key={error}>{error}</Error>)}</ErrorGroup>\n        </Field>\n        <ActionGroup>\n          <Button kind={BUTTON_PRIMARY__KIND} disabled={!isValid}>\n            Create Project\n          </Button>\n        </ActionGroup>\n      </Form>\n    </Card>\n  );\n};\nNewProjectCard.propTypes = propTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/NewProjectCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\nimport { UNSUPPORTED_STATE } from '../../../common/errors';\n\nimport { ErrorCard } from '../../error/ErrorCard';\nimport { LoadingProvider } from '../../loading/Loading';\nimport { WorkflowCard } from '../../workflow/WorkflowCard';\n\nimport { ProjectHeaderCard } from '../header/ProjectHeaderCard';\nimport { ProjectRepresentationsListCard } from '../ProjectRepresentationsListCard';\nimport { ProjectSemanticResourcesListCard } from '../ProjectSemanticResourcesListCard';\n\nimport {\n  ERROR__STATE,\n  LOADING__STATE,\n  PROJECT_LOADED__STATE\n} from './ProjectViewFiniteStateMachine';\n\nimport './ProjectView.css';\n\nconst propTypes = {\n  stateId: PropTypes.string\n};\n\n/**\n * The ProjectView is used to display and manipulate a project.\n */\nexport const ProjectView = ({\n  className,\n  stateId,\n  error,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  ...props\n}) => {\n  switch (stateId) {\n    case LOADING__STATE:\n      return renderLoadingState(className, props);\n    case ERROR__STATE:\n      return renderErrorState(className, error, props);\n    case PROJECT_LOADED__STATE:\n      return renderProjectLoadedState(\n        className,\n        project,\n        pageIdentifier,\n        onTabClick,\n        onActivityClick,\n        onNewDescription,\n        props\n      );\n    default:\n      const undefinedStateError = {\n        title: `The project is in an unsupported state: ${stateId}`,\n        message: 'Contact your administrator to find a suitable solution',\n        code: UNSUPPORTED_STATE\n      };\n      return renderErrorState(className, undefinedStateError, props);\n  }\n};\nProjectView.propTypes = propTypes;\n\n/**\n * Renders the loading state of the project.\n * @param {*} className The class name of the project\n * @param {*} props The properties of the component\n */\nconst renderLoadingState = (className, props) => {\n  const project = {};\n  const pageIdentifier = undefined;\n  const onTabClick = () => {};\n  const onActivityClick = () => {};\n  const onNewDescription = () => {};\n  return renderProjectState(\n    className,\n    project,\n    pageIdentifier,\n    onTabClick,\n    onActivityClick,\n    onNewDescription,\n    true,\n    props\n  );\n};\n\n/**\n * Renders the error.\n * @param {*} className The class name of the dashboard\n * @param {*} error The error to render\n * @param {*} props The properties of the component\n */\nconst renderErrorState = (className, error, props) => {\n  const projectViewErrorClassNames = classNames('', className);\n  return <ErrorCard className={projectViewErrorClassNames} {...error} {...props} />;\n};\n\nconst renderProjectLoadedState = (\n  className,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  props\n) =>\n  renderProjectState(\n    className,\n    project,\n    pageIdentifier,\n    onTabClick,\n    onActivityClick,\n    onNewDescription,\n    false,\n    props\n  );\n\nconst PROJECT_VIEW__CLASS_NAMES = 'projectview';\nconst PROJECT_VIEW_MAIN__CLASS_NAMES = 'projectview-main';\nconst PROJECT_VIEW_DETAILS__CLASS_NAMES = 'projectview-details';\nconst PROJECT_VIEW_WORKFLOW__CLASS_NAMES = 'projectview-workflow';\n\n/**\n * Renders the project.\n * @param {*} className The class name of the project\n * @param {*} project The project to be displayed\n * @param {*} pageIdentifier The identifier of the page displayed in the workflow\n * @param {*} onTabClick The callback executed when a tab is clicked\n * @param {*} onActivityClick The callback executed when an activity is clicked\n * @param {*} onNewDescription The callback executed when the description is updated\n * @param {*} loading Indicates if the page is being loaded\n * @param {*} props The properties of the component\n */\nconst renderProjectState = (\n  className,\n  project,\n  pageIdentifier,\n  onTabClick,\n  onActivityClick,\n  onNewDescription,\n  loading,\n  props\n) => {\n  const projectViewClassNames = classNames(PROJECT_VIEW__CLASS_NAMES, className);\n  return (\n    <LoadingProvider loading={loading}>\n      <div className={projectViewClassNames}>\n        <ProjectHeaderCard\n          name={project.name}\n          description={project.description}\n          onNewDescription={onNewDescription}\n        />\n        <div className={PROJECT_VIEW_MAIN__CLASS_NAMES}>\n          <div className={PROJECT_VIEW_DETAILS__CLASS_NAMES}>\n            <ProjectSemanticResourcesListCard semanticResources={project.semanticResources} />\n            <ProjectRepresentationsListCard\n              projectName={project.name}\n              representations={project.representations}\n            />\n          </div>\n          <div className={PROJECT_VIEW_WORKFLOW__CLASS_NAMES}>\n            <WorkflowCard\n              projectName={project.name}\n              pageIdentifier={pageIdentifier}\n              pages={project.pages}\n              sections={project.currentPageSections}\n              onTabClick={onTabClick}\n              onActivityClick={onActivityClick}\n            />\n          </div>\n        </div>\n      </div>\n    </LoadingProvider>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectView.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card, Divider } from '../cards/Card';\nimport { IconRun } from '../icons/IconRun';\nimport { List, MainText, Tile, AdditionalIcon } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND } from '../list/ListConstants';\nimport { SINGLE_LINE } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { TabBar } from '../tabbar/TabBar';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, MEDIUM, LARGE } from '../text/TextConstants';\n\nimport './WorkflowCard.css';\n\nconst propTypes = {\n  projectName: PropTypes.string.isRequired,\n  pageIdentifier: PropTypes.string.isRequired,\n  pages: PropTypes.array.isRequired,\n  sections: PropTypes.array.isRequired,\n  onTabClick: PropTypes.func,\n  onActivityClick: PropTypes.func\n};\nconst defaultProps = {\n  projectName: '',\n  pageIdentifier: '',\n  pages: [],\n  sections: [],\n  onTabClick: () => {},\n  onActivityClick: () => {}\n};\n\nconst WORKFLOWCARD__CLASS_NAMES = 'workflowcard';\n\n/**\n * The WorkflowCard component is used to render the workflow of the page.\n */\nexport const WorkflowCard = ({\n  className,\n  projectName,\n  pageIdentifier,\n  pages,\n  sections,\n  onTabClick,\n  onActivityClick,\n  ...props\n}) => {\n  let selectedTabIndex = 0;\n  for (let index = 0; index < pages.length; index++) {\n    let page = pages[index];\n    if (page.identifier === pageIdentifier) {\n      selectedTabIndex = index;\n    }\n  }\n\n  let sectionsElement;\n  if (pages.length > 0) {\n    sectionsElement = (\n      <Sections\n        sections={sections}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        onActivityClick={onActivityClick}\n      />\n    );\n  }\n\n  const workflowCardClassNames = classNames(WORKFLOWCARD__CLASS_NAMES, className);\n  return (\n    <Card {...props} className={workflowCardClassNames}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Workflow\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <WorkflowTabBar pages={pages} selectedTabIndex={selectedTabIndex} onTabClick={onTabClick} />\n      {sectionsElement}\n    </Card>\n  );\n};\nWorkflowCard.propTypes = propTypes;\nWorkflowCard.defaultProps = defaultProps;\n\nconst WorkflowTabBar = ({ pages, selectedTabIndex, onTabClick }) => {\n  if (pages.length === 0) {\n    return (\n      <Spacing top={S} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => <Text loading={loading}>No workflow pages found</Text>}\n        </LoadingConsumer>\n      </Spacing>\n    );\n  }\n  return (\n    <TabBar\n      selectedTabIndex={selectedTabIndex}\n      tabs={pages.map(page => page.name)}\n      onTabClick={onTabClick}\n    />\n  );\n};\n\nconst Sections = ({ sections, projectName, pageIdentifier, onActivityClick }) => {\n  if (sections.length === 0) {\n    return <EmptySections />;\n  }\n  return sections.map((section, index) => (\n    <Fragment key={section.identifier}>\n      <Section\n        key={section.identifier}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        section={section}\n        onActivityClick={onActivityClick}\n      />\n      {index + 1 < sections.length ? <Divider /> : null}\n    </Fragment>\n  ));\n};\n\nconst EmptySections = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <Text>No sections found in the workflow.</Text>\n  </Spacing>\n);\n\nconst SECTION__CLASS_NAMES = 'section';\n\nconst Section = ({\n  className,\n  projectName,\n  pageIdentifier,\n  section,\n  onActivityClick,\n  ...props\n}) => {\n  const sectionClassNames = classNames(SECTION__CLASS_NAMES, className);\n  return (\n    <div className={sectionClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <Text weight={SEMI_BOLD} size={MEDIUM} hideOverflow>\n          {section.name}\n        </Text>\n      </Spacing>\n      <Activities\n        activities={section.activities}\n        onActivityClick={onActivityClick}\n        projectName={projectName}\n        pageIdentifier={pageIdentifier}\n        sectionIdentifier={section.identifier}\n      />\n    </div>\n  );\n};\n\nconst Activities = ({\n  activities,\n  onActivityClick,\n  projectName,\n  pageIdentifier,\n  sectionIdentifier\n}) => {\n  if (activities.length === 0) {\n    return <EmptyActivities />;\n  }\n  return (\n    <ActivitiesList\n      activities={activities}\n      onActivityClick={onActivityClick}\n      projectName={projectName}\n      pageIdentifier={pageIdentifier}\n      sectionIdentifier={sectionIdentifier}\n    />\n  );\n};\n\nconst ActivitiesList = ({\n  activities,\n  onActivityClick,\n  projectName,\n  pageIdentifier,\n  sectionIdentifier\n}) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {activities.map(activity => (\n      <Tile kind={SINGLE_LINE} key={activity.identifier}>\n        <MainText>{activity.name}</MainText>\n        <AdditionalIcon>\n          <IconRun\n            onClick={() =>\n              onActivityClick(projectName, pageIdentifier, sectionIdentifier, activity.identifier)\n            }\n          />\n        </AdditionalIcon>\n      </Tile>\n    ))}\n  </List>\n);\n\nconst EmptyActivities = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <Text>No activities in the section.</Text>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/workflow/WorkflowCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport './IconRun.css';\n\nconst ICONRUN__CLASS_NAMES = 'iconrun';\n\n/**\n * The run SVG icon.\n */\nexport const IconRun = ({ className, ...props }) => {\n  const iconRunClassNames = classNames(ICONRUN__CLASS_NAMES, className);\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className={iconRunClassNames}\n      height=\"16\"\n      width=\"16\"\n      {...props}>\n      <polygon points=\"0,0 16,8 0,16\" />\n    </svg>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/icons/IconRun.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD } from '../text/TextConstants';\n\nimport { Tab } from './Tab';\nimport { actionCreator, dispatcher } from './TabBarDispatcher';\n\nimport './TabBar.css';\n\nconst TABBAR__CLASS_NAMES = 'tabbar';\nconst TABBAR_NAV__CLASS_NAMES = 'tabbar-nav';\nconst TABBAR_NAV__DISABLED__CLASS_NAMES = 'tabbar-nav--disabled';\nconst TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES = 'tabbar-nav--contain-selection';\nconst TABBAR_TABS__CLASS_NAMES = 'tabbar-tabs';\n\nconst propTypes = {\n  tabs: PropTypes.array.isRequired,\n  onTabClick: PropTypes.func.isRequired,\n  selectedTabIndex: PropTypes.number.isRequired,\n  numberOfTabsDisplayed: PropTypes.number.isRequired\n};\nconst defaultProps = {\n  tabs: [],\n  onTabClick: () => {},\n  selectedTabIndex: 0,\n  numberOfTabsDisplayed: 3\n};\n\n/**\n * The TabBar component is used to display horizontally a list of elements with\n * two buttons to navigate into the list to the previous or next elements. It\n * also allows the selection of one specific element in the list.\n */\nexport class TabBar extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleTabBarNavClick = this.handleTabBarNavClick.bind(this);\n    this.handleTabClick = this.handleTabClick.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  dispatch(action, callback) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action), callback);\n  }\n\n  handleTabBarNavClick({ target }) {\n    const side = target.getAttribute('data-side');\n    if (side === 'previous' && this.state.isPreviousAvailable) {\n      const action = actionCreator.newHandlePreviousAction();\n      this.dispatch(action);\n    } else if (side === 'next' && this.state.isNextAvailable) {\n      const action = actionCreator.newHandleNextAction();\n      this.dispatch(action);\n    }\n  }\n\n  handleTabClick(event, index) {\n    const { onTabClick } = this.props;\n\n    const action = actionCreator.newHandleTabSelectedAction(index);\n    this.dispatch(action, () => onTabClick(index));\n  }\n\n  getTabBarNavClassNames(isAvailable, containsSelection) {\n    let tabBarNavClassNames = TABBAR_NAV__CLASS_NAMES;\n    if (!isAvailable) {\n      tabBarNavClassNames = classNames(TABBAR_NAV__CLASS_NAMES, TABBAR_NAV__DISABLED__CLASS_NAMES);\n    } else if (containsSelection) {\n      tabBarNavClassNames = classNames(\n        TABBAR_NAV__CLASS_NAMES,\n        TABBAR_TAB__CONTAIN_SELECTION__CLASS_NAMES\n      );\n    }\n    return tabBarNavClassNames;\n  }\n\n  renderTabs(tabs, startIndex, selectedTabIndex, numberOfTabsDisplayed) {\n    const tabsToDisplay = [];\n    const endIndex = Math.min(tabs.length, startIndex + numberOfTabsDisplayed);\n    for (let index = startIndex; index < endIndex; index++) {\n      let tab = tabs[index];\n      tabsToDisplay.push(\n        <Tab\n          key={tab}\n          index={index}\n          onClick={this.handleTabClick}\n          selected={index === selectedTabIndex}>\n          {tab}\n        </Tab>\n      );\n    }\n    return tabsToDisplay;\n  }\n\n  render() {\n    const { className, tabs, numberOfTabsDisplayed } = this.props;\n    const { index, isPreviousAvailable, isNextAvailable, selectedTabIndex } = this.state;\n\n    const previousContainsSelection = selectedTabIndex < index;\n    const nextContainsSelection = index + numberOfTabsDisplayed < selectedTabIndex + 1;\n\n    const tabBarClassNames = classNames(TABBAR__CLASS_NAMES, className);\n    const previousClassNames = this.getTabBarNavClassNames(\n      isPreviousAvailable,\n      previousContainsSelection\n    );\n    const nextClassNames = this.getTabBarNavClassNames(isNextAvailable, nextContainsSelection);\n    const tabsToDisplay = this.renderTabs(tabs, index, selectedTabIndex, numberOfTabsDisplayed);\n\n    return (\n      <div className={tabBarClassNames}>\n        <div\n          className={previousClassNames}\n          onClick={this.handleTabBarNavClick}\n          data-side=\"previous\">\n          <Text weight={SEMI_BOLD}>&lt;</Text>\n        </div>\n        <div className={TABBAR_TABS__CLASS_NAMES}>{tabsToDisplay}</div>\n        <div className={nextClassNames} onClick={this.handleTabBarNavClick} data-side=\"next\">\n          <Text weight={SEMI_BOLD}>&gt;</Text>\n        </div>\n      </div>\n    );\n  }\n}\nTabBar.propTypes = propTypes;\nTabBar.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBar.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, MEDIUM } from '../text/TextConstants';\n\nimport './Tab.css';\n\nconst TAB__CLASS_NAMES = 'tab';\nconst TAB_SELECTED__CLASS_NAMES = 'tab--selected';\n\nconst propTypes = {\n  selected: PropTypes.bool.isRequired,\n  index: PropTypes.number.isRequired,\n  onClick: PropTypes.func.isRequired\n};\nconst defaultProps = {\n  selected: false,\n  onClick: () => {}\n};\n\n/**\n * The Tab component is used to display one tab in a TabBar.\n */\nexport class Tab extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleTabClick = this.handleTabClick.bind(this);\n  }\n\n  handleTabClick(event) {\n    const { index, onClick } = this.props;\n    onClick(event, index);\n  }\n\n  render() {\n    const { className, children, selected } = this.props;\n    let tabClassNames = TAB__CLASS_NAMES;\n    if (selected) {\n      tabClassNames = classNames(tabClassNames, TAB_SELECTED__CLASS_NAMES);\n    }\n    tabClassNames = classNames(tabClassNames, className);\n    return (\n      <div className={tabClassNames} onClick={this.handleTabClick}>\n        <Text weight={SEMI_BOLD} size={MEDIUM} hideOverflow>\n          {children}\n        </Text>\n      </div>\n    );\n  }\n}\nTab.propTypes = propTypes;\nTab.defaultProps = defaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/Tab.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../common/dispatcherCreator';\n\nimport {\n  FSM,\n  INITIAL__STATE,\n  INITIALIZE__ACTION,\n  HANDLE_NEXT__ACTION,\n  HANDLE_PREVIOUS__ACTION,\n  HANDLE_TAB_SELECTED__ACTION,\n  MOVED__STATE,\n  PRISTINE__STATE\n} from './TabBarFiniteStateMachine';\n\n/**\n * The reducer of the tab bar.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the tab bar.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      const initializedState = computeState(\n        props.tabs,\n        0,\n        props.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      initializedState.stateId = PRISTINE__STATE;\n      return initializedState;\n    case HANDLE_NEXT__ACTION:\n      const handleNextState = computeState(\n        props.tabs,\n        state.index + 1,\n        state.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handleNextState.stateId = MOVED__STATE;\n      return handleNextState;\n    case HANDLE_PREVIOUS__ACTION:\n      const handlePreviousState = computeState(\n        props.tabs,\n        state.index - 1,\n        state.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handlePreviousState.stateId = MOVED__STATE;\n      return handlePreviousState;\n    case HANDLE_TAB_SELECTED__ACTION:\n      const handleTabSelectedState = computeState(\n        props.tabs,\n        state.index,\n        action.selectedTabIndex,\n        props.numberOfTabsDisplayed\n      );\n      handleTabSelectedState.stateId = MOVED__STATE;\n      return handleTabSelectedState;\n    default:\n      return state;\n  }\n};\n\nconst computeState = (tabs, index, selectedTabIndex, numberOfTabsDisplayed) => {\n  const isPreviousAvailable = index > 0;\n  const isNextAvailable = tabs.length > index + numberOfTabsDisplayed;\n  return {\n    index,\n    isPreviousAvailable,\n    isNextAvailable,\n    selectedTabIndex\n  };\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle next action used to navigate to the next tabs in the tab bar.\n */\nconst newHandleNextAction = () => ({\n  kind: HANDLE_NEXT__ACTION\n});\n\n/**\n * Returns an handle previous action used to navigate to the next tabs in the tab bar.\n */\nconst newHandlePreviousAction = () => ({\n  kind: HANDLE_PREVIOUS__ACTION\n});\n\n/**\n * Returns an handle tab selected action used to select a specific tab in the tab bar.\n *\n * @param {*} selectedTabIndex The index of the selected tab\n */\nconst newHandleTabSelectedAction = selectedTabIndex => ({\n  kind: HANDLE_TAB_SELECTED__ACTION,\n  selectedTabIndex\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleNextAction,\n  newHandlePreviousAction,\n  newHandleTabSelectedAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBarDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nexport const INITIAL__STATE = 'INITIAL__STATE';\nexport const PRISTINE__STATE = 'PRISTINE__STATE';\nexport const MOVED__STATE = 'MOVED__STATE';\n\nexport const INITIALIZE__ACTION = 'INITIALIZE__ACTION';\nexport const HANDLE_NEXT__ACTION = 'HANDLE_NEXT__ACTION';\nexport const HANDLE_PREVIOUS__ACTION = 'HANDLE_PREVIOUS__ACTION';\nexport const HANDLE_TAB_SELECTED__ACTION = 'HANDLE_TAB_SELECTED__ACTION';\n\nexport const FSM = {\n  INITIAL__STATE: { INITIALIZE__ACTION: [PRISTINE__STATE] },\n  PRISTINE__STATE: {\n    HANDLE_NEXT__ACTION: [MOVED__STATE],\n    HANDLE_PREVIOUS__ACTION: [MOVED__STATE],\n    HANDLE_TAB_SELECTED__ACTION: [MOVED__STATE]\n  },\n  MOVED__STATE: {\n    HANDLE_NEXT__ACTION: [MOVED__STATE],\n    HANDLE_PREVIOUS__ACTION: [MOVED__STATE],\n    HANDLE_TAB_SELECTED__ACTION: [MOVED__STATE]\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/tabbar/TabBarFiniteStateMachine.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\n\nimport { Card } from '../../cards/Card';\nimport { LoadingConsumer } from '../../loading/Loading';\nimport { Spacing } from '../../spacing/Spacing';\nimport { S, M } from '../../spacing/SpacingConstants';\nimport { Text } from '../../text/Text';\nimport { SEMI_BOLD, EXTRA_LARGE } from '../../text/TextConstants';\n\nimport { EditDescription } from './EditDescription';\nimport { ViewDescription } from './ViewDescription';\n\nconst PROJECTHEADERCARD__CLASS_NAMES = 'projectheadercard';\n\nconst projectHeaderCardPropTypes = {\n  name: PropTypes.string.isRequired,\n  description: PropTypes.string,\n  onNewDescription: PropTypes.func.isRequired\n};\nconst projectHeaderCardDefaultProps = {\n  name: '',\n  onNewDescription: () => {}\n};\n\n/**\n * The ProjectHeaderCard is used to contain the most important properties of a\n * project and the main actions used to interact with it.\n */\nexport class ProjectHeaderCard extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleEditClick = this.handleEditClick.bind(this);\n    this.handleNewDescription = this.handleNewDescription.bind(this);\n\n    this.state = { isViewingDescription: true };\n  }\n\n  handleEditClick() {\n    this.setState({ isViewingDescription: false });\n  }\n\n  handleNewDescription(description) {\n    this.setState({ isViewingDescription: true }, () => {\n      const { onNewDescription } = this.props;\n      onNewDescription(description);\n    });\n  }\n\n  render() {\n    const { className, name, description, onNewDescription, ...props } = this.props;\n    const { isViewingDescription } = this.state;\n\n    const cardClassNames = classNames(PROJECTHEADERCARD__CLASS_NAMES, className);\n    return (\n      <Card className={cardClassNames} {...props}>\n        <Spacing top={M} right={M} bottom={M} left={M}>\n          <LoadingConsumer>\n            {loading => (\n              <Text weight={SEMI_BOLD} size={EXTRA_LARGE} hideOverflow loading={loading}>\n                {name}\n              </Text>\n            )}\n          </LoadingConsumer>\n        </Spacing>\n        <Spacing top={S} right={M} bottom={S} left={M}>\n          {isViewingDescription ? (\n            <ViewDescription\n              description={description || 'No description provided'}\n              onEditClick={this.handleEditClick}\n            />\n          ) : (\n            <EditDescription\n              description={description}\n              onNewDescription={this.handleNewDescription}\n            />\n          )}\n        </Spacing>\n      </Card>\n    );\n  }\n}\nProjectHeaderCard.propTypes = projectHeaderCardPropTypes;\nProjectHeaderCard.defaultProps = projectHeaderCardDefaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ProjectHeaderCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '../../buttons/Button';\nimport { TextField } from '../../form/Form';\nimport { Spacing } from '../../spacing/Spacing';\nimport { M } from '../../spacing/SpacingConstants';\n\nimport './EditDescription.css';\n\nconst EDITDESCRIPTION__CLASS_NAMES = 'editdescription';\n\nconst editDescriptionPropTypes = {\n  description: PropTypes.string.isRequired,\n  onNewDescription: PropTypes.func.isRequired\n};\nconst editDescriptionDefaultProps = {\n  description: ''\n};\n\n/**\n * The EditDescription component is used to edit the description of the project.\n */\nexport class EditDescription extends Component {\n  constructor(props) {\n    super(props);\n    this.handleDescriptionChange = this.handleDescriptionChange.bind(this);\n    this.handleDoneClick = this.handleDoneClick.bind(this);\n\n    this.state = {\n      description: props.description\n    };\n  }\n\n  handleDescriptionChange({ target: { value } }) {\n    this.setState({ description: value });\n  }\n\n  handleDoneClick() {\n    const { onNewDescription } = this.props;\n    const { description } = this.state;\n    onNewDescription(description);\n  }\n\n  render() {\n    const { description } = this.state;\n    return (\n      <div className={EDITDESCRIPTION__CLASS_NAMES}>\n        <TextField value={description} onChange={this.handleDescriptionChange} />\n        <Spacing left={M}>\n          <Button onClick={this.handleDoneClick}>Done</Button>\n        </Spacing>\n      </div>\n    );\n  }\n}\nEditDescription.propTypes = editDescriptionPropTypes;\nEditDescription.defaultProps = editDescriptionDefaultProps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/EditDescription.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../../common/classnames';\n\nimport { Button } from '../../buttons/Button';\nimport { LoadingConsumer } from '../../loading/Loading';\nimport { Spacing } from '../../spacing/Spacing';\nimport { M } from '../../spacing/SpacingConstants';\nimport { Text } from '../../text/Text';\n\nimport './ViewDescription.css';\n\nconst VIEWDESCRIPTION__CLASS_NAMES = 'viewdescription';\nconst VIEWDESCRIPTION_TEXT__CLASS_NAMES = 'viewdescription-text';\n\nconst viewDescriptionPropTypes = {\n  description: PropTypes.string.isRequired,\n  onEditClick: PropTypes.func.isRequired\n};\n\n/**\n * The ViewDescription component is used to display the description of the\n * project with a button used to edit it.\n */\nexport const ViewDescription = ({ className, description, onEditClick, ...props }) => {\n  const viewDescriptionClassNames = classNames(VIEWDESCRIPTION__CLASS_NAMES, className);\n  return (\n    <div className={viewDescriptionClassNames} {...props}>\n      <LoadingConsumer>\n        {loading => (\n          <React.Fragment>\n            <Text className={VIEWDESCRIPTION_TEXT__CLASS_NAMES} loading={loading}>\n              {description}\n            </Text>\n            <Spacing left={M}>\n              <Button onClick={onEditClick} loading={loading}>\n                Edit\n              </Button>\n            </Spacing>\n          </React.Fragment>\n        )}\n      </LoadingConsumer>\n    </div>\n  );\n};\nViewDescription.propTypes = viewDescriptionPropTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/header/ViewDescription.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { AdditionalText, List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND, TWO_LINES } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, LARGE } from '../text/TextConstants';\n\nconst PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES = 'projectrepresentationslistcard';\n\nconst propTypes = {\n  representations: PropTypes.array.isRequired\n};\n\nconst defaultProps = {\n  representations: []\n};\n\n/**\n * The ProjectRepresentationsListCard is a Card listing all the representations\n * of a project.\n */\nexport const ProjectRepresentationsListCard = ({\n  className,\n  projectName,\n  representations,\n  ...props\n}) => {\n  const cardClassNames = classNames(PROJECT_REPRESENTATIONS_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={cardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Representations\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <Representations projectName={projectName} representations={representations} />\n    </Card>\n  );\n};\nProjectRepresentationsListCard.propTypes = propTypes;\nProjectRepresentationsListCard.defaultProps = defaultProps;\n\n/**\n * Renders the representations of the card or a text indicating the lack of\n * representations.\n */\nconst Representations = ({ projectName, representations }) => {\n  if (representations.length > 0) {\n    return <RepresentationsList projectName={projectName} representations={representations} />;\n  }\n  return <EmptyRepresentations />;\n};\n\n/**\n * Renders the list of representations.\n */\nconst RepresentationsList = ({ projectName, representations }) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {representations.map(representation => (\n      <Tile kind={TWO_LINES} key={representation.name}>\n        <div>\n          <MainText>{representation.name}</MainText>\n          <AdditionalText>{representation.descriptionName}</AdditionalText>\n        </div>\n      </Tile>\n    ))}\n  </List>\n);\n\n/**\n * Renders a text indicating the lack of representations.\n */\nconst EmptyRepresentations = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <LoadingConsumer>\n      {loading => <Text loading={loading}>No representation has been found on the project.</Text>}\n    </LoadingConsumer>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectRepresentationsListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Card } from '../cards/Card';\nimport { List, MainText, Tile } from '../list/List';\nimport { LIST_WITH_HIGHLIGHT__KIND, SINGLE_LINE } from '../list/ListConstants';\nimport { LoadingConsumer } from '../loading/Loading';\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { SEMI_BOLD, SMALL, LARGE } from '../text/TextConstants';\n\nconst PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES = 'projectsemanticresourceslistcard';\n\nconst propTypes = {\n  semanticResources: PropTypes.array.isRequired\n};\n\nconst defaultProps = {\n  semanticResources: []\n};\n\n/**\n * The ProjectSemanticResourcesListCard is a Card displaying all the semantic\n * resources of a project.\n */\nexport const ProjectSemanticResourcesListCard = ({ className, semanticResources, ...props }) => {\n  const cardClassNames = classNames(PROJECT_SEMANTIC_RESOURCES_LIST_CARD__CLASS_NAMES, className);\n  return (\n    <Card className={cardClassNames} {...props}>\n      <Spacing top={M} right={M} bottom={M} left={M}>\n        <LoadingConsumer>\n          {loading => (\n            <Text weight={SEMI_BOLD} size={LARGE} loading={loading} hideOverflow>\n              Semantic Resources\n            </Text>\n          )}\n        </LoadingConsumer>\n      </Spacing>\n      <SemanticResources semanticResources={semanticResources} />\n    </Card>\n  );\n};\nProjectSemanticResourcesListCard.propTypes = propTypes;\nProjectSemanticResourcesListCard.defaultProps = defaultProps;\n\n/**\n * Renders the semantic resources of the card or a text indicating the lack of\n * semantic resources.\n */\nconst SemanticResources = ({ semanticResources }) => {\n  if (semanticResources.length > 0) {\n    return <SemanticResourcesList semanticResources={semanticResources} />;\n  }\n  return <EmptySemanticResources />;\n};\n\n/**\n * Renders the list of semantic resources.\n */\nconst SemanticResourcesList = ({ semanticResources }) => (\n  <List kind={LIST_WITH_HIGHLIGHT__KIND}>\n    {semanticResources.map(resource => (\n      <Tile kind={SINGLE_LINE} key={resource.path}>\n        <MainText>{resource.path}</MainText>\n        <Text size={SMALL}>{resource.size}</Text>\n      </Tile>\n    ))}\n  </List>\n);\n\n/**\n * Renders a text indicating the lack of semantic resources.\n */\nconst EmptySemanticResources = () => (\n  <Spacing top={S} right={M} bottom={M} left={M}>\n    <LoadingConsumer>\n      {loading => (\n        <Text loading={loading}>No semantic resource has been found on the project.</Text>\n      )}\n    </LoadingConsumer>\n  </Spacing>\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/ProjectSemanticResourcesListCard.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport { actionCreator, dispatcher } from '../../components/dashboard/DashboardViewDispatcher';\n\n/**\n * The DashboardViewStateContainer is the stateful component used to manipulate\n * the state of the dashboard.\n */\nexport class DashboardViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    try {\n      const jsonDashboardResponse = await fetch(`/api/dashboard`);\n      let action;\n      if (jsonDashboardResponse.ok) {\n        const dashboardResponse = await jsonDashboardResponse.json();\n        action = actionCreator.newHandleDashboardFetchedAction(dashboardResponse);\n      } else {\n        const { statusText, status } = jsonDashboardResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, dashboard } = this.state;\n\n    return render(stateId, error, dashboard);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/dashboard/DashboardViewStateContainer.js","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime-module.js\n// module id = 138\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime.js\n// module id = 139\n// module chunks = 0","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  DASHBOARD_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_DASHBOARD__ACTION,\n  INITIALIZE__ACTION\n} from './DashboardViewFiniteStateMachine';\n\n/**\n * The reducer of the dashboard view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the dashboard.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return { stateId: LOADING__STATE, dashboard: { projects: [] }, error: null };\n    case HANDLE_FETCHED_DASHBOARD__ACTION:\n      return { stateId: DASHBOARD_LOADED__STATE, dashboard: action.dashboard, error: null };\n    case HANDLE_ERROR__ACTION:\n      return { stateId: ERROR__STATE, dashboard: state.dashboard, error: action.error };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle dashboard fetched action used to go from the loading state\n * to the dashboard loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleDashboardFetchedAction = response => ({\n  kind: HANDLE_FETCHED_DASHBOARD__ACTION,\n  dashboard: response\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the dashboard',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the dashboard',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleDashboardFetchedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dashboard/DashboardViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport {\n  actionCreator,\n  dispatcher\n} from '../../components/projects/listprojects/ListProjectsViewDispatcher';\n\n/**\n * The ListProjectsViewStateContainer is the stateful component used to manipulate\n * the list of the projects.\n */\nexport class ListProjectsViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    try {\n      const jsonProjectsResponse = await fetch(`/api/projects`);\n      let action;\n      if (jsonProjectsResponse.ok) {\n        const projectsResponse = await jsonProjectsResponse.json();\n        action = actionCreator.newHandleProjectsFetchedAction(projectsResponse);\n      } else {\n        const { statusText, status } = jsonProjectsResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, projects } = this.state;\n\n    return render(stateId, error, projects);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/ListProjectsViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  NO_PROJECTS_LOADED__STATE,\n  PROJECTS_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_PROJECTS__ACTION,\n  INITIALIZE__ACTION\n} from './ListProjectsViewFiniteStateMachine';\n\n/**\n * The reducer of the list projects view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the list projects view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return { stateId: LOADING__STATE, projects: [], error: undefined };\n    case HANDLE_FETCHED_PROJECTS__ACTION:\n      if (action.projects.length === 0) {\n        return { stateId: NO_PROJECTS_LOADED__STATE, projects: [], error: undefined };\n      }\n      return { stateId: PROJECTS_LOADED__STATE, projects: action.projects, error: undefined };\n    case HANDLE_ERROR__ACTION:\n      return { stateId: ERROR__STATE, projects: state.projects, error: action.error };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle projects fetched action used to go from the loading state\n * to the projects loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleProjectsFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PROJECTS__ACTION,\n  projects: response.projects\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the list of projects',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the projects list',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleProjectsFetchedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/listprojects/ListProjectsViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\n\nimport {\n  actionCreator,\n  dispatcher\n} from '../../components/projects/newproject/NewProjectViewDispatcher';\n\n/**\n * The NewProjectViewStateContainer is the stateful component used to manipulate\n * the state of the NewProjectView.\n */\nexport class NewProjectViewStateContainer extends Component {\n  constructor(props) {\n    super(props);\n    this.handleNameChange = this.handleNameChange.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  handleNameChange(event) {\n    const name = event.target.value;\n    this.dispatch(actionCreator.newModifyNameAction(name));\n  }\n\n  async handleSubmit(event) {\n    const { name } = this.state;\n\n    event.preventDefault();\n\n    try {\n      const body = { name };\n      const request = new Request('/api/projects', {\n        method: 'POST',\n        body: JSON.stringify(body)\n      });\n      const jsonResponse = await fetch(request);\n      const { ok, statusText } = jsonResponse;\n      if (ok) {\n        this.dispatch(actionCreator.newCreatedProjectAction());\n      } else {\n        let message = statusText;\n        const response = await jsonResponse.json();\n        if (response) {\n          message = response.message;\n        }\n        this.dispatch(actionCreator.newInvalidResponseAction(message));\n      }\n    } catch (error) {\n      this.dispatch(actionCreator.newUnexpectedErrorAction(error.message));\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, errors, isValid, name, nameIsValid, nameErrors } = this.state;\n\n    return render(\n      stateId,\n      errors,\n      isValid,\n      this.handleSubmit,\n      name,\n      nameIsValid,\n      nameErrors,\n      this.handleNameChange\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/NewProjectViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\n\nimport {\n  FSM,\n  INITIAL__STATE,\n  INITIALIZE__ACTION,\n  MODIFY_NAME__ACTION,\n  PRISTINE__STATE,\n  MODIFIED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_CREATED_PROJECT__ACTION,\n  REDIRECT__STATE\n} from './NewProjectViewFiniteStateMachine';\n\n/**\n * The reducer of the new project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the new project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return {\n        stateId: PRISTINE__STATE,\n        errors: [],\n        isValid: false,\n        name: '',\n        nameIsValid: false,\n        nameErrors: []\n      };\n    case MODIFY_NAME__ACTION:\n      const { name } = action;\n      const nameErrors = validateName(name);\n      const nameIsValid = nameErrors.length === 0;\n      const isValid = nameIsValid;\n      return {\n        stateId: MODIFIED__STATE,\n        errors: [],\n        isValid,\n        name,\n        nameIsValid,\n        nameErrors\n      };\n    case HANDLE_ERROR__ACTION:\n      const errors = [].concat(state.errors);\n      errors.push(action.message);\n      return {\n        stateId: MODIFIED__STATE,\n        errors,\n        isValid: false\n      };\n    case HANDLE_CREATED_PROJECT__ACTION:\n      return {\n        stateId: REDIRECT__STATE\n      };\n    default:\n      return state;\n  }\n};\n\n/**\n * Validates the given name and returns the errors found.\n * @param {*} name\n * @returns An array of string describing the errors found\n */\nconst validateName = name => {\n  const errors = [];\n\n  if (name.trim().length === 0) {\n    errors.push('The name is required');\n  }\n\n  const invalidCharacters = ['\\\\', '/', ':', '*', '?', '\"', '<', '>', '|'];\n  invalidCharacters.forEach(invalidCharacter => {\n    if (name.indexOf(invalidCharacter) !== -1) {\n      errors.push(`The character ${invalidCharacter} cannot be used in the name`);\n    }\n  });\n\n  if (name.trim() === '.' || name.trim() === '..') {\n    errors.push('The name cannot have the value . or ..');\n  }\n\n  if (name.length > 0 && name.charAt(name.length - 1) === '.') {\n    errors.push('The name cannot end with a dot');\n  }\n\n  if (name.length > 0 && name.trim().length === 0) {\n    errors.push('The name cannot be composed of whitespaces');\n  } else if (name.length !== name.trim().length) {\n    errors.push('Remove any whitespace at the beginning or the end');\n  }\n\n  return errors;\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * pristine state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns a new modify name action used to change the value of the name and\n * trigger the various validation rules.\n *\n * @param {*} name The name\n */\nconst newModifyNameAction = name => ({\n  kind: MODIFY_NAME__ACTION,\n  name\n});\n\n/**\n * Returns a new unexpected error action used to handle an unexpected error in\n * our code.\n *\n * @param {*} message The message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  message: 'An error has occured during the processing of the response'\n});\n\n/**\n * Returns a new handle created project action used to redirect the user interface\n * to the new project created.\n */\nconst newCreatedProjectAction = () => ({\n  kind: HANDLE_CREATED_PROJECT__ACTION\n});\n\n/**\n * Returns a new invalid error action used to handle an invalid response from\n * the server.\n *\n * @param {*} message The message\n */\nconst newInvalidResponseAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  message\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newModifyNameAction,\n  newUnexpectedErrorAction,\n  newCreatedProjectAction,\n  newInvalidResponseAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/newproject/NewProjectViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport { actionCreator, dispatcher } from '../../components/projects/project/ProjectViewDispatcher';\n\n/**\n * The ProjectViewStateContainerWithoutRouter is the stateful component used to\n * manipulate the state of the ProjectView.\n *\n * It leverages the router API in order to retrieve the name of the project to\n * display from the URL.\n */\nclass ProjectViewStateContainerWithoutRouter extends Component {\n  constructor(props) {\n    super(props);\n\n    this.handleActivityClick = this.handleActivityClick.bind(this);\n    this.handleTabClick = this.handleTabClick.bind(this);\n    this.handleNewDescription = this.handleNewDescription.bind(this);\n\n    this.state = dispatcher(undefined, props, actionCreator.newInitializeAction());\n  }\n\n  async componentDidMount() {\n    await this.updateData();\n  }\n\n  async updateData() {\n    try {\n      const { projectName } = this.props.match.params;\n      const jsonProjectResponse = await fetch(`/api/projects/${projectName}`);\n      let action;\n      if (jsonProjectResponse.ok) {\n        const projectResponse = await jsonProjectResponse.json();\n        action = actionCreator.newHandleProjectFetchedAction(projectResponse);\n      } else {\n        const { statusText, status } = jsonProjectResponse;\n        action = actionCreator.newInvalidResponseAction(statusText, status);\n      }\n      this.dispatch(action);\n    } catch (error) {\n      const action = actionCreator.newUnexpectedErrorAction(error);\n      this.dispatch(action);\n    }\n  }\n\n  async handleTabClick(index) {\n    const { project: { pages } } = this.state;\n    let pageIdentifier = pages[index].identifier;\n    const { projectName } = this.props.match.params;\n    try {\n      const jsonPageResponse = await fetch(`/api/projects/${projectName}/pages/${pageIdentifier}`);\n      const pageResponse = await jsonPageResponse.json();\n      const action = actionCreator.newHandlePageFetchedAction(pageResponse);\n      this.dispatch(action);\n    } catch (error) {\n      // TO be handled\n    }\n  }\n\n  async handleActivityClick(projectName, pageIdentifier, sectionIdentifier, activityIdentifier) {\n    try {\n      const request = new Request(\n        `/api/projects/${projectName}/pages/${pageIdentifier}/sections/${sectionIdentifier}/activities/${activityIdentifier}/execute`,\n        {\n          method: 'POST'\n        }\n      );\n      const jsonResponse = await fetch(request);\n      const { ok } = jsonResponse;\n      if (!ok) {\n        // To be handled\n      }\n      await this.updateData();\n    } catch (error) {\n      // To be handled\n    }\n  }\n\n  async handleNewDescription(description) {\n    const { project } = this.state;\n    let oldDescription = project.description;\n    if (oldDescription === undefined) {\n      oldDescription = '';\n    }\n\n    if (description !== oldDescription) {\n      const { projectName } = this.props.match.params;\n      try {\n        const body = JSON.stringify({ description });\n        const request = new Request(`/api/projects/${projectName}`, { method: 'PUT', body });\n        const jsonResponse = await fetch(request);\n        const response = await jsonResponse.json();\n        const action = actionCreator.newHandleDescriptionUpdatedAction(response);\n        this.dispatch(action);\n      } catch (error) {\n        // To be handled\n      }\n    }\n  }\n\n  dispatch(action) {\n    this.setState((prevState, props) => dispatcher(prevState, props, action));\n  }\n\n  render() {\n    const { children, render = children } = this.props;\n    const { stateId, error, project, pageIdentifier } = this.state;\n\n    return render(\n      stateId,\n      error,\n      project,\n      pageIdentifier,\n      this.handleTabClick,\n      this.handleActivityClick,\n      this.handleNewDescription\n    );\n  }\n}\nexport const ProjectViewStateContainer = withRouter(ProjectViewStateContainerWithoutRouter);\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/projects/ProjectViewStateContainer.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport { dispatcherCreator } from '../../../common/dispatcherCreator';\nimport { UNKNOWN_ERROR } from '../../../common/errors';\n\nimport {\n  FSM,\n  ERROR__STATE,\n  INITIAL__STATE,\n  LOADING__STATE,\n  PROJECT_LOADED__STATE,\n  HANDLE_ERROR__ACTION,\n  HANDLE_FETCHED_PAGE__ACTION,\n  HANDLE_FETCHED_PROJECT__ACTION,\n  HANDLE_DESCRIPTION_UPDATED__ACTION,\n  INITIALIZE__ACTION\n} from './ProjectViewFiniteStateMachine';\n\n/**\n * The reducer of the project view.\n *\n * It will be used to execute the transitions in the finite state machine of\n * the project view.\n *\n * @param {*} state The current state\n * @param {*} props The properties of the component\n * @param {*} action The action to perform\n */\nconst reducer = (state, props, action) => {\n  switch (action.kind) {\n    case INITIALIZE__ACTION:\n      return {\n        stateId: LOADING__STATE,\n        project: undefined,\n        pageIdentifier: undefined,\n        error: undefined\n      };\n    case HANDLE_FETCHED_PROJECT__ACTION:\n      let pageIdentifier;\n      if (action.project.pages.length > 0) {\n        pageIdentifier = action.project.pages[0].identifier;\n      }\n      return {\n        stateId: PROJECT_LOADED__STATE,\n        project: action.project,\n        pageIdentifier,\n        error: undefined\n      };\n    case HANDLE_FETCHED_PAGE__ACTION:\n      const newFetchedPageState = {\n        stateId: PROJECT_LOADED__STATE,\n        project: state.project,\n        pageIdentifier: action.page.identifier,\n        error: undefined\n      };\n      newFetchedPageState.project.currentPageSections = action.page.sections;\n      return newFetchedPageState;\n    case HANDLE_DESCRIPTION_UPDATED__ACTION:\n      const newDescriptionUpdatedState = {\n        stateId: PROJECT_LOADED__STATE,\n        project: state.project,\n        pageIdentifier: state.pageIdentifier,\n        error: undefined\n      };\n      newDescriptionUpdatedState.project = {\n        ...newDescriptionUpdatedState.project,\n        description: action.description\n      };\n      return newDescriptionUpdatedState;\n    case HANDLE_ERROR__ACTION:\n      return {\n        stateId: ERROR__STATE,\n        project: state.project,\n        pageIdentifier: state.pageIdentifier,\n        error: action.error\n      };\n    default:\n      return state;\n  }\n};\n\n/**\n * Returns an initialize action used to go from the initial state to the\n * loading state.\n */\nconst newInitializeAction = () => ({\n  kind: INITIALIZE__ACTION\n});\n\n/**\n * Returns an handle project fetched action used to go from the loading state\n * to the project loaded state.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleProjectFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PROJECT__ACTION,\n  project: response\n});\n\n/**\n * Returns an handle page fetched action used to change the current workflow\n * page.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandlePageFetchedAction = response => ({\n  kind: HANDLE_FETCHED_PAGE__ACTION,\n  page: response\n});\n\n/**\n * Returns an handle description updated action used to change the current\n * description of the project.\n *\n * @param {*} response The HTTP response of the server\n */\nconst newHandleDescriptionUpdatedAction = response => ({\n  kind: HANDLE_DESCRIPTION_UPDATED__ACTION,\n  description: response.description\n});\n\n/**\n * Returns an invalid response action used to indicate that the server has\n * returned a response with an error status 4xx or 5xx.\n *\n * @param {*} message The message from the server\n * @param {*} code The HTTP status code\n */\nconst newInvalidResponseAction = (message, code) => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'An error has occurred while retrieving the project',\n    message,\n    code\n  }\n});\n\n/**\n * Returns an unexpected error action used to indicate that an issue has appeared\n * during the processing of the server response.\n *\n * @param {*} message The error message\n */\nconst newUnexpectedErrorAction = message => ({\n  kind: HANDLE_ERROR__ACTION,\n  error: {\n    title: 'Unexpected content retrieved for the project',\n    message,\n    code: UNKNOWN_ERROR\n  }\n});\n\nexport const actionCreator = {\n  newInitializeAction,\n  newHandleProjectFetchedAction,\n  newHandlePageFetchedAction,\n  newHandleDescriptionUpdatedAction,\n  newInvalidResponseAction,\n  newUnexpectedErrorAction\n};\n\nexport const dispatcher = dispatcherCreator(FSM, reducer, INITIAL__STATE);\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/projects/project/ProjectViewDispatcher.js","/*******************************************************************************\n * Copyright (c) 2018 Obeo and others.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2\n * which accompanies this distribution and is available at\n * https://www.eclipse.org/legal/epl-2.0.\n *******************************************************************************/\n\nimport React from 'react';\n\nimport { classNames } from '../../common/classnames';\n\nimport { Spacing } from '../spacing/Spacing';\nimport { S, M } from '../spacing/SpacingConstants';\nimport { Text } from '../text/Text';\nimport { BOLD, EXTRA_EXTRA_LARGE } from '../text/TextConstants';\n\nimport './Navbar.css';\n\nconst NAVBAR__CLASS_NAMES = 'navbar';\nconst NAVBAR_CONTAINER__CLASS_NAMES = 'navbar-container';\nconst NARBAR_TITLE__CLASS_NAMES = 'navbar-title title-xxl';\n\n/**\n * The Navbar is used to display a navigation bar on top of the user interface.\n * It can contain the title of the application and various actions.\n */\nexport const Navbar = ({ className, ...props }) => {\n  const navClassNames = classNames(NAVBAR__CLASS_NAMES, className);\n  return (\n    <nav className={navClassNames} {...props}>\n      <Spacing top={S} right={M} bottom={S} left={M}>\n        <div className={NAVBAR_CONTAINER__CLASS_NAMES}>\n          <div className={NARBAR_TITLE__CLASS_NAMES}>\n            <Text weight={BOLD} size={EXTRA_EXTRA_LARGE}>\n              Eclipse Sirius\n            </Text>\n          </div>\n        </div>\n      </Spacing>\n    </nav>\n  );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/navbar/Navbar.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendConfigurator.java b/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendConfigurator.java
deleted file mode 100644
index 6620484..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendConfigurator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.EnumSet;
-
-import javax.servlet.DispatcherType;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.URIUtil;
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.DefaultServlet;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-import org.osgi.framework.Bundle;
-
-/**
- * The entry point of the front-end used to configure the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerFrontendConfigurator implements ISiriusServerConfigurator {
-
-    /**
-     * The context path of the Sirius front-end.
-     */
-    private static final String CONTEXT_PATH = "/"; //$NON-NLS-1$
-
-    /**
-     * The default servlet holder name.
-     */
-    private static final String SERVLET_HOLDER_NAME = "SiriusFrontendServletHolder"; //$NON-NLS-1$
-
-    /**
-     * The path of the front end resources.
-     */
-    private static final String FRONTEND_RESOURCES_PATH = "./sirius-frontend"; //$NON-NLS-1$
-
-    /**
-     * The path of the default servlet used to expose the static resources.
-     */
-    private static final String SERVLET_PATH = "/"; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.server.api.ISiriusServerConfigurator#configure(org.eclipse.jetty.server.Server)
-     */
-    @Override
-    public void configure(Server server) {
-        ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-        servletContextHandler.setContextPath(CONTEXT_PATH);
-
-        servletContextHandler.addFilter(SiriusServerFrontendFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST, DispatcherType.INCLUDE)); //$NON-NLS-1$
-
-        try {
-            Bundle bundle = SiriusServerFrontendPlugin.getPlugin().getBundle();
-            URL frontendResourcesURL = bundle.getResource(FRONTEND_RESOURCES_PATH);
-            URL resolvedURL = FileLocator.resolve(frontendResourcesURL);
-            URI frontendResourcesURI = URIUtil.toURI(resolvedURL);
-            String frontendResourcesPath = new File(frontendResourcesURI).getAbsolutePath();
-
-            ServletHolder servletHolder = new ServletHolder(SERVLET_HOLDER_NAME, new DefaultServlet());
-            servletHolder.setInitParameter("resourceBase", frontendResourcesPath); //$NON-NLS-1$
-            servletHolder.setInitParameter("dirAllowed", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-            servletContextHandler.addServlet(servletHolder, SERVLET_PATH);
-
-            Handler handler = server.getHandler();
-            if (handler instanceof HandlerCollection) {
-                HandlerCollection handlerCollection = (HandlerCollection) handler;
-                handlerCollection.addHandler(servletContextHandler);
-            }
-        } catch (URISyntaxException | IOException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerFrontendPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerFrontendPlugin.getPlugin().log(status);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendFilter.java b/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendFilter.java
deleted file mode 100644
index 84dbcce..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendFilter.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.internal;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Servlet filter used to redirect the request to provide a single page
- * application.
- *
- * @author sbegaudeau
- */
-public class SiriusServerFrontendFilter implements Filter {
-    /**
-     * The path of the HTTP API.
-     */
-    private static final String HTTP_API_PATH = "/api"; //$NON-NLS-1$
-
-    /**
-     * The path of the WebSocket API.
-     */
-    private static final String WS_API_PATH = "/ws"; //$NON-NLS-1$
-
-    /**
-     * The path of the images API.
-     */
-    private static final String IMAGES_PATH = "/images"; //$NON-NLS-1$
-
-    /**
-     * The path of the workflow front-e,d.
-     */
-    private static final String WORKFLOW_PATH = "/workflow"; //$NON-NLS-1$
-
-    /**
-     * The path of the static resources.
-     */
-    private static final String STATIC_PATH = "/static"; //$NON-NLS-1$
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        // Do nothing
-    }
-
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
-            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-            String requestURI = httpServletRequest.getRequestURI();
-            if (this.isStaticResource(requestURI)) {
-                this.handleStaticResource(httpServletRequest, httpServletResponse, chain);
-            } else if (this.isFrontEnd(requestURI)) {
-                this.redirectToFrontEnd(httpServletRequest, httpServletResponse);
-            }
-        }
-    }
-
-    /**
-     * Indicates if the given request URI matches a static resource.
-     *
-     * @param requestURI
-     *            The URI of the request
-     * @return <code>true</code> if the given request matches a static
-     *         resources, <code>false</code> otherwise
-     */
-    private boolean isStaticResource(String requestURI) {
-        return requestURI.startsWith(STATIC_PATH);
-    }
-
-    /**
-     * Indicates if the given request URI should be redirected to the front end
-     * for a proper single page application.
-     *
-     * @param requestURI
-     *            The URI of the request
-     * @return <code>true</code> if the given request should be redirected to
-     *         the front end
-     */
-    private boolean isFrontEnd(String requestURI) {
-        boolean isFrontEnd = true;
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(HTTP_API_PATH);
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(WS_API_PATH);
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(IMAGES_PATH);
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(WORKFLOW_PATH);
-        isFrontEnd = isFrontEnd && !requestURI.startsWith(STATIC_PATH);
-        return isFrontEnd;
-    }
-
-    /**
-     * Delegates the request to the default servlet to handle static resources.
-     *
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void handleStaticResource(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain chain) throws IOException, ServletException {
-        chain.doFilter(httpServletRequest, httpServletResponse);
-    }
-
-    /**
-     * Redirects the request to the front end in order to have a proper single
-     * page application.
-     *
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void redirectToFrontEnd(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
-        httpServletRequest.getRequestDispatcher("/").forward(httpServletRequest, httpServletResponse); //$NON-NLS-1$
-    }
-
-    @Override
-    public void destroy() {
-        // Do nothing
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendPlugin.java b/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendPlugin.java
deleted file mode 100644
index eefc5b0..0000000
--- a/plugins/org.eclipse.sirius.server.frontend/src/org/eclipse/sirius/server/frontend/internal/SiriusServerFrontendPlugin.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.frontend.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the bundle.
- *
- * @author sbegaudeau
- */
-public class SiriusServerFrontendPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.frontend"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerFrontendPlugin INSTANCE = new SiriusServerFrontendPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerFrontendPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerFrontendPlugin.plugin = this;
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.graphql/.checkstyle b/plugins/org.eclipse.sirius.server.graphql/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.graphql/.classpath b/plugins/org.eclipse.sirius.server.graphql/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.graphql/.project b/plugins/org.eclipse.sirius.server.graphql/.project
deleted file mode 100644
index 608cd6c..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.graphql</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.graphql/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.graphql/META-INF/MANIFEST.MF
deleted file mode 100644
index 98d0774..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.graphql;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.server.graphql
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.server.graphql.internal;version="7.0.0";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- com.google.gson;bundle-version="2.8.2",
- javax.servlet;bundle-version="3.1.0",
- org.eclipse.sirius.server;bundle-version="6.0.0",
- org.eclipse.sirius.services.graphql;bundle-version="6.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.server.graphql.internal.SiriusServerGraphQLPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.server.graphql/about.html b/plugins/org.eclipse.sirius.server.graphql/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.graphql/build.properties b/plugins/org.eclipse.sirius.server.graphql/build.properties
deleted file mode 100644
index 4604acc..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.graphql/plugin.properties b/plugins/org.eclipse.sirius.server.graphql/plugin.properties
deleted file mode 100644
index 674fb0d..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server - GraphQL API
-providerName = Eclipse Modeling Project
-
-SiriusServerGraphQLService_label = The GraphQL service
-SiriusServerGraphQLService_description = Used to register the GraphQL service
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.graphql/plugin.xml b/plugins/org.eclipse.sirius.server.graphql/plugin.xml
deleted file mode 100644
index 02f0e96..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.graphql.GraphQLService"
-         name="%SiriusServerGraphQLService_label"
-         point="org.eclipse.sirius.server.siriusServerService">
-      <descriptor
-            class="org.eclipse.sirius.server.graphql.internal.SiriusServerGraphQLService"
-            description="%SiriusServerGraphQLService_description"
-            id="org.eclipse.sirius.server.graphql.GraphQLService"
-            label="%SiriusServerGraphQLService_label">
-      </descriptor>
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.graphql/pom.xml b/plugins/org.eclipse.sirius.server.graphql/pom.xml
deleted file mode 100644
index 49b8ac4..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.graphql</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPayload.java b/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPayload.java
deleted file mode 100644
index 16cb607..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPayload.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.graphql.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * The GraphQL payload to execute.
- *
- * @author sbegaudeau
- */
-public class SiriusServerGraphQLPayload {
-    /**
-     * The query.
-     */
-    private String query;
-
-    /**
-     * The variables
-     */
-    private Map<String, Object> variables = new HashMap<>();
-
-    /**
-     * The name of the operation.
-     */
-    private String operationName;
-
-    /**
-     * Return the query.
-     *
-     * @return the query
-     */
-    public String getQuery() {
-        return this.query;
-    }
-
-    /**
-     * Return the variables.
-     *
-     * @return the variables
-     */
-    public Map<String, Object> getVariables() {
-        return this.variables;
-    }
-
-    /**
-     * Return the operationName.
-     *
-     * @return the operationName
-     */
-    public String getOperationName() {
-        return this.operationName;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPlugin.java b/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPlugin.java
deleted file mode 100644
index 4f52c24..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLPlugin.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.graphql.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius server GraphQL plugin.
- *
- * @author sbegaudeau
- */
-public class SiriusServerGraphQLPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.graphql"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerGraphQLPlugin INSTANCE = new SiriusServerGraphQLPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerGraphQLPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerGraphQLPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLService.java b/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLService.java
deleted file mode 100644
index f922bd0..0000000
--- a/plugins/org.eclipse.sirius.server.graphql/src/org/eclipse/sirius/server/graphql/internal/SiriusServerGraphQLService.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.graphql.internal;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_BAD_REQUEST;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import com.google.gson.Gson;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.api.SiriusGraphQLInterpreter;
-
-/**
- * The GraphQL API.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/graphql")
-public class SiriusServerGraphQLService implements ISiriusServerService {
-
-    /**
-     * The UTF-8 encoding.
-     */
-    private static final String UTF_8 = "UTF-8"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doOptions(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return new SiriusServerResponse(STATUS_OK);
-    }
-
-    @Override
-    public SiriusServerResponse doPost(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        SiriusServerResponse response = new SiriusServerResponse(STATUS_BAD_REQUEST);
-        try (Reader reader = new InputStreamReader(request.getInputStream(), UTF_8);) {
-            SiriusServerGraphQLPayload payload = new Gson().fromJson(reader, SiriusServerGraphQLPayload.class);
-            ISiriusGraphQLQueryResult result = new SiriusGraphQLInterpreter().execute(payload.getQuery(), payload.getVariables(), payload.getOperationName(), request);
-
-            response = new SiriusServerResponse(STATUS_OK, result.getData());
-        } catch (IOException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerGraphQLPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerGraphQLPlugin.getPlugin().log(status);
-        }
-        return response;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.images/.classpath b/plugins/org.eclipse.sirius.server.images/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.images/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.images/.project b/plugins/org.eclipse.sirius.server.images/.project
deleted file mode 100644
index bb8d9a5..0000000
--- a/plugins/org.eclipse.sirius.server.images/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.images</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.server.images/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.images/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.images/META-INF/MANIFEST.MF
deleted file mode 100644
index bf1cd44..0000000
--- a/plugins/org.eclipse.sirius.server.images/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.images;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.server.images
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.resources;bundle-version="3.8.0",
- javax.servlet;bundle-version="3.1.0",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.emf.ecore.edit;bundle-version="2.8.0",
- org.eclipse.sirius.services.common;bundle-version="7.0.0",
- org.eclipse.sirius.server;bundle-version="7.0.0",
- org.eclipse.sirius;bundle-version="7.0.0"
-Export-Package: org.eclipse.sirius.server.images.api;version="7.0.0",
- org.eclipse.sirius.server.images.internal;version="7.0.0"
-Bundle-Activator: org.eclipse.sirius.server.images.internal.SiriusServerImagesPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.server.images/about.html b/plugins/org.eclipse.sirius.server.images/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.images/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.images/build.properties b/plugins/org.eclipse.sirius.server.images/build.properties
deleted file mode 100644
index 4604acc..0000000
--- a/plugins/org.eclipse.sirius.server.images/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.images/plugin.properties b/plugins/org.eclipse.sirius.server.images/plugin.properties
deleted file mode 100644
index 13d2323..0000000
--- a/plugins/org.eclipse.sirius.server.images/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - Images API
-providerName = Eclipse Modeling Project
-
-SiriusServerImagesConfigurator_label=The SiriusServerConfigurator of the images
-SiriusServerImagesConfigurator_description=Used to configure the images support of the Sirius server
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.images/plugin.xml b/plugins/org.eclipse.sirius.server.images/plugin.xml
deleted file mode 100644
index 34da74f..0000000
--- a/plugins/org.eclipse.sirius.server.images/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         id="org.eclipse.sirius.server.images.SiriusServerImagesConfigurator"
-         name="%SiriusServerImagesConfigurator_label"
-         point="org.eclipse.sirius.server.siriusServerConfigurator">
-      <descriptor
-            class="org.eclipse.sirius.server.images.internal.SiriusServerImagesConfigurator"
-            description="%SiriusServerImagesConfigurator_description"
-            id="org.eclipse.sirius.server.images.SiriusServerImagesConfigurator"
-            label="%SiriusServerImagesConfigurator_label">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.images/pom.xml b/plugins/org.eclipse.sirius.server.images/pom.xml
deleted file mode 100644
index 981a068..0000000
--- a/plugins/org.eclipse.sirius.server.images/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.images</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/api/ISiriusServerImagesConstants.java b/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/api/ISiriusServerImagesConstants.java
deleted file mode 100644
index ee4a78b..0000000
--- a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/api/ISiriusServerImagesConstants.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.images.api;
-
-/**
- * Utility interface holding some constants.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusServerImagesConstants {
-    /**
-     * The path of the images API.
-     */
-    String IMAGES_PATH = "/images"; //$NON-NLS-1$
-
-    /**
-     * The name of the parameter used to send the fragment of the EObject.
-     */
-    String FRAGMENT = "fragment"; //$NON-NLS-1$
-}
diff --git a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesConfigurator.java b/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesConfigurator.java
deleted file mode 100644
index 5dc31c1..0000000
--- a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesConfigurator.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.images.internal;
-
-import java.util.EnumSet;
-
-import javax.servlet.DispatcherType;
-
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-
-/**
- * The entry point of the images configurator used to configure the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerImagesConfigurator implements ISiriusServerConfigurator {
-
-    /**
-     * The context path of the Sirius images.
-     */
-    private static final String CONTEXT_PATH = "/images"; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.server.api.ISiriusServerConfigurator#configure(org.eclipse.jetty.server.Server)
-     */
-    @Override
-    public void configure(Server server) {
-        ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-        servletContextHandler.setContextPath(CONTEXT_PATH);
-
-        servletContextHandler.addFilter(SiriusServerImagesFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST, DispatcherType.INCLUDE)); //$NON-NLS-1$
-
-        Handler handler = server.getHandler();
-        if (handler instanceof HandlerCollection) {
-            HandlerCollection handlerCollection = (HandlerCollection) handler;
-            handlerCollection.addHandler(servletContextHandler);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesFilter.java b/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesFilter.java
deleted file mode 100644
index 1bc73b4..0000000
--- a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesFilter.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.images.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Optional;
-import java.util.stream.Stream;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedImage;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.server.images.api.ISiriusServerImagesConstants;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.osgi.framework.Bundle;
-
-/**
- * Servlet filter used to provide support for images.
- *
- * @author sbegaudeau
- */
-public class SiriusServerImagesFilter implements Filter {
-
-    /** The extension of jpg files. */
-    private static final String JPG = "jpg"; //$NON-NLS-1$
-
-    /** The extension of jpeg files. */
-    private static final String JPEG = "jpeg"; //$NON-NLS-1$
-
-    /** The jpeg mime type. */
-    private static final String JPEG_MIME_TYPE = "image/jpeg"; //$NON-NLS-1$
-
-    /** The extension of giffiles. */
-    private static final String GIF = "gif"; //$NON-NLS-1$
-
-    /** The gif mime type. */
-    private static final String GIF_MIME_TYPE = "image/gif"; //$NON-NLS-1$
-
-    /** The extension of bmp files. */
-    private static final String BMP = "bmp"; //$NON-NLS-1$
-
-    /** The bmp mime type. */
-    private static final String BMP_MIME_TYPE = "image/bmp"; //$NON-NLS-1$
-
-    /** The extension of pngfiles. */
-    private static final String PNG = "png"; //$NON-NLS-1$
-
-    /** The png mime type. */
-    private static final String PNG_MIME_TYPE = "image/png"; //$NON-NLS-1$
-
-    /** The extension of svg files. */
-    private static final String SVG = "svg"; //$NON-NLS-1$
-
-    /** The svg mime type. */
-    private static final String SVG_MIME_TYPE = "image/svg+xml"; //$NON-NLS-1$
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        // Do nothing
-    }
-
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
-            HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-            String requestURI = httpServletRequest.getRequestURI();
-            if (this.isStaticImage(requestURI)) {
-                this.handleStaticImage(httpServletRequest, httpServletResponse, chain);
-            } else if (this.isEObjectImage(httpServletRequest)) {
-                this.handleEObjectImage(httpServletRequest, httpServletResponse, chain);
-            }
-        }
-    }
-
-    /**
-     * Indicates if the given request URI matches a static image path.
-     *
-     * @param requestURI
-     *            The URI of the request
-     * @return <code>true</code> if the given request URI matches an image path.
-     */
-    private boolean isStaticImage(String requestURI) {
-        boolean isImagePath = requestURI.startsWith(ISiriusServerImagesConstants.IMAGES_PATH);
-
-        boolean isImageExtension = requestURI.endsWith(JPG);
-        isImageExtension = isImageExtension || requestURI.endsWith(JPEG);
-        isImageExtension = isImageExtension || requestURI.endsWith(GIF);
-        isImageExtension = isImageExtension || requestURI.endsWith(BMP);
-        isImageExtension = isImageExtension || requestURI.endsWith(PNG);
-        isImageExtension = isImageExtension || requestURI.endsWith(SVG);
-
-        return isImagePath && isImageExtension;
-    }
-
-    /**
-     * Returns the static image matching the given request.
-     *
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @param chain
-     *            The filter chain
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void handleStaticImage(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain chain) throws ServletException, IOException {
-        // requestURI = /images/projectname/path/to/a/folder/image.png
-        String requestURI = httpServletRequest.getRequestURI();
-
-        // segments = ["", "images", "projectname", "path", "to", "a", "folder", "image.png"]
-        String[] segments = requestURI.split("/"); //$NON-NLS-1$
-        if (segments.length >= 4) {
-            String bundleSymbolicName = segments[2];
-
-            // imagePath = path/to/a/folder/image.png
-            String imagePath = Arrays.stream(segments).skip(3).reduce("", (string1, string2) -> { //$NON-NLS-1$
-                return string1 + '/' + string2;
-            });
-
-            Optional<Bundle> optionalBundle = Optional.ofNullable(Platform.getBundle(bundleSymbolicName));
-            Optional<URL> optionalImageUrl = optionalBundle.map(bundle -> bundle.getEntry(imagePath));
-            if (optionalImageUrl.isPresent()) {
-                URL url = optionalImageUrl.get();
-                URLConnection connection = url.openConnection();
-
-                httpServletResponse.setContentLength(connection.getContentLength());
-                httpServletResponse.setContentType(this.getContentType(imagePath));
-                try (InputStream inputStream = connection.getInputStream(); OutputStream outputStream = httpServletResponse.getOutputStream();) {
-                    this.copy(inputStream, outputStream);
-                    outputStream.flush();
-                }
-            } else {
-                chain.doFilter(httpServletRequest, httpServletResponse);
-            }
-        } else {
-            chain.doFilter(httpServletRequest, httpServletResponse);
-        }
-    }
-
-    /**
-     * Returns the content type of the image at the given path.
-     *
-     * @param path
-     *            The path of the image
-     * @return The content type of the image
-     */
-    private String getContentType(String path) {
-        String contentType = null;
-
-        if (path.endsWith(JPG) || path.endsWith(JPEG)) {
-            contentType = JPEG_MIME_TYPE;
-        } else if (path.endsWith(GIF)) {
-            contentType = GIF_MIME_TYPE;
-        } else if (path.endsWith(BMP)) {
-            contentType = BMP_MIME_TYPE;
-        } else if (path.endsWith(PNG)) {
-            contentType = PNG_MIME_TYPE;
-        } else if (path.endsWith(SVG)) {
-            contentType = SVG_MIME_TYPE;
-        }
-
-        return contentType;
-    }
-
-    /**
-     * Copy the content of the given input stream to the given output stream.
-     *
-     * @param inputStream
-     *            The input stream
-     * @param outputStream
-     *            The output stream
-     * @return The size of the content transfered from the input stream to the output stream
-     * @throws IOException
-     *             In case of error
-     */
-    private long copy(InputStream inputStream, OutputStream outputStream) throws IOException {
-        long byteRead = 0L;
-        byte[] buffer = new byte[4096];
-        int index;
-        while ((index = inputStream.read(buffer)) > 0) {
-            outputStream.write(buffer, 0, index);
-            byteRead += index;
-        }
-        return byteRead;
-    }
-
-    /**
-     * Indicates if the given request potentially matches the path of an EObject's image.
-     * 
-     * @param httpServletRequest
-     *            The HTTP request
-     * @return <code>true</code> if the request matches an EObject's image path, <code>false</code> otherwise
-     */
-    private boolean isEObjectImage(HttpServletRequest httpServletRequest) {
-        boolean isImagePath = httpServletRequest.getRequestURI().startsWith(ISiriusServerImagesConstants.IMAGES_PATH);
-        boolean hasFragment = httpServletRequest.getParameterMap().containsKey(ISiriusServerImagesConstants.FRAGMENT);
-
-        return isImagePath && hasFragment;
-    }
-
-    /**
-     * Handles the retrieval of the image of the EObject matching the given request.
-     * 
-     * @param httpServletRequest
-     *            The request
-     * @param httpServletResponse
-     *            The response
-     * @param chain
-     *            The filter chain
-     * @throws ServletException
-     *             In case of error
-     * @throws IOException
-     *             In case of error
-     */
-    private void handleEObjectImage(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain chain) throws ServletException, IOException {
-        // requestURI = /images/projectname/path/to/a/folder/resource
-        String requestURI = httpServletRequest.getRequestURI();
-
-        // segments = ["", "images", "projectname", "path", "to", "a", "folder", "resource"]
-        String[] segments = requestURI.split("/"); //$NON-NLS-1$
-        if (segments.length >= 4) {
-            String projectName = segments[2];
-
-            // resourcePath = path/to/a/folder/resource
-            String resourcePath = Arrays.stream(segments).skip(3).reduce("", (string1, string2) -> { //$NON-NLS-1$
-                return string1 + '/' + string2;
-            });
-
-            String eObjectFragment = httpServletRequest.getParameter(ISiriusServerImagesConstants.FRAGMENT);
-
-            Optional<IProject> optionalProject = Optional.ofNullable(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName));
-            Optional<IFile> optionalFile = optionalProject.map(iProject -> iProject.getFile(new Path(resourcePath)));
-            Optional<Session> optionalSession = optionalProject.flatMap(SiriusServicesCommonOptionalUtils::toSession);
-            Optional<Resource> optionalResource = optionalFile.flatMap(iFile -> {
-                return optionalSession.flatMap(session -> SiriusServicesCommonOptionalUtils.toResource(session, iFile));
-            });
-
-            Optional<EObject> optionalEObject = optionalResource.map(resource -> resource.getEObject(eObjectFragment));
-            Optional<Object> optionalImage = optionalEObject.flatMap(this::toImage);
-            Optional<URL> optionalURL = optionalImage.flatMap(this::toURL);
-            if (optionalURL.isPresent()) {
-                URL imageURL = optionalURL.get();
-                URLConnection connection = imageURL.openConnection();
-
-                httpServletResponse.setContentLength(connection.getContentLength());
-                httpServletResponse.setContentType(this.getContentType(imageURL.toString()));
-                try (InputStream inputStream = connection.getInputStream(); OutputStream outputStream = httpServletResponse.getOutputStream();) {
-                    this.copy(inputStream, outputStream);
-                    outputStream.flush();
-                }
-            } else {
-                chain.doFilter(httpServletRequest, httpServletResponse);
-            }
-        } else {
-            chain.doFilter(httpServletRequest, httpServletResponse);
-        }
-    }
-
-    /**
-     * Converts the given image object to an URL.
-     * 
-     * @param object
-     *            The image object
-     * @return An optional containing an URL or an empty optional
-     */
-    private Optional<URL> toURL(Object object) {
-        // @formatter:off
-        Optional<URL> optionalURL = Optional.of(object)
-                .filter(URL.class::isInstance)
-                .map(URL.class::cast);
-        
-        if (!optionalURL.isPresent()) {
-            optionalURL = Optional.of(object)
-                    .filter(ComposedImage.class::isInstance)
-                    .map(ComposedImage.class::cast)
-                    .map(ComposedImage::getImages)
-                    .map(Collection::stream)
-                    .flatMap(Stream::findFirst)
-                    .filter(URL.class::isInstance)
-                    .map(URL.class::cast);
-        }
-        // @formatter:on
-        return optionalURL;
-    }
-
-    /**
-     * Retrieves the image for the given eObject or an empty optional if none could be found.
-     * 
-     * @param eObject
-     *            The eObject
-     * @return An optional with the image for the given EObject
-     */
-    private Optional<Object> toImage(EObject eObject) {
-        // @formatter:off
-        ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
-        composedAdapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
-        
-        return Optional.of(composedAdapterFactory.adapt(eObject, IItemLabelProvider.class))
-                .filter(IItemLabelProvider.class::isInstance)
-                .map(IItemLabelProvider.class::cast)
-                .map(labelProvider -> labelProvider.getImage(eObject));
-        // @formatter:on
-    }
-
-    @Override
-    public void destroy() {
-        // Do nothing
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesPlugin.java b/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesPlugin.java
deleted file mode 100644
index d01bbb6..0000000
--- a/plugins/org.eclipse.sirius.server.images/src/org/eclipse/sirius/server/images/internal/SiriusServerImagesPlugin.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.images.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * The plugin of this component.
- * 
- * @author sbegaudeau
- */
-public class SiriusServerImagesPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server.images"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerImagesPlugin INSTANCE = new SiriusServerImagesPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerImagesPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerImagesPlugin.plugin = this;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.checkstyle b/plugins/org.eclipse.sirius.server.ui.autostart/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.classpath b/plugins/org.eclipse.sirius.server.ui.autostart/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.project b/plugins/org.eclipse.sirius.server.ui.autostart/.project
deleted file mode 100644
index ee30b8d..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server.ui.autostart</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server.ui.autostart/META-INF/MANIFEST.MF
deleted file mode 100644
index 5da9980..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server.ui.autostart;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.osgi;bundle-version="3.8.0",
- org.eclipse.equinox.registry;bundle-version="3.0.0",
- org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.jobs;bundle-version="3.8.0",
- org.eclipse.ui;bundle-version="3.8.0",
- org.eclipse.sirius.server;bundle-version="6.0.0"
-Export-Package: org.eclipse.sirius.server.ui.autostart.internal;x-internal:=true
-Automatic-Module-Name: org.eclipse.sirius.server.ui.autostart
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/about.html b/plugins/org.eclipse.sirius.server.ui.autostart/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/build.properties b/plugins/org.eclipse.sirius.server.ui.autostart/build.properties
deleted file mode 100644
index c452f07..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/plugin.properties b/plugins/org.eclipse.sirius.server.ui.autostart/plugin.properties
deleted file mode 100644
index 6d86c7a..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server AutoStart
-providerName = Eclipse Modeling Project
-
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/plugin.xml b/plugins/org.eclipse.sirius.server.ui.autostart/plugin.xml
deleted file mode 100644
index 5defb40..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/plugin.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup
-            class="org.eclipse.sirius.server.ui.autostart.internal.SiriusServerStartup">
-      </startup>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/pom.xml b/plugins/org.eclipse.sirius.server.ui.autostart/pom.xml
deleted file mode 100644
index 6682d9f..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server.ui.autostart</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server.ui.autostart/src/org/eclipse/sirius/server/ui/autostart/internal/SiriusServerStartup.java b/plugins/org.eclipse.sirius.server.ui.autostart/src/org/eclipse/sirius/server/ui/autostart/internal/SiriusServerStartup.java
deleted file mode 100644
index 648d0fc..0000000
--- a/plugins/org.eclipse.sirius.server.ui.autostart/src/org/eclipse/sirius/server/ui/autostart/internal/SiriusServerStartup.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.ui.autostart.internal;
-
-import java.util.Optional;
-
-import org.eclipse.core.runtime.ICoreRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * Early startup class in charge of activating the Sirius server plugin.
- *
- * @author sbegaudeau
- */
-public class SiriusServerStartup implements IStartup {
-
-	/**
-	 * The identifier of the bundler containing the Sirius server.
-	 */
-	private static final String SIRIUS_SERVER_PLUGIN_ID = "org.eclipse.sirius.server"; //$NON-NLS-1$
-
-	/**
-	 * The description of the job.
-	 */
-	private static final String DESCRIPTION = "Starting Sirius Server"; //$NON-NLS-1$
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.ui.IStartup#earlyStartup()
-	 */
-	@Override
-	public void earlyStartup() {
-		Display display = Display.getDefault();
-
-		Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				IWorkbench workbench = PlatformUI.getWorkbench();
-				SiriusServerStartup.this.closeIntro(workbench);
-
-				IExtensionTracker extensionTracker = workbench.getExtensionTracker();
-				if (extensionTracker == null || workbench.getWorkbenchWindowCount() == 0) {
-					display.timerExec(1000, this);
-				} else {
-					Job job = SiriusServerStartup.this.getStartupJob();
-					job.setPriority(Job.DECORATE);
-					job.schedule(1000);
-				}
-			}
-		};
-
-		display.asyncExec(runnable);
-	}
-
-	/**
-	 * Closes the welcome page displayed at the startup of the product.
-	 *
-	 * @param workbench
-	 *            The workbench
-	 */
-	private void closeIntro(IWorkbench workbench) {
-		IIntroManager introManager = workbench.getIntroManager();
-		boolean hasIntro = introManager.hasIntro();
-		if (hasIntro) {
-			Optional<IIntroPart> optionalIntroPart = Optional.ofNullable(introManager.getIntro());
-			optionalIntroPart.ifPresent(introPart -> introManager.closeIntro(introPart));
-		}
-	}
-
-	/**
-	 * Returns the startup job.
-	 *
-	 * @return The startup job
-	 */
-	private Job getStartupJob() {
-		Job job = Job.create(DESCRIPTION, (ICoreRunnable) monitor -> {
-			Display.getDefault().asyncExec(() -> {
-				Bundle siriusServerBundle = Platform.getBundle(SIRIUS_SERVER_PLUGIN_ID);
-				if (siriusServerBundle != null && siriusServerBundle.getState() != Bundle.ACTIVE) {
-					try {
-						siriusServerBundle.start(Bundle.START_TRANSIENT);
-					} catch (BundleException exception) {
-						// @CHECKSTYLE:OFF
-						exception.printStackTrace();
-						// @CHECKSTYLE:ON
-					}
-				}
-			});
-		});
-		return job;
-	}
-
-}
diff --git a/plugins/org.eclipse.sirius.server/.checkstyle b/plugins/org.eclipse.sirius.server/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.server/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.server/.classpath b/plugins/org.eclipse.sirius.server/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.server/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.server/.project b/plugins/org.eclipse.sirius.server/.project
deleted file mode 100644
index fe27759..0000000
--- a/plugins/org.eclipse.sirius.server/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.server</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.server/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.server/META-INF/MANIFEST.MF
deleted file mode 100644
index 0f3edac..0000000
--- a/plugins/org.eclipse.sirius.server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.server;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- javax.servlet;bundle-version="3.1.0",
- javax.websocket;bundle-version="1.0.0",
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.sirius.ext.base;bundle-version="6.0.0",
- org.eclipse.sirius.ext.ide;bundle-version="6.0.0",
- org.eclipse.jetty.servlet;bundle-version="9.4.10",
- org.eclipse.jetty.servlets;bundle-version="9.4.10",
- org.eclipse.jetty.websocket.javax.websocket;bundle-version="[9.0.0,10.0.0)",
- org.eclipse.jetty.websocket.javax.websocket.server;bundle-version="[9.0.0,10.0.0)",
- com.google.gson;bundle-version="2.7.0"
-Export-Package: org.eclipse.sirius.server.api,
- org.eclipse.sirius.server.internal;x-friends:="org.eclipse.sirius.tests.server",
- org.eclipse.sirius.server.internal.services
-Bundle-Activator: org.eclipse.sirius.server.internal.SiriusServerPlugin$Implementation
-Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.sirius.server
diff --git a/plugins/org.eclipse.sirius.server/README.md b/plugins/org.eclipse.sirius.server/README.md
deleted file mode 100644
index e50bfa5..0000000
--- a/plugins/org.eclipse.sirius.server/README.md
+++ /dev/null
@@ -1,804 +0,0 @@
-# Sirius Server
-
-The Sirius Server initiative aims at leveraging all the features of Sirius in the web. This work is based on everything built in the Sirius project over the years without any big bang where we would rewrite everything from scratch. The Sirius Server is an Eclipse RCP product and a Docker container in which it is contained which allow you to use Sirius in the web. 
-
-It is based on the same plugins and features used in the regular version of Sirius. Some work is being done to refactor some pieces of code for this new environment and its constraints. As an example, this code will not depend on the user interface since it will have to run on a server.
-
-
-## Code
-
-The code of the Sirius Server is located in two separate Git repositories:
-
-* The front-end is hosted on the [Sirius Components repository](https://www.github.com/eclipse/sirius-components)
-* The back-end is hosted on the main [Sirius repository](https://git.eclipse.org/c/sirius/org.eclipse.sirius.git)
-
-Only a subset of the components available on the main Sirius repository are involved in the Sirius Server. The main components of the server are available under the namespace ```org.eclipse.sirius.server```.
-
-The entry point of the server is the component ```org.eclipse.sirius.server```. This component is used to start the Jetty-based server, configure it and register all the services available on the server. It contains the main extension points used to contribute to both the HTTP and Web Socket API of the server. This component is also the one which uses most of the environment variables named in this document.
-
-
-### RCP Product
-
-The RCP product is based on the following components:
-
-* ```org.eclipse.sirius.server```, the entry point starting the Jetty server
-* ```org.eclipse.sirius.server.feature```, the feature of the product
-* ```org.eclipse.sirius.server.application```, the IApplication of the product
-* ```org.eclipse.sirius.server.product```, the RCP product
-* ```org.eclipse.sirius.server.product.feature```, the feature of the product 
-
-On top of those, you will encounter those additional components:
-
-* ```org.eclipse.sirius.server.backend```
-* ```org.eclipse.sirius.server.diagram```
-* ```org.eclipse.sirius.services.diagram```
-* ```org.eclipse.sirius.server.graphql```
-* ```org.eclipse.sirius.services.graphql```
-* ```org.eclipse.sirius.server.frontend```
-* ```org.eclipse.sirius.server.frontend.workflow```
-* ```org.eclipse.sirius.services.common```
-* ```org.eclipse.sirius.server.images```
-
-The ```org.eclipse.sirius.server.backend``` component is a soon-to-be deprecated HTTP API which was released with the first implementation of the workflow. This HTTP API based on the REST principles gave users access to some information on projects, semantic resources and representations. It is replaced by the GraphQL based API.
-
-The Sirius Server Diagram component is used to provide a Web Socket API to manipulate diagrams. This component is only responsible for the network communication along with the JSON serialization and deserialization. All the behavior related to diagrams is located in the component ```org.eclipse.sirius.services.diagram```. This component is interacting with the regular Sirius Diagram components in a similar fashion as the Sirius diagram editor. The Sirius Services Diagram component is mainly responsible for providing a simple API to manipulate Sirius diagrams.
-
-The Sirius Server GraphQL component provides the entry point used to manipulate the GraphQL API of Sirius on the web. This component uses ```org.eclipse.sirius.services.graphql``` which provides the GraphQL interpreter. The Sirius Services GraphQL component can be manipulated programmatically without any network interaction.
-
-The Sirius Server FrontEnd component is only used to provide some static resources. Those resources (html, css, js) are used to create the user interface of the Sirius Server. They are located in a folder named ```sirius-frontend``` at the root of the plugin. Those files are the result of the build of the Sirius Components repository. The Sirius Server Workflow Frontend is used to provide all the frontend resources for the workflow integatred in Eclipse. This component is not part of the Sirius Server feature and won't be included in the Sirius Server product. The Sirius Server Images component is used to provide access to images inside of plugins and images for EObjects.
-
-All the plugins necessary to have the full experience of the Sirius Server will be added to the feature ```org.eclipse.sirius.server.feature```. Additional features and plugins required for the creation of the product will be added to the feature ```org.eclipse.sirius.server.product.feature```. Optional features and plugins used to help managing the Sirius Server will be directly added to the product ```org.eclipse.sirius.server.product```. Among those plugins, you will find some Eclipse Equinox utility plugins like the support for ```p2```. The feature ```org.eclipse.equinox.p2.core.feature``` comes with the p2 console for example and the feature ```org.eclipse.equinox.p2.extras.feature``` comes with the p2 director application used to easily install new dependencies into the product.
-
-
-### Autostart
-
-While using the Sirius Server inside a regular desktop application, it is useful to start the server when the Eclipse application is launched. As such, the plugin ```org.eclipse.sirius.server.ui.autostart``` is used to start the Sirius server using the early startup extension point. Since this extension point depends on the user interface (hence the name), it is not included in the Sirius Server product which uses its `IApplication` to start the server automatically.
-
-This plugin is also available by itself in the feature ```org.eclipse.sirius.server.ui.autostart.feature```.
-
-
-## Build
-
-There are two parts in the build of the Sirius Server. First, a regular Maven build, connected to the main Sirius build, which will create a product for our server. Second, a Docker build used to create the Docker image for the product created.
-
-
-### Maven
-
-The build of the Sirius Server uses the headless target platform of Sirius in order to ensure that no user interface dependencies are included in the final product. In order to launch a build of the Sirius Server, use the following command at the root of the Sirius repository:
-
-```
-mvn clean verify -Pheadless -Pheadless-server -Dplatform-version-name=photon
-```
-
-You could also run a full build of Eclipse Sirius if you want with:
-
-```
-mvn clean verify -Pheadless -Pheadless-server -Pfull -Dplatform-version-name=photon
-```
-
-Once the build is completed, you can find the Eclipse RCP-based products in the folder ```package/org.eclipse.sirius.server.product/target/products```. You can unzip the one matching your platform and run it as a regular executable. If you want to start the Sirius Server without a Docker container, open a terminal and execute the RCP application (`sirius-server`).
-
-It is recommended to use a terminal to start the Sirius Server instead of executing it by simply double clicking it since you want have access to the log easily.
-
-
-### Docker
-
-A Docker image for the Sirius Server can be created thanks to the `Dockerfile` available in the Sirius repository. The Docker image created is published on the [Docker repository of the Sirius Server](https://hub.docker.com/r/eclipsesirius/sirius-server).
-
-Navigate to the folder ```packaging/org.eclipse.sirius.server.product``` and run the following command to build the Docker image using the product built with Maven:
-
-```
-docker build -t eclipsesirius/sirius-server -f ./Dockerfile .
-```
-
-This command will create a Docker image named `eclipsesirius/sirius-server` (and tagged `latest` by default) using the Dockerfile in the current folder and with the current folder as the context of the build (the dot at the end of the command). The context of the build is important since it is the location in which Docker will look for the product built with Maven (in the `target/products` folder). The Docker image cannot be created if the Maven-based build has not been executed before.
-
-You can check that the Docker image has been properly created thanks to the following command:
-
-```
-docker images
-```
-
-If you want to remove an image built previously, you can use ```docker rmi IMAGE_ID```. Once the image has been created, you can create and start a container from this image with:
-
-```
-docker run -p 8080:8080 -i -t eclipsesirius/sirius-server:latest
-```
-
-This command will create a Docker container from the image ```eclipsesirius/sirius-server:latest```. It will also connect the port 8080 of the host machine to the port 8080 of the container. As such, a request on a web browser to ```http://localhost:8080``` will be redirected to the Docker container, allowing you to test the server inside of the container from your host machine. 
-
-The two options ```-t``` and ```-i``` will be respectively used to allocate a pseudo-tty allowing you to send commands to the container and keeping ```STDIN``` open. With this command, you terminal will now be connected to the Docker container started.
-
-In this container, you will have the ability to run regular unix commands like ```pwd```, ```top``` or even ```ls```. Once connected to the container, you will be located in the folder ```/home/developer/sirius-server``` where the product has been copied. You can start the Sirius Server with the following command:
-
-```
-./sirius-server
-```
-
-When the server will start it will display some logs in the console. The Docker container does not start the Sirius Server automatically. This choice has been made in order to let people build their own Docker container from this one with having to handle the constraint of an autostart. It lets others retrieve our container, add the dependencies and then start the container instead of retrieving it, stopping the server started automatically, adding their dependencies and restarting it.
-
-You can stop the server with the command ```exit```. Once stopped, you can close the connection between your terminal and the Docker container with ```exit```. This should stop the container.
-
-If you want to see all the containers currently running, use ```docker ps```. In order to see the container available, including the container which are not running anymore, use ```docker ps -a```. To stop manually a container, you can use ```docker stop CONTAINER_ID``` and finally to destroy the container, use ```docker rm CONTAINER_ID```.
-
-#### Official image
-
-The Docker image of the Sirius project is available on the [EclipseSirius Docker Hub](https://hub.docker.com/r/eclipsesirius/sirius-server/) account. This image can be pulled using:
-
-```
-docker pull eclipsesirius/sirius-server
-```
-
-You can then launch it using the previous command:
-
-```
-docker run -p 8080:8080 -i -t eclipsesirius/sirius-server:latest
-```
-
-This image will be tagged for each release of Eclipse Sirius just like the main artifacts of the project.
-
-#### Custom Docker image
-
-If you want to build a custom version of the Sirius Server container with your own metamodels, you can use a Dockerfile inspired by the one below.
-
-```docker
-FROM eclipsesirius/sirius-server:latest
-
-RUN ./sirius-server -clean -application org.eclipse.equinox.p2.director -noSplash -repository "http://www.example.org/updatesite" -installIU "org.example.feature.feature.group" -vmargs -Djava.awt.headless=true
-
-EXPOSE 8080
-ENTRYPOINT ["./sirius-server"]
-```
-
-With a Dockerfile such as this one, you will create a brand new Docker image with your feature ```org.example.feature.feature.group``` installed from the update site ```http://www.example.org/updatesite```.
-
-You can now publish your Docker image and let your users consume it. Have a look at the p2 documentation for more information on the p2 director and the p2 console which is also available thanks to the OSGi console in the Sirius Server.
-
-
-## Start
-
-Once the Sirius Server is up and running, it will log some information in the console. The first messages should have the following content:
-
-```
-2018-08-08 10:58:22.688:INFO::main: Logging initialized @34626ms to org.eclipse.jetty.util.log.StdErrLog
-2018-08-08 10:58:23.081:INFO:oejs.Server:main: jetty-9.4.10.v20180503; built: 2018-05-03T15:56:21.710Z; git: daa59876e6f384329b122929e70a80934569428c; jvm 1.8.0_20-b26
-2018-08-08 10:58:23.130:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
-2018-08-08 10:58:23.131:INFO:oejs.session:main: No SessionScavenger set, using defaults
-2018-08-08 10:58:23.134:INFO:oejs.session:main: node0 Scavenging every 660000ms
-2018-08-08 10:58:23.144:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@522a8886{/api,null,AVAILABLE}
-2018-08-08 10:58:23.156:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@373bfbf6{/ws,null,AVAILABLE}
-2018-08-08 10:58:23.157:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@47c89a33{/workflow,null,AVAILABLE}
-2018-08-08 10:58:23.158:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@296ecb77{/images,null,AVAILABLE}
-2018-08-08 10:58:23.187:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@2a0fb087{/,null,AVAILABLE}
-2018-08-08 10:58:23.261:INFO:oejs.AbstractConnector:main: Started ServerConnector@4e161f41{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
-2018-08-08 10:58:23.263:INFO:oejs.Server:main: Started @35201ms
-```
-
-The logs start with the version of Jetty used by the server along with some settings.
-
-Then you can see the details of the `SessionIdManager` used by Jetty. The `SessionIdManager` is used to collect and store some information across time about the end users. Those information can be manipulated thanks to the servlet API. There are multiple session manager implementations in Jetty (in memory, in a database, in MongodDB or even in Google Cloud Datastore). We do not configure anything regarding session management for the moment so the logs indicate that we are using the `DefaultSessionIdManager` without any `SessionScavenger` configured. 
-
-After that, you will find the list of context handlers used by the server. Here we have the main context handlers registered:
-
-* The context handler of the HTTP API ```{/api,null,AVAILABLE}```
-* The context handler of the Web Socket API ```{/ws,null,AVAILABLE}```
-* The context handler of the front-end of the workflow ```{/workflow,null,AVAILABLE}```
-* The context handler of the Images API ```{/images,null,AVAILABLE}```
-* The context handler of the front-end ```{/,null,AVAILABLE}```
-
-The context handler of the HTTP API will be used for all requests on ```http://localhost:8080/api```. The context handler of the Web Socket API will be used for all requests on ```http://localhost:8080/ws```. Finally, the context handler of the front-end will handle all other requests on ```http://localhost:8080/```.
-
-After that, you can see the protocols supported by the Sirius Server and the ports used, in this case ```{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}```.
-
-By default the Sirius Server will start on a random available port so look into the console to find the port selected. An environment variable is available to configure the port to use (more about that later in this document). The product created by the build uses this environment variable to start the server on the port ```8080```. While this port can create some conflict with other tools which may use the same port, inside the Docker container we know that nothing else will use the same port.
-
-## OSGi Console
-
-The Sirius Server product uses the ```-console``` option which launches the Equinox OSGi console when the product is starting. With this console, you will be able to inspect the state of the product and modify it. Let's have a look at some of the most common commands that you can run in the console.
-
-### State of the components
-
-The first thing that you can try with the Sirius Server console is to have a look at the components available and their state. You can find the list of the components installed with the command ```ss``` which can be limited to a specific scope with ```ss org.eclipse.sirius.server``` for example. The previous command may give you the following result:
-
-```
-osgi> ss org.eclipse.sirius.server
-"Framework is launched."
-
-
-id	State       Bundle
-1860	ACTIVE      org.eclipse.sirius.server_7.0.0.qualifier
-1861	STARTING    org.eclipse.sirius.server.application_7.0.0.qualifier
-1862	ACTIVE      org.eclipse.sirius.server.backend_7.0.0.qualifier
-1863	ACTIVE      org.eclipse.sirius.server.diagram_7.0.0.qualifier
-1864	ACTIVE      org.eclipse.sirius.server.frontend_7.0.0.qualifier
-1865	ACTIVE      org.eclipse.sirius.server.graphql_7.0.0.qualifier
-1866	ACTIVE      org.eclipse.sirius.server.images_7.0.0.qualifier
-```
-
-You can see the components matching the given scope, their id and their state.
-
-### Extension points and extension
-
-The OSGi console can let you see the various extension points available and their extensions. To have a look at the extension points you will have to use ```ns``` directly or with a scope like ```ns org.eclipse.sirius.server```:
-
-```
-osgi> ns org.eclipse.sirius.server
-Extension point(s):
--------------------
-org.eclipse.sirius.server.siriusServerConfigurator [from org.eclipse.sirius.server]
-org.eclipse.sirius.server.siriusServerService [from org.eclipse.sirius.server]
-org.eclipse.sirius.server.siriusServerEndpointConfigurationProvider [from org.eclipse.sirius.server]
-```
-
-In order to see the extensions of a specific extension point, use ```pt``` with the name of the extension point such as ```pt org.eclipse.sirius.server.siriusServerService```:
-
-```
-osgi> pt org.eclipse.sirius.server.siriusServerService
-Extension point: org.eclipse.sirius.server.siriusServerService [from org.eclipse.sirius.server]
-
-Extension(s):
--------------------
-org.eclipse.sirius.server.backendServices [from org.eclipse.sirius.server.backend]
-org.eclipse.sirius.server.graphql.GraphQLService [from org.eclipse.sirius.server.graphql]
-```
-
-You can see here the components which are contributing to the HTTP API of the Sirius Server.
-
-### Starting and stopping a component
-
-You can manipulate the lifecycle of the components quite easily from the console. It allows you to install, start, stop and even uninstall any component. If you want to install a components from an update site, you would need to have access to the p2 console. Contrary to the OSGi console, the p2 console is not started automatically but we can start it manually. For that, you need to find the id of the p2 console component using the following command:
-
-```
-osgi> ss console
-"Framework is launched."
-
-
-id    State       Bundle
-993   ACTIVE      org.eclipse.equinox.console_1.3.0.v20180119-0630
-1015  STARTING    org.eclipse.equinox.p2.console_1.1.0.v20180130-1836
-```
-
-then you can start it with the command ```start```:
-
-```
-osgi> start 1015
-```
-
-its new state is available with ```ss console```
-
-```
-osgi> ss console
-"Framework is launched."
-
-
-id    State       Bundle
-993   ACTIVE      org.eclipse.equinox.console_1.3.0.v20180119-0630
-1015  ACTIVE      org.eclipse.equinox.p2.console_1.1.0.v20180130-1836
-```
-
-and you have now access to the [p2 commands](https://wiki.eclipse.org/Equinox/p2/Console_Users_Guide) in the OSGi console. To find more about the p2 commands, use ```help```:
-
-```
-osgi> help
----Configurator Commands---
-	confapply [<config URL>] - Applies a configuration
-
----p2 Provisioning Commands.---
----Repository Commands.---
-	provaddrepo <repository URI> - Add specified URI as metadata and artifact repository.
-	provdelrepo <repository URI> - Remove specified metadata and artifact repository.
-	provaddmetadatarepo <repository URI> - Add specified URI as metadata repository.
-	provdelmetadatarepo <repository URI> - Remove specified metadata repository.
-	provaddartifactrepo <repository URI> - Add specified URI as artifact repository.
-	provdelartifactrepo <repository URI> - Remove specified artifact repository.
-```
-
-The output of the help command is truncated because there are dozens of commands in the OSGi console. The p2 provisioning commands can let you add an update site to the product and install any installation unit (plugin or feature) from this update site into the product. Those commands are not available until the p2 console component is active.
-
-
-## Protocols
-
-The Jetty server will be used to communicate with Sirius using HTTP(S) and Web Socket.
-
-HTTP will be used by those who want to receive a snapshot of some data from the server while Web Socket will be used to communicate over time with the server. With HTTP, the server will wait for a request to compute some data and return it in a response.
-
-With Web Socket, the client will be connected to the server and both the clients and the server will send and receive messages. As such, with Web Socket, a client can listen for messages emitted from the server without ever sending a message to the server. The Web Socket protocol does not appear in the list of context handlers of the server in the logs because a Web Socket connection is started from an HTTP endpoint. After a handshake the protocol is switched from HTTP to Web Socket.
-
-One could ask why we are not using Web Socket everywhere instead of HTTP because Web Socket can do what HTTP can (request then response). Web Socket is more complex to manipulate and HTTP is way more supported so Web Socket will only be used by features where clients need to react to events on the server such as diagram manipulation. Server Side Events (SSE) could be used instead of Web Socket but since this protocol is way less powerful than Web Socket, it should mostly be limited to notification systems. We do not plan to use SSE for now.
-
-## HTTP
-
-The HTTP API can be extended thanks to the extension point ```org.eclipse.sirius.server.siriusServerService```. With this extension point, you can contribute an instance of ```org.eclipse.sirius.server.api.ISiriusServerService```. A Sirius Server service defines how to handle some HTTP requests on a specific subpath.
-
-All extensions contributed to this extension point will be available on a subpath of ```http://localhost:8080/api``` as defined by the servlet context handler of the HTTP API. For example, the Sirius Server service instance below will respond to HTTP requests on ```http://localhost:8080/api/projects/{projectName}```
-
-```java
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_NOT_FOUND;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import java.util.Map;
-import java.util.Optional;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-
-@SiriusServerPath("/projects/{projectName}")
-public class TestSiriusServerService implements ISiriusServerService {
-    private static final String PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        Optional<String> optionalProjectName = Optional.ofNullable(variables.get(PROJECT_NAME));
-        return optionalProjectName.map(projectName -> new SiriusServerResponse(STATUS_OK, "Hello " + projectName)).orElse(new SiriusServerResponse(STATUS_NOT_FOUND));
-    }
-}
-```
-
-In order to send a HTTP request to this endpoint, you could use the following JavaScript code:
-
-```javascript
-const getProject = async (projectName) => {
-  const jsonResponse = await fetch(`http://localhost:8080/api/projects/${projectName}`);
-  const response = await jsonResponse.json();
-  console.log(response)
-};
-
-getProject('test');
-```
-
-A REST API is available for legacy reasons, this API will be deprecated in the months to come. This REST API can be found in the component ```org.eclipse.sirius.server.backend```.
-
-
-### Cross Origin Resource Sharing
-
-When some JavaScript code in the web browser sends a request to a server, the response can only be processed if the JavaScript client code comes from the same domain as the HTTP API.
-
-If some JavaScript from ```http://www.domainA.com``` tries to contact the HTTP API of ```http://www.domainB.com``` then the request will fail unless the server from the domain B accept to be contacted from the domain A. You will encounter this issue when you are developing an application with the Sirius Server. Your instance of the Sirius Server may be started on ```http://localhost:8080``` while the development server of your front-end may be started on ```http://localhost:3000```.
-
-In this configuration, requests coming from your front-end will be considered as coming from a different domain and as such they will fail. While some options are available in front-end development tools to fix this issue, you can also fix it by setting some Cross Origin Resource Sharing (CORS) headers in your responses. With those headers, your web browser will accept to process the responses from the server. To configure the CORS, use the dedicated environment variables to allow, for example, all the origins to request data from your server with ```-Dorg.eclipse.sirius.server.cors.allowed.origin=*```.
-
-## Image HTTP API
-
-The HTTP API also provides access to static images located inside any plugin in the server. For that, use HTTP request with the following structure:
-
-```
-http://localhost:8080/images/PLUGIN_NAME/PATH_TO_IMAGE
-```
-
-For example ```http://localhost:8080/images/org.eclipse.emf.ecore.edit/icons/full/obj16/EClass.gif```. This API can let you easily retrieve images used by tools and mappings in a Sirius diagram. The HTTP API can also be used to retrieve the image provided by the EMF label provider with request such as:
-
-```
-http://localhost:8080/images/PROJECT_NAME/PATH_TO_RESOURCE?fragment=EOBJECT_FRAGMENT
-```
-
-For example, ```http://localhost:8080/images/org.eclipse.emf.examples.library/model/extlibrary.ecore?fragment=//Writer```.
-
-## GraphQL HTTP
-
-A new version of the HTTP API has been created using GraphQL Java in the components ```org.eclipse.sirius.server.graphql``` and ```org.eclipse.sirius.services.graphql```. The GraphQL interpreter can be manipulated programmatically without any network requests thanks to the component ```org.eclipse.sirius.services.graphql```.
-
-The GraphQL endpoint can be accessed at ```http://localhost:8080/api/graphql```. All GraphQL requests should use the ```POST``` HTTP verb. You can communicate with the GraphQL endpoint using a tool like [Insomnia](https://insomnia.rest). In order to send a GraphQL payload, you can send the following content in a `POST` request with the ```application/json``` content type.
-
-```json
-{
-  "query": "...",
-  "operationName": "...",
-  "variables": {
-    "key": "value"
-  }
-}
-```
-
-The fields ```operationName``` and ```variables``` are both optional. For example a simple query requesting the number of projects on the server would look like this:
-
-```
-POST http://localhost:8080/api/graphql
-Content-Type: application/json
-
-{
-  "query": "{ viewer { projects { totalCount } }}"
-}
-```
-
-If you want to execute a GraphQL Query from JavaScript, you can use the following code:
-
-```javascript
-const performQuery = async (query, operationName, variables) => {
-  const body = {
-    query,
-    operationName,
-    variables
-  };
-  const jsonResponse = await fetch('http://localhost:8080/api/graphql', {
-    method: 'POST',
-    headers: {
-      'Content-Type': 'application/json; charset=utf-8'
-    },
-    body: JSON.stringify(body)
-  });
-  const response = await jsonResponse.json();
-  console.log(response);
-};
-
-const query = `
-query getProjectName($projectName: String!) {
-  viewer {
-    project(name: $projectName) {
-      name
-    }
-  }
-}
-`;
-
-const operationName = 'getProjectName';
-const variables = {
-  projectName: 'test'
-};
-
-performQuery(query, operationName, variables);
-```
-
-
-### Entry Points
-
-We have one entity used as the entry point of the GraphQL schema, our type ```User``` which is accessible thanks to the field ```viewer```. Since we do not have currently an authentication system for the Sirius Server, an empty instance of user is always created from scratch for each request. This instance does not contain any data but its an entry point from which we can access to various other entities.
-
-For each of those entities, we have two entry points, one to retrieve the collection of entities and another one to retrieve one specific entity. This comes from the fact that users may want to access for example with those two URLs:
-
-* http://localhost:8080/projects
-* http://localhost:8080/projects/org.eclipse.sirius
-
-The first request would need to access the collection of projects with some pagination using:
-
-```
-{
-  viewer {
-    projects(first: 10) {
-      // See the next section for additional details on the pagination strategy
-    }
-  }
-}
-```
-
-The second one would need to access one specific project directly with a request like this one:
-
-```
-{
-  viewer {
-    project(name: "org.eclipse.sirius") {
-      name
-    }
-  }
-}
-```
-
-In a similar fashion, we have access directly to one metamodel and the collection of all the metamodels with respectively ```ePackage(nsURI: string)``` and ```ePackages(...)```.
-
-
-### Pagination Strategy
-
-There are various pagination strategies for GraphQL, in the Sirius Server we have decided to adopt the Facebook Relay pagination strategy. This strategy is based on a [specification](https://facebook.github.io/relay/graphql/connections.htm) of the schema of the pagination.
-
-We started by using a very straightforward approach to the pagination with simple collections represented by fields with some arguments (first, after):
-
-```
-{
-  viewer {
-    projects(first: 10, after: 30) {
-      name
-    }
-  }
-}
-```
-
-This strategy allows us to iterate over a collection of data but it does not give us some information needed to properly paginate over some data on the front-end. With this approach, we do not have the total number of elements available and we can't have some information on the relationship between the elements. It also does not give us the ability to indicate if there are next or previous pages. This is why we have moved to same strategy as Facebook, the previous example would be then expressed like this:
-
-```
-{
-  viewer {
-    projects(first: 10, after: <CURSOR>) {
-      totalCount
-      pageInfo {
-        hasNextPage
-        hasPreviousPage
-      }
-      edges {
-        node {
-          name
-        }
-        cursor
-      }
-    }
-  }
-}
-```
-
-We can also move backward with this pagination strategy:
-
-```
-{
-  viewer {
-    projects(last: 10, before: <CURSOR>) {
-      totalPageCount
-      pageInfo {
-        hasNextPage
-        hasPreviousPage
-      }
-      edges {
-        node {
-          name
-        }
-        cursor
-      }
-    }
-  }
-}
-```
-
-
-### Schema
-
-The GraphQL schema of the Sirius Server is composed of several domains interconnected:
-
-* Workspace
-* Sirius
-* EMF
-
-Those domains are linked on with the others by a complex set of relationships. Those relationships are defined using connection and edge types for multi-valued relationships.
-
-
-#### Workspace
-
-The Workspace domain of the GraphQL schema is used to manipulate the resources available on the server. It defines the following types:
-
-- Resource
-- Container
-- Project (implements Resource and Container)
-- Folder (implements Resource and Container)
-- File (implements Resource)
-
-
-#### Sirius
-
-The Sirius domain of the GraphQL schema is used to manipulate viewpoints, representation descriptions and representations. It defines the following types:
-
-- Viewpoint
-- Representation Description
-- Diagram Description
-- Representation
-- Diagram
-
-
-#### EMF
-
-There are two sub-domains in the GraphQL schema related to the manipulation of EMF concepts. First, a collection of static concepts parameterized by a metamodel and second, a dynamic API to query any EMF model. The static concepts are only used for the moment for the Ecore metamodel.
-
-
-#### GraphQL SDL Schema
-
-In order to retrieve a human-readable version of the GraphQL schema used by the server, you can use the following piece of code:
-
-```javascript
-const fetch = require("node-fetch");
-const { introspectionQuery, buildClientSchema, printSchema } = require("graphql");
-const fs = require("fs");
-
-fetch("http://localhost:8080/api/graphql", {
-  method: "POST",
-  headers: { "Content-Type": "application/json" },
-  body: JSON.stringify({ query: introspectionQuery })
-})
-  .then(res => res.json())
-  .then(res => {
-    fs.writeFileSync("result.json", JSON.stringify(res.data, null, 2));
-    const introspectionSchemaResult = JSON.parse(fs.readFileSync("result.json"));
-    const graphqlSchemaObj = buildClientSchema(introspectionSchemaResult);
-    const sdlString = printSchema(graphqlSchemaObj);
-    console.log(sdlString);
-  });
-```
-
-In order to run this code, you can copy it in a file named ```app.js``` and then run the following commands:
-
-```
-npm init --yes
-npm install graphql
-npm install node-fetch
-node app.js
-```
-
-The Sirius Server needs to be up and running for this code to work. It will request the GraphQL schema of the server thanks to the reflective API of GraphQL and print it in the Standard Definition Language (SDL). The schema printed will have some differences with the schema created programmatically:
-
-- The type are ordered alphabetically which can make it difficult to find related types
-- Directives do not appear in the SDL
-
-
-### Introspection
-
-GraphQL allows users to inspect the structure of the GraphQL schema. For example, you can start with the following request to retrieve the types of the schema:
-
-```
-{
-  __schema {
-    types {
-      name
-    }
-  }
-}
-```
-
-Tools like [Insomnia](https://insomnia.rest) or GraphiQL are parameterized by the schema to help you write your GraphQL queries.
-
-
-### Cost
-
-In order to protect the GraphQL server from malicious queries a mechanism has been configured to limit the amount of information retrieved by a query. Some fields of the schema have been decorated with a directive named ```cost``` which defines the cost of the request of the field. A field decorated with the cost directive can also have ```multipliers``` indicating which argument of the field can multiply the cost of the request. A GraphQL query cannot request more than 100 points of data.
-
-As an example, requesting a project may have a cost of 5 and its multipliers are both the argument ```first``` and ```last```.
-
-```
-type User {
-  projects(first: int, last: int): UserProjectConnection @cost(complexity: 5, multipliers: ["first", "last"])
-}
-```
-
-This way, if an user send the following query, it would cost 105 points (21 * 5) and thus the query would be rejected.
-
-```
-query {
-  viewer {
-    projects(first: 21) {
-      ...
-    }
-  }
-}
-```
-
-The value of the complexity of each field will be modified in the future, those values are not set in stone.
-
-
-## Web Socket
-
-The Web Socket API can be extended thanks to the extension point named ```org.eclipse.sirius.server.siriusServerEndpointConfigurationProvider```. This extension point gives you the ability to contribute an instance of ```org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider```.
-
-All the contributions to this extension point will be available on a subpath of ```http://localhost:8080/ws``` as defined by the servlet context handler of the Web Socket API. The endpoint configuration provider will return a configuration of the Web Socket endpoint such as:
-
-```java
-public class TestEndpointConfigurationProvider implements ISiriusServerEndpointConfigurationProvider {
-
-    private static final String PATH = "/test"; //$NON-NLS-1$
-
-    @Override
-    public ServerEndpointConfig getEndpointConfiguration() {
-        // @formatter:off
-        return Builder.create(TestEndpoint.class, PATH)
-                .configurator(new TestEndpointConfigurator())
-                .build();
-        // @formatter:on
-    }
-
-}
-```
-
-This endpoint configuration provider will indicate the endpoint to create and its configurator. The configurator should be provided otherwise the code would not work in an OSGi context (it would delegate everything to a `ServiceLoader` which has to be configured specifically to work in such context). The configurator returned has to delegate everything to the container default configurator.
-
-```java
-public class TestEndpointConfigurator extends Configurator {
-
-    private ContainerDefaultConfigurator delegate = new ContainerDefaultConfigurator();
-
-    @Override
-    public <T> T getEndpointInstance(Class<T> endpointClass) throws InstantiationException {
-        return this.delegate.getEndpointInstance(endpointClass);
-    }
-
-    @Override
-    public boolean checkOrigin(String originHeaderValue) {
-        return this.delegate.checkOrigin(originHeaderValue);
-    }
-
-    @Override
-    public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
-        this.delegate.modifyHandshake(sec, request, response);
-    }
-
-    @Override
-    public String getNegotiatedSubprotocol(List<String> supported, List<String> requested) {
-        this.delegate.getNegotiatedSubprotocol(supported, requested);
-    }
-
-    @Override
-    public List<Extension> getNegotiatedExtensions(List<Extension> installed, List<Extension> requested) {
-        this.delegate.getNegotiatedExtensions(installed, requested);
-    }
-
-}
-```
-
-The ContainerDefaultConfigurator cannot be extended directly since this class is final.
-
-
-The implementation of the endpoint can then be created. It will be used to configure a message handler for the Web Socket session once the connection is opened.
-
-```java
-public class TestEndpoint extends Endpoint {
-    @Override
-    public void onOpen(Session session, EndpointConfig config) {
-        session.addMessageHandler(new TestMessageHandler(session));
-    }
-
-    @Override
-    public void onClose(Session session, CloseReason closeReason) {
-        super.onClose(session, closeReason);
-    }
-}
-```
-
-The message handler is user to receive and send messages to the client. To send messages to the clients, it needs a reference to the Web Socket session.
-
-```java
-public class TestMessageHandler implements Whole<String> {
-
-    private Session session;
-
-    public TestMessageHandler(Session session) {
-        this.session = session;
-    }
-
-    @Override
-    public void onMessage(String message) {
-        System.out.println(message);
-        session.getAsyncRemote().sendText("Hello");
-    }
-
-}
-```
-
-If you want to execute send and receive some Web Socket messages, you can use the following JavaScript code:
-
-```javascript
-const websocket = new WebSocket(`ws://localhost:8080/ws/test`);
-websocket.onopen = (event) => {
-  const message = JSON.stringify({
-    hello: 'world'
-  });
-  websocket.send(message);
-};
-websocket.onmessage = (event) => {
-  console.log(event.data);
-};
-```
-
-With this code, once the client is connected it will send ```{ "hello": "world" }``` to the server which will print it in the console. After that, the server will send ```Hello``` back to the client which will print it too in its console.
-
-
-## Graphical Server Protocol
-
-An API based on Web Socket is available in order to manipulate Sirius diagrams. This API is available on ```http://localhost:8080/ws/diagrams```. Have a look at the [Graphical Server Protocol](https://obeonetwork.github.io/GraphicalServerProtocol/) to find more about the way you can interact with this endpoint.
-
-
-## Front-End
-
-The front-end is accessible on ```http://localhost:8080/```. It is built from the [Sirius Components repository](https://www.github.com/eclipse/sirius-components) on Github.
-
-
-## System Properties
-
-The following system properties are available to configure various aspects of the server's behavior:
-
-* ```org.eclipse.sirius.server.cors.allowed.methods``` - The constant used to specify allowed methods. Expects a list of string with comma separated values.
-* ```org.eclipse.sirius.server.cors.allowed.headers``` - The constant used to specify allowed headers. Expects a list of string with comma separated values.
-* ```org.eclipse.sirius.server.cors.allowed.origins``` - The constant used to specify allowed origins. Expects a list of string with comma separated values.
-* ```org.eclipse.sirius.server.cors.enabled``` - The constant used to determine if Cross Origin Resource Sharing is enabled or not. Expects a boolean.
-* ```org.eclipse.sirius.server.https.enabled``` - The constant used to determine whether SSL is activated or not.
-* ```org.eclipse.sirius.server.https.host``` - The constant used to customize the HTTPS host.
-* ```org.eclipse.sirius.server.https.port``` - The constant used to customize the HTTPS port.
-* ```org.eclipse.sirius.server.ssl.keystore.path``` - The constant used to give the location of the key store for SSL authentication.
-* ```org.eclipse.sirius.server.ssl.keystore.passphrase``` - The constant used to give the pass phrase for SSL authentication.
-* ```org.eclipse.sirius.server.http.host``` - The constant used to customize the HTTP host.
-* ```org.eclipse.sirius.server.http.port``` - The constant used to customize the HTTP port
-* ```org.eclipse.sirius.services.graphql.cost``` - The constant used to customize the maximum cost of a GraphQL query (default: 100).
-
diff --git a/plugins/org.eclipse.sirius.server/about.html b/plugins/org.eclipse.sirius.server/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.server/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server/build.properties b/plugins/org.eclipse.sirius.server/build.properties
deleted file mode 100644
index d457e0c..0000000
--- a/plugins/org.eclipse.sirius.server/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               schema/
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.server/plugin.properties b/plugins/org.eclipse.sirius.server/plugin.properties
deleted file mode 100644
index cc5d027..0000000
--- a/plugins/org.eclipse.sirius.server/plugin.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018, 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server
-providerName = Eclipse Modeling Project
-
-SiriusServerConfigurator_name=Sirius Server Configurator
-SiriusServerService_name=Sirius Server Service
-SiriusServerEndpointConfigurationProvider_name=Sirius Server Endpoint Configuration Provider
-
-SiriusServerManager_cannotStartServer=An error has occurred preventing the server from being started
-SiriusServerManager_cannotStopServer=An error has occurred preventing the server from being stopped properly
-
-SiriusServerConfigurator_wrongPropertyTypeWarning= The value of the property {0} is not an integer. The default value, {1} will be used instead."
-
-SiriusServerConfigurator_headerConfig=set Content-Security-Policy: default-src 'self'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; connect-src 'self' ws:; frame-ancestors 'none'; report-uri /api/csp-violation-reports,\
-set X-Frame-Options: DENY,\
-set X-Xss-Protection: 1; mode=block,\
-set X-Content-Type-Options: nosniff
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.server/plugin.xml b/plugins/org.eclipse.sirius.server/plugin.xml
deleted file mode 100644
index ae9981d..0000000
--- a/plugins/org.eclipse.sirius.server/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension-point id="siriusServerConfigurator" name="%SiriusServerConfigurator_name" schema="schema/siriusServerConfigurator.exsd"/>
-   <extension-point id="siriusServerService" name="%SiriusServerService_name" schema="schema/siriusServerService.exsd"/>
-   <extension-point id="siriusServerEndpointConfigurationProvider" name="%SiriusServerEndpointConfigurationProvider_name" schema="schema/siriusServerEndpointConfigurationProvider.exsd"/>
-</plugin>
diff --git a/plugins/org.eclipse.sirius.server/pom.xml b/plugins/org.eclipse.sirius.server/pom.xml
deleted file mode 100644
index 2a6e522..0000000
--- a/plugins/org.eclipse.sirius.server/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.server</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.server/schema/siriusServerConfigurator.exsd b/plugins/org.eclipse.sirius.server/schema/siriusServerConfigurator.exsd
deleted file mode 100644
index 165d91a..0000000
--- a/plugins/org.eclipse.sirius.server/schema/siriusServerConfigurator.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.sirius.server" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.sirius.server" id="siriusServerConfigurator" name="%siriusServerConfigurator_name"/>
-      </appinfo>
-      <documentation>
-         This extension point allows to provide a custom implementation of the &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerConfigurator&lt;/code&gt; to configure the Sirius server.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="descriptor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="descriptor">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.sirius.server.api.ISiriusServerConfigurator"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         6.0.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerConfigurator&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         None.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2018 Obeo&lt;br/&gt;
-
- This program and the accompanying materials
-are made available under the terms of the Eclipse Public License 2.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
-
-SPDX-License-Identifier: EPL-2.0
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.sirius.server/schema/siriusServerEndpointConfigurationProvider.exsd b/plugins/org.eclipse.sirius.server/schema/siriusServerEndpointConfigurationProvider.exsd
deleted file mode 100644
index 29a6302..0000000
--- a/plugins/org.eclipse.sirius.server/schema/siriusServerEndpointConfigurationProvider.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.sirius.server" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.sirius.server" id="siriusServerEndpointConfigurationProvider" name="%siriusServerEndpointConfigurationProvider_name"/>
-      </appinfo>
-      <documentation>
-         This extension point allows to provide a custom implementation of the &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider&lt;/code&gt; to provide some WebSocket API on the Sirius server.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="descriptor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="descriptor">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         6.1.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         This plugin does not supply any implementation.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2018 Obeo&lt;br/&gt;
-
- This program and the accompanying materials
-are made available under the terms of the Eclipse Public License 2.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
-
-SPDX-License-Identifier: EPL-2.0
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.sirius.server/schema/siriusServerService.exsd b/plugins/org.eclipse.sirius.server/schema/siriusServerService.exsd
deleted file mode 100644
index 610e6fa..0000000
--- a/plugins/org.eclipse.sirius.server/schema/siriusServerService.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.sirius.server" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.sirius.server" id="siriusServerService" name="%siriusServerService_name"/>
-      </appinfo>
-      <documentation>
-         This extension point allows to provide a custom implementation of the &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerService&lt;/code&gt; to register services.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="descriptor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="descriptor">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.sirius.server.api.ISiriusServerService"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         6.1.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.sirius.server.api.ISiriusServerService&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         None.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2018 Obeo&lt;br/&gt;
-
- This program and the accompanying materials
-are made available under the terms of the Eclipse Public License 2.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
-
-SPDX-License-Identifier: EPL-2.0
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerConfigurator.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerConfigurator.java
deleted file mode 100644
index c7d5f2a..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerConfigurator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.api;
-
-import org.eclipse.jetty.server.Server;
-
-/**
- * Interface used to configure the Sirius server.
- *
- * @author sbegaudeau
- */
-public interface ISiriusServerConfigurator {
-    /**
-     * Configures the given server.
-     * 
-     * @param server
-     *            The server
-     */
-    void configure(Server server);
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerEndpointConfigurationProvider.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerEndpointConfigurationProvider.java
deleted file mode 100644
index db1416d..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerEndpointConfigurationProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.api;
-
-import javax.websocket.server.ServerEndpointConfig;
-
-/**
- * Interface used to contribute WebSocket endpoints to the server.
- *
- * @author sbegaudeau
- */
-public interface ISiriusServerEndpointConfigurationProvider {
-    /**
-     * Returns the configuration of the WebSocket endpoint.
-     * 
-     * @return The configuration of the WebSocket endpoint
-     */
-    ServerEndpointConfig getEndpointConfiguration();
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerService.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerService.java
deleted file mode 100644
index 7c03d41..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/ISiriusServerService.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2020 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.api;
-
-import java.util.Map;
-import java.util.Optional;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Interface used to contribute to the Sirius server API. Implementations of
- * this interface will have to be annotated with {@link SiriusServerPath} to
- * indicate the path of the URLs that they support.
- *
- * @author sbegaudeau
- */
-public interface ISiriusServerService {
-    /** The GET HTTP method. */
-    String GET = "GET"; //$NON-NLS-1$
-
-    /** The HEAD HTTP method. */
-    String HEAD = "HEAD"; //$NON-NLS-1$
-
-    /** The PUT HTTP method. */
-    String PUT = "PUT"; //$NON-NLS-1$
-
-    /** The POST HTTP method. */
-    String POST = "POST"; //$NON-NLS-1$
-
-    /** The DELETE HTTP method. */
-    String DELETE = "DELETE"; //$NON-NLS-1$
-
-    /** The OPTIONS HTTP method. */
-    String OPTIONS = "OPTIONS"; //$NON-NLS-1$
-
-    /**
-     * Process the given request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse process(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        Optional<SiriusServerResponse> optionalResponse = Optional.empty();
-        switch (request.getMethod()) {
-        case GET:
-            optionalResponse = Optional.ofNullable(this.doGet(request, variables, remainingPart));
-            break;
-        case HEAD:
-            optionalResponse = Optional.ofNullable(this.doHead(request, variables, remainingPart));
-            break;
-        case PUT:
-            optionalResponse = Optional.ofNullable(this.doPut(request, variables, remainingPart));
-            break;
-        case POST:
-            optionalResponse = Optional.ofNullable(this.doPost(request, variables, remainingPart));
-            break;
-        case DELETE:
-            optionalResponse = Optional.ofNullable(this.doDelete(request, variables, remainingPart));
-            break;
-        case OPTIONS:
-            optionalResponse = Optional.ofNullable(this.doOptions(request, variables, remainingPart));
-            break;
-        default:
-            optionalResponse = Optional.ofNullable(this.doError(request, variables, remainingPart));
-            break;
-        }
-        return optionalResponse.orElseGet(() -> this.doError(request, variables, remainingPart));
-    }
-
-    /**
-     * Process the given GET request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doGet(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given HEAD request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doHead(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given PUT request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doPut(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given POST request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doPost(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given DELETE request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doDelete(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given OPTIONS request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doOptions(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return null;
-    }
-
-    /**
-     * Process the given invalid request.
-     *
-     * @param request
-     *            The HTTP request to process
-     * @param variables
-     *            The variables extracted from the request
-     * @param remainingPart
-     *            The remaining part of the request
-     * @return The result to return
-     */
-    default SiriusServerResponse doError(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return new SiriusServerResponse(SiriusServerResponse.STATUS_BAD_REQUEST);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerPath.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerPath.java
deleted file mode 100644
index a465048..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerPath.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.api;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Used to indicate the path of the {@link ISiriusServerService}.
- *
- * @author sbegaudeau
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface SiriusServerPath {
-    /**
-     * Returns the path of the service.
-     * 
-     * @return The path of the service
-     */
-    String value();
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerResponse.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerResponse.java
deleted file mode 100644
index 5145a82..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/api/SiriusServerResponse.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.api;
-
-/**
- * Class used to describe the response of the HTTP service.
- *
- * @author sbegaudeau
- */
-public class SiriusServerResponse {
-    /** The application/json content type. */
-    public static final String CONTENT_TYPE_APPLICATION_JSON = "application/json"; //$NON-NLS-1$
-
-    /** The OK status. */
-    public static final int STATUS_OK = 200;
-
-    /** The CREATED status. */
-    public static final int STATUS_CREATED = 201;
-
-    /** The BAD REQUEST status. */
-    public static final int STATUS_BAD_REQUEST = 400;
-
-    /** The NOT FOUND status. */
-    public static final int STATUS_NOT_FOUND = 404;
-
-    /** The INTERNAL SERVER ERROR status. */
-    public static final int STATUS_INTERNAL_SERVER_ERROR = 500;
-
-    /**
-     * The status.
-     */
-    private int status;
-
-    /**
-     * The payload.
-     */
-    private Object payload;
-
-    /**
-     * The content type.
-     */
-    private String contentType;
-
-    /**
-     * The constructor.
-     *
-     * @param status
-     *            The status
-     */
-    public SiriusServerResponse(int status) {
-        this(status, null, CONTENT_TYPE_APPLICATION_JSON);
-    }
-
-    /**
-     * The constructor.
-     *
-     * @param status
-     *            The status
-     * @param payload
-     *            The payload
-     */
-    public SiriusServerResponse(int status, Object payload) {
-        this(status, payload, CONTENT_TYPE_APPLICATION_JSON);
-    }
-
-    /**
-     * The constructor.
-     *
-     * @param status
-     *            The status
-     * @param payload
-     *            The payload
-     * @param contentType
-     *            The content type
-     */
-    public SiriusServerResponse(int status, Object payload, String contentType) {
-        this.status = status;
-        this.payload = payload;
-        this.contentType = contentType;
-    }
-
-    /**
-     * Return the status.
-     *
-     * @return the status
-     */
-    public int getStatus() {
-        return this.status;
-    }
-
-    /**
-     * Return the payload.
-     *
-     * @return the payload
-     */
-    public Object getPayload() {
-        return this.payload;
-    }
-
-    /**
-     * Return the contentType.
-     *
-     * @return the contentType
-     */
-    public String getContentType() {
-        return this.contentType;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/Messages.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/Messages.java
deleted file mode 100644
index fa27ae1..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/Messages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Utility class used for the internationalization.
- *
- * @author sbegaudeau
- */
-public final class Messages {
-
-    static {
-        I18N.initializeMessages(Messages.class, SiriusServerPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-
-    @TranslatableMessage
-    public static String SiriusServerManager_cannotStartServer;
-
-    @TranslatableMessage
-    public static String SiriusServerManager_cannotStopServer;
-
-    @TranslatableMessage
-    public static String SiriusServerConfigurator_wrongPropertyTypeWarning;
-
-    @TranslatableMessage
-    public static String SiriusServerConfigurator_headerConfig;
-    // CHECKSTYLE:ON
-
-    private Messages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerConfigurator.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerConfigurator.java
deleted file mode 100644
index fdfe297..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerConfigurator.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.io.File;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import javax.servlet.DispatcherType;
-import javax.servlet.ServletException;
-import javax.servlet.SessionCookieConfig;
-import javax.websocket.DeploymentException;
-import javax.websocket.server.ServerContainer;
-import javax.websocket.server.ServerEndpointConfig;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.HttpConfiguration;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.SecureRequestCustomizer;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-import org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider;
-
-/**
- * The entry point of the back-end used to configure the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerConfigurator implements ISiriusServerConfigurator {
-
-    /**
-     * The constant used to determine whether ssl is activated or not.
-     */
-    private static final String HTTPS_ENABLED = "org.eclipse.sirius.server.https.enabled"; //$NON-NLS-1$
-
-    /**
-     * The constant used to customize the https host.
-     */
-    private static final String HTTPS_HOST = "org.eclipse.sirius.server.https.host"; //$NON-NLS-1$
-
-    /**
-     * The constant used to customize the https port.
-     */
-    private static final String HTTPS_PORT = "org.eclipse.sirius.server.https.port"; //$NON-NLS-1$
-
-    /**
-     * The constant used to give the location of the key store for ssl
-     * authentication.
-     */
-    private static final String SSL_KEYSTORE_PATH = "org.eclipse.sirius.server.ssl.keystore.path"; //$NON-NLS-1$
-
-    /**
-     * The constant used to give the pass phrase for ssl authentication.
-     */
-    private static final String SSL_KEYSTORE_PASSPHRASE = "org.eclipse.sirius.server.ssl.keystore.passphrase"; //$NON-NLS-1$
-
-    /**
-     * The constant used to customize the http host.
-     */
-    private static final String HTTP_HOST = "org.eclipse.sirius.server.http.host"; //$NON-NLS-1$
-
-    /**
-     * The constant used to customize the http port.
-     */
-    private static final String HTTP_PORT = "org.eclipse.sirius.server.http.port"; //$NON-NLS-1$
-
-    /**
-     * The default hostname.
-     */
-    private static final String DEFAULT_HOSTNAME = "0.0.0.0"; //$NON-NLS-1$
-
-    /**
-     * The default http port.
-     */
-    private static final int DEFAULT_HTTP_PORT = 0;
-
-    /**
-     * The default https port.
-     */
-    private static final int DEFAULT_HTTPS_PORT = 0;
-
-    /**
-     * The context path of the Sirius HTTP API.
-     */
-    private static final String HTTP_API_CONTEXT_PATH = "/api"; //$NON-NLS-1$
-
-    /**
-     * The context path of the Sirius WS API.
-     */
-    private static final String WS_API_CONTEXT_PATH = "/ws"; //$NON-NLS-1$
-
-    /**
-     * The context path of all requests.
-     */
-    private static final String ALL_PATH = "/*"; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.server.api.ISiriusServerConfigurator#configure(org.eclipse.sirius.server.api.Server)
-     */
-    @Override
-    public void configure(Server server) {
-        boolean httpsEnabled = Boolean.parseBoolean(System.getProperty(HTTPS_ENABLED));
-
-        Connector connector = null;
-
-        if (httpsEnabled) {
-            connector = createHttpsConnector(server);
-        } else {
-            connector = createHttpConnector(server);
-        }
-        server.addConnector(connector);
-
-        ServletContextHandler httpAPIServletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-        httpAPIServletContextHandler.setContextPath(HTTP_API_CONTEXT_PATH);
-        httpAPIServletContextHandler.setErrorHandler(new SiriusServerErrorHandler());
-        SessionCookieConfig sessionCookieConfig = httpAPIServletContextHandler.getServletContext().getSessionCookieConfig();
-        sessionCookieConfig.setHttpOnly(true);
-
-        httpAPIServletContextHandler.addFilter(SiriusServerFilter.class, ALL_PATH, EnumSet.of(DispatcherType.REQUEST, DispatcherType.INCLUDE));
-
-        ServletContextHandler wsAPIServletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS | ServletContextHandler.GZIP);
-        wsAPIServletContextHandler.setContextPath(WS_API_CONTEXT_PATH);
-
-        Handler handler = server.getHandler();
-        if (handler instanceof HandlerCollection) {
-            HandlerCollection handlerCollection = (HandlerCollection) handler;
-            handlerCollection.addHandler(httpAPIServletContextHandler);
-            handlerCollection.addHandler(wsAPIServletContextHandler);
-        }
-
-        try {
-            ServerContainer container = WebSocketServerContainerInitializer.configureContext(wsAPIServletContextHandler);
-            container.setDefaultMaxSessionIdleTimeout(0);
-
-            List<ISiriusServerEndpointConfigurationProvider> providers = SiriusServerPlugin.getPlugin().getEndpointConfigurationProviders();
-            List<ServerEndpointConfig> endpointConfigurations = providers.stream().map(ISiriusServerEndpointConfigurationProvider::getEndpointConfiguration).collect(Collectors.toList());
-            for (ServerEndpointConfig endpointConfiguration : endpointConfigurations) {
-                container.addEndpoint(endpointConfiguration);
-            }
-        } catch (DeploymentException | ServletException e) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, e.getMessage(), e);
-            SiriusServerPlugin.INSTANCE.log(status);
-        }
-    }
-
-    /**
-     * Creates the http connector if https has been disabled using system
-     * properties.
-     *
-     * @param server
-     *            The jetty server
-     * @return The created http connector
-     */
-    private Connector createHttpConnector(Server server) {
-        HttpConfiguration httpConfiguration = new HttpConfiguration();
-        httpConfiguration.setSendServerVersion(false);
-        HttpConnectionFactory httpConnectionFactory = new HttpConnectionFactory(httpConfiguration);
-        ServerConnector serverConnector = new ServerConnector(server, httpConnectionFactory);
-        serverConnector.setHost(System.getProperty(HTTP_HOST, DEFAULT_HOSTNAME));
-        serverConnector.setPort(handleSystemPropertiesIntegerValue(HTTP_PORT, DEFAULT_HTTP_PORT));
-        return serverConnector;
-    }
-
-    /**
-     * Creates the https connector if https has been enabled using system
-     * properties.
-     *
-     * @param server
-     *            The jetty server.
-     * @return The created https connector
-     */
-    private Connector createHttpsConnector(Server server) {
-        SslContextFactory sslContextFactory = new SslContextFactory();
-        File file = new File(System.getProperty(SSL_KEYSTORE_PATH));
-        file.exists();
-        sslContextFactory.setKeyStorePath(file.getAbsolutePath());
-        sslContextFactory.setKeyStorePassword(System.getProperty(SSL_KEYSTORE_PASSPHRASE));
-        sslContextFactory.setKeyStoreType("JKS"); //$NON-NLS-1$
-        sslContextFactory.setProtocol("TLS"); //$NON-NLS-1$
-        sslContextFactory.setWantClientAuth(false);
-        sslContextFactory.setNeedClientAuth(false);
-
-        HttpConfiguration httpsConfiguration = new HttpConfiguration();
-        httpsConfiguration.setSendServerVersion(false);
-        httpsConfiguration.addCustomizer(new SecureRequestCustomizer());
-
-        ServerConnector serverConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, "http/1.1"), new HttpConnectionFactory(httpsConfiguration)); //$NON-NLS-1$
-        serverConnector.setHost(System.getProperty(HTTPS_HOST, DEFAULT_HOSTNAME));
-        serverConnector.setPort(handleSystemPropertiesIntegerValue(HTTPS_PORT, DEFAULT_HTTPS_PORT));
-        serverConnector.setIdleTimeout(30000);
-        return serverConnector;
-    }
-
-    /**
-     * Returns the integer value of the given system property value. If the
-     * system property is not a integer, the default value will be used instead.
-     *
-     * @param property
-     *            The system property key
-     * @param defaultValue
-     *            The default value
-     * @return The integer value of given system property value or the default
-     *         value
-     */
-    private int handleSystemPropertiesIntegerValue(String property, int defaultValue) {
-        int value = defaultValue;
-        String propertyValue = System.getProperty(property);
-        if (propertyValue != null && propertyValue.length() > 0) {
-            try {
-                value = Integer.parseInt(propertyValue);
-            } catch (NumberFormatException exception) {
-                String message = String.format(Messages.SiriusServerConfigurator_wrongPropertyTypeWarning, propertyValue);
-                IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, message, exception);
-                SiriusServerPlugin.getPlugin().getLog().log(status);
-            }
-        }
-        return value;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerErrorHandler.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerErrorHandler.java
deleted file mode 100644
index a2593af..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerErrorHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import org.eclipse.jetty.server.handler.ErrorHandler;
-
-/**
- * The error handler of the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerErrorHandler extends ErrorHandler {
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerFilter.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerFilter.java
deleted file mode 100644
index 07d0ebf..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerFilter.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import com.google.gson.Gson;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.internal.services.SiriusServerCSPViolationReportService;
-
-/**
- * Filter used to dynamically dispatch request to the appropriate service.
- *
- * @author sbegaudeau
- */
-public class SiriusServerFilter implements Filter {
-
-    /**
-     * The default character encoding.
-     */
-    private static final String UTF_8 = "UTF-8"; //$NON-NLS-1$
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
-     */
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-        // Do nothing
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
-     *      javax.servlet.ServletResponse, javax.servlet.FilterChain)
-     */
-    @Override
-    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
-        if (req instanceof HttpServletRequest && resp instanceof HttpServletResponse) {
-            HttpServletRequest request = (HttpServletRequest) req;
-            HttpServletResponse response = (HttpServletResponse) resp;
-
-            Optional<SiriusServerResponse> optionalResponse = this.processRequest(request);
-            if (optionalResponse.isPresent()) {
-                SiriusServerResponse httpServiceResponse = optionalResponse.get();
-
-                response.setStatus(httpServiceResponse.getStatus());
-                response.setContentType(httpServiceResponse.getContentType());
-                response.setCharacterEncoding(UTF_8);
-
-                Optional<Object> optionalPayload = Optional.ofNullable(httpServiceResponse.getPayload());
-                Optional<String> optionalJsonPayload = optionalPayload.map(new Gson()::toJson);
-                optionalJsonPayload.ifPresent(response.getWriter()::write);
-            }
-        }
-    }
-
-    /**
-     * Process the given request by invoking the proper Sirius server service.
-     *
-     * @param request
-     *            The request
-     * @return A proper response if a service supporting the given request has
-     *         been found, an error response otherwise
-     */
-    private Optional<SiriusServerResponse> processRequest(HttpServletRequest request) {
-        List<SiriusServerServiceDescriptor> descriptors = this.getDescriptors(request);
-        descriptors.sort((descriptor1, descriptor2) -> descriptor2.getResult().getVariables().size() - descriptor1.getResult().getVariables().size());
-
-        Optional<SiriusServerServiceDescriptor> optionalDescriptor = descriptors.stream().findFirst();
-        return optionalDescriptor.flatMap(descriptor -> {
-            Optional<ISiriusServerService> optionalServiceInstance = this.createServiceInstance(descriptor.getServiceClass());
-
-            Map<String, String> variables = descriptor.getResult().getVariables();
-            String remainingPart = descriptor.getResult().getRemainingPart();
-            return optionalServiceInstance.map(service -> service.process(request, variables, remainingPart));
-        });
-    }
-
-    /**
-     * Computes the best {@link SiriusServerServiceDescriptor} for the given
-     * request.
-     *
-     * @param request
-     *            The request
-     * @return The list of {@link SiriusServerServiceDescriptor} which can
-     *         handle the given request
-     */
-    private List<SiriusServerServiceDescriptor> getDescriptors(HttpServletRequest request) {
-        List<Class<? extends ISiriusServerService>> serviceClasses = new ArrayList<>();
-
-        // Default services
-        serviceClasses.add(SiriusServerCSPViolationReportService.class);
-
-        // @formatter:off
-        SiriusServerPlugin.getPlugin().getSiriusServerServices().stream()
-            .map(ISiriusServerService::getClass)
-            .forEach(serviceClasses::add);
-        // @formatter:on
-
-        List<SiriusServerServiceDescriptor> descriptors = new ArrayList<>();
-        for (Class<? extends ISiriusServerService> serviceClass : serviceClasses) {
-            SiriusServerPath siriusServerPath = serviceClass.getAnnotation(SiriusServerPath.class);
-            String path = siriusServerPath.value();
-
-            SiriusServerPathMatcher matcher = new SiriusServerPathMatcher(path);
-            SiriusServerMatchResult result = matcher.match(request.getServletPath());
-            if (result.hasMatched()) {
-                descriptors.add(new SiriusServerServiceDescriptor(serviceClass, result));
-            }
-        }
-        return descriptors;
-    }
-
-    /**
-     * Creates the service instance from the given service class.
-     *
-     * @param serviceClass
-     *            The service class
-     * @return The service instance created
-     */
-    private Optional<ISiriusServerService> createServiceInstance(Class<? extends ISiriusServerService> serviceClass) {
-        try {
-            ISiriusServerService httpService = serviceClass.newInstance();
-            return Optional.of(httpService);
-        } catch (InstantiationException | IllegalAccessException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerPlugin.getPlugin().log(status);
-        }
-        return Optional.empty();
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see javax.servlet.Filter#destroy()
-     */
-    @Override
-    public void destroy() {
-        // Do nothing
-    }
-
-    /**
-     * Descriptor containing both a service class and a match result.
-     *
-     * @author sbegaudeau
-     */
-    private static class SiriusServerServiceDescriptor {
-        /**
-         * The service class.
-         */
-        private Class<? extends ISiriusServerService> serviceClass;
-
-        /**
-         * The match result.
-         */
-        private SiriusServerMatchResult result;
-
-        /**
-         * The constructor.
-         *
-         * @param serviceClass
-         *            The service class
-         * @param matcher
-         *            The match result
-         */
-        SiriusServerServiceDescriptor(Class<? extends ISiriusServerService> serviceClass, SiriusServerMatchResult result) {
-            this.serviceClass = serviceClass;
-            this.result = result;
-        }
-
-        /**
-         * Return the serviceClass.
-         *
-         * @return the serviceClass
-         */
-        public Class<? extends ISiriusServerService> getServiceClass() {
-            return this.serviceClass;
-        }
-
-        /**
-         * Return the match result.
-         *
-         * @return the match result
-         */
-        public SiriusServerMatchResult getResult() {
-            return this.result;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerHeaderConfigurator.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerHeaderConfigurator.java
deleted file mode 100644
index 0c4ac62..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerHeaderConfigurator.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.util.Arrays;
-import java.util.EnumSet;
-
-import javax.servlet.DispatcherType;
-
-import org.eclipse.jetty.server.Handler;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlets.CrossOriginFilter;
-import org.eclipse.jetty.servlets.HeaderFilter;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-
-/**
- * The configurator used to setup the response headers.
- *
- * @author sbegaudeau
- */
-public class SiriusServerHeaderConfigurator implements ISiriusServerConfigurator {
-
-    /**
-     * The constant used specified allowed methods. Expects a list of string
-     * with comma separated values.
-     */
-    private static final String ALLOWED_METHODS = "org.eclipse.sirius.server.cors.allowed.methods"; //$NON-NLS-1$
-
-    /**
-     * The constant used specified allowed headers. Expects a list of string
-     * with comma separated values.
-     */
-    private static final String ALLOWED_HEADERS = "org.eclipse.sirius.server.cors.allowed.headers"; //$NON-NLS-1$
-
-    /**
-     * The constant used specified allowed origins. Expects a list of string
-     * with comma separated values.
-     */
-    private static final String ALLOWED_ORIGINS = "org.eclipse.sirius.server.cors.allowed.origins"; //$NON-NLS-1$
-
-    /**
-     * The constant used to determine if Cross Origin Resource Sharing are
-     * enabled or not. Expects a boolean.
-     */
-    private static final String ALLOW_CORS = "org.eclipse.sirius.server.cors.enabled"; //$NON-NLS-1$
-
-    /**
-     * The header configuration key.
-     */
-    private static final String HEADER_CONFIG = "headerConfig"; //$NON-NLS-1$
-
-    /**
-     * The context path of all requests.
-     */
-    private static final String ALL_PATH = "/*"; //$NON-NLS-1$
-
-    @Override
-    public void configure(Server server) {
-        this.configureHeaders(server.getHandler());
-    }
-
-    /**
-     * Configures the headers of the response of the given handler.
-     *
-     * @param handler
-     *            The handler to configure
-     */
-    private void configureHeaders(Handler handler) {
-        if (handler instanceof HandlerCollection) {
-            HandlerCollection handlerCollection = (HandlerCollection) handler;
-            Arrays.stream(handlerCollection.getHandlers()).forEach(this::configureHeaders);
-        } else if (handler instanceof ServletContextHandler) {
-            ServletContextHandler servletContextHandler = (ServletContextHandler) handler;
-            this.configureCORS(servletContextHandler);
-            this.configureAdditionalHeaders(servletContextHandler);
-        }
-    }
-
-    /**
-     * Configures the Cross Origin Resource Sharing headers.
-     *
-     * @param servletContextHandler
-     *            The servlet context handler to configure
-     */
-    private void configureCORS(ServletContextHandler servletContextHandler) {
-        boolean allowCors = Boolean.parseBoolean(System.getProperty(ALLOW_CORS));
-        if (allowCors) {
-            FilterHolder cors = new FilterHolder();
-            String allowedOrigins = System.getProperty(ALLOWED_ORIGINS);
-            if (allowedOrigins != null) {
-                cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, allowedOrigins);
-            }
-            String allowedHeaders = System.getProperty(ALLOWED_HEADERS);
-            if (allowedHeaders != null) {
-                cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, allowedHeaders);
-            }
-            String allowedMethods = System.getProperty(ALLOWED_METHODS);
-            if (allowedMethods != null) {
-                cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, allowedMethods);
-            }
-            cors.setFilter(new CrossOriginFilter());
-            servletContextHandler.addFilter(cors, ALL_PATH, EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.INCLUDE));
-        }
-    }
-
-    /**
-     * Configures additional headers.
-     *
-     * @param servletContextHandler
-     *            The servlet context handler to configure
-     */
-    private void configureAdditionalHeaders(ServletContextHandler servletContextHandler) {
-        FilterHolder headerFilterHolder = new FilterHolder();
-        headerFilterHolder.setInitParameter(HEADER_CONFIG, Messages.SiriusServerConfigurator_headerConfig);
-        headerFilterHolder.setFilter(new HeaderFilter());
-        // servletContextHandler.addFilter(headerFilterHolder, ALL_PATH,
-        // EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC,
-        // DispatcherType.INCLUDE, DispatcherType.FORWARD));
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerManager.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerManager.java
deleted file mode 100644
index 629e695..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerManager.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Optional;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.HandlerCollection;
-
-/**
- * Utility class used to start and stop the Sirius server.
- *
- * @author sbegaudeau
- */
-public class SiriusServerManager {
-
-    /**
-     * The system property key used to retrieve the name of the operating
-     * system.
-     */
-    private static final String OS_NAME = "os.name"; //$NON-NLS-1$
-
-    /**
-     * The name of the windows operating system.
-     */
-    private static final String WINDOWS_NAME = "win"; //$NON-NLS-1$
-
-    /**
-     * The host used to listen to all interfaces.
-     */
-    private static final String ALL_INTERFACES_HOST = "0.0.0.0"; //$NON-NLS-1$
-
-    /**
-     * The localhost host.
-     */
-    private static final String LOCALHOST = "localhost"; //$NON-NLS-1$
-
-    /**
-     * The Jetty server.
-     */
-    private Server server;
-
-    /**
-     * Starts the HTTP server.
-     */
-    @SuppressWarnings({ "checkstyle:illegalcatch" })
-    public void start() {
-        if (this.server == null || !this.server.isRunning()) {
-            this.server = new Server();
-            this.server.setHandler(new HandlerCollection());
-
-            SiriusServerConfigurator siriusServerConfigurator = new SiriusServerConfigurator();
-            siriusServerConfigurator.configure(server);
-
-            SiriusServerPlugin.getPlugin().getSiriusServerConfigurators().forEach(configurator -> configurator.configure(server));
-
-            SiriusServerHeaderConfigurator headerConfigurator = new SiriusServerHeaderConfigurator();
-            headerConfigurator.configure(server);
-
-            try {
-                this.server.start();
-            } catch (Exception exception) {
-                IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, Messages.SiriusServerManager_cannotStartServer, exception);
-                SiriusServerPlugin.getPlugin().log(status);
-            }
-        }
-    }
-
-    /**
-     * Stops the HTTP server.
-     */
-    @SuppressWarnings({ "checkstyle:illegalcatch" })
-    public void stop() {
-        Optional.ofNullable(this.server).ifPresent(s -> {
-            try {
-                s.stop();
-            } catch (Exception exception) {
-                IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, Messages.SiriusServerManager_cannotStopServer, exception);
-                SiriusServerPlugin.getPlugin().log(status);
-            }
-        });
-    }
-
-    /**
-     * Returns the address on which the server is listening.
-     *
-     * @return the address on which the server is listening.
-     */
-    public URI getURI() {
-        URI uri = this.server.getURI();
-
-        String osName = System.getProperty(OS_NAME).toLowerCase();
-        if (osName.indexOf(WINDOWS_NAME) >= 0 && ALL_INTERFACES_HOST.equals(uri.getHost())) {
-            try {
-                uri = new URI(uri.getScheme(), uri.getUserInfo(), LOCALHOST, uri.getPort(), uri.getPath(), uri.getRawQuery(), uri.getRawFragment());
-            } catch (URISyntaxException exception) {
-                IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, exception.getMessage(), exception);
-                SiriusServerPlugin.getPlugin().getLog().log(status);
-            }
-        }
-
-        return uri;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerMatchResult.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerMatchResult.java
deleted file mode 100644
index 6491b98..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerMatchResult.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.util.Map;
-
-/**
- * The result of the match performed by the {@link SiriusServerPathMatcher}.
- *
- * @author sbegaudeau
- */
-public class SiriusServerMatchResult {
-
-    /**
-     * The variables.
-     */
-    private Map<String, String> variables;
-
-    /**
-     * The remaining part.
-     */
-    private String remainingPart;
-
-    /**
-     * Indicates if the match has been successful.
-     */
-    private boolean hasMatched;
-
-    /**
-     * The constructor.
-     *
-     * @param variables
-     *            The variables
-     * @param remainingPart
-     *            The remaining part
-     * @param hasMatched
-     *            Indicates if the match has been successful
-     */
-    public SiriusServerMatchResult(Map<String, String> variables, String remainingPart, boolean hasMatched) {
-        this.variables = variables;
-        this.remainingPart = remainingPart;
-        this.hasMatched = hasMatched;
-    }
-
-    /**
-     * Indicates if the result is matched.
-     *
-     * @return <code>true</code> if the matcher has found a (partial) match,
-     *         <code>false</code> otherwise
-     */
-    public boolean hasMatched() {
-        return this.hasMatched;
-    }
-
-    /**
-     * Returns the variables found in the match.
-     *
-     * @return The variables found in the match
-     */
-    public Map<String, String> getVariables() {
-        return this.variables;
-    }
-
-    /**
-     * Returns the remaining part of the request.
-     *
-     * @return The remaining part of the request
-     */
-    public String getRemainingPart() {
-        return this.remainingPart;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPathMatcher.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPathMatcher.java
deleted file mode 100644
index 66fe6d8..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPathMatcher.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.IntStream;
-
-/**
- * Utility class used to match the path of the services and the path of the
- * requests.
- *
- * @author sbegaudeau
- */
-public class SiriusServerPathMatcher {
-    /**
-     * The separator of the segments of the path.
-     */
-    private static final char SLASH = '/';
-
-    /**
-     * The start of a variable.
-     */
-    private static final char VARIABLE_START = '{';
-
-    /**
-     * The end of a variable.
-     */
-    private static final char VARIABLE_END = '}';
-
-    /**
-     * The regular expression used to capture the variables of the path.
-     */
-    private static final String VARIABLE_REGEXP = "([^/]+?)"; //$NON-NLS-1$
-
-    /**
-     * The regular expression used to capture the remaining content of the path.
-     */
-    private static final String REMAINING_PATH_REGEXP = "(.*)"; //$NON-NLS-1$
-
-    /**
-     * The list of the variables expected in the path.
-     */
-    private List<String> variableNames = new ArrayList<>();
-
-    /**
-     * The pattern used to match the path.
-     */
-    private Pattern pathPattern;
-
-    /**
-     * The constructor.
-     *
-     * @param path
-     *            The path
-     */
-    public SiriusServerPathMatcher(String path) {
-        this.initialize(path);
-    }
-
-    /**
-     * Initializes the {@link SiriusServerPathMatcher}.
-     *
-     * @param path
-     *            The path to match
-     */
-    private void initialize(String path) {
-        StringBuilder stringBuilder = new StringBuilder();
-
-        int startIndex = this.computeStartIndex(path);
-        int index = startIndex;
-        while (index < path.length()) {
-            char character = path.charAt(index);
-            if (VARIABLE_START == character) {
-                int variableEndIndex = path.indexOf(VARIABLE_END, index);
-                String variable = path.substring(index + 1, variableEndIndex);
-
-                this.variableNames.add(variable);
-
-                stringBuilder.append(VARIABLE_REGEXP);
-                index = variableEndIndex + 1;
-            } else {
-                stringBuilder.append(character);
-                index = index + 1;
-            }
-        }
-
-        if (!path.endsWith(String.valueOf(SLASH))) {
-            stringBuilder.append(SLASH);
-        }
-        stringBuilder.append(REMAINING_PATH_REGEXP);
-
-        this.pathPattern = Pattern.compile(stringBuilder.toString());
-    }
-
-    /**
-     * Returns the index to consider to start the analysis of the given path.
-     *
-     * @param path
-     *            The path
-     * @return 0 if the path does not start with a slash, 1 otherwise
-     */
-    private int computeStartIndex(String path) {
-        if (path.length() > 0 && SLASH == path.charAt(0)) {
-            return 1;
-        }
-        return 0;
-    }
-
-    /**
-     * Matches the path of the request against the path of the matcher.
-     *
-     * @param requestPath
-     *            The path of the request
-     * @return A {@link SiriusServerMatchResult}
-     */
-    public SiriusServerMatchResult match(String requestPath) {
-        String path = requestPath;
-        if (path.length() > 0 && SLASH == path.charAt(0)) {
-            path = path.substring(1);
-        }
-        if (path.length() > 0 && SLASH != path.charAt(path.length() - 1)) {
-            path = path + SLASH;
-        }
-
-        Matcher matcher = this.pathPattern.matcher(path);
-
-        Map<String, String> variables = new HashMap<>();
-        String remainingPart = ""; //$NON-NLS-1$
-
-        if (matcher.matches()) {
-            if (this.variableNames.size() <= matcher.groupCount()) {
-                IntStream.range(1, matcher.groupCount()).forEach(index -> {
-                    String variable = this.variableNames.get(index - 1);
-                    variables.put(variable, matcher.group(index));
-                });
-            }
-
-            if (matcher.groupCount() > 0) {
-                remainingPart = matcher.group(matcher.groupCount());
-                if (remainingPart.length() > 0 && SLASH == remainingPart.charAt(remainingPart.length() - 1)) {
-                    remainingPart = remainingPart.substring(0, remainingPart.length() - 1);
-                }
-            }
-        }
-
-        return new SiriusServerMatchResult(variables, remainingPart, matcher.matches());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPlugin.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPlugin.java
deleted file mode 100644
index 1840dca..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/SiriusServerPlugin.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal;
-
-import java.net.URI;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.sirius.ext.ide.api.AbstractRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.DescriptorRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.IItemDescriptor;
-import org.eclipse.sirius.ext.ide.api.IItemRegistry;
-import org.eclipse.sirius.ext.ide.api.ItemRegistry;
-import org.eclipse.sirius.server.api.ISiriusServerConfigurator;
-import org.eclipse.sirius.server.api.ISiriusServerEndpointConfigurationProvider;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.osgi.framework.BundleContext;
-
-/**
- * Plugin class for the bundle.
- *
- * @author sbegaudeau
- */
-public class SiriusServerPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.server"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusServerPlugin INSTANCE = new SiriusServerPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public SiriusServerPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The name of the sirius server configurator extension point.
-         */
-        private static final String SIRIUS_SERVER_CONFIGURATOR = "siriusServerConfigurator"; //$NON-NLS-1$
-
-        /**
-         * The name of the sirius server service extension point.
-         */
-        private static final String SIRIUS_SERVER_SERVICE = "siriusServerService"; //$NON-NLS-1$
-
-        /**
-         * The name of the sirius server endpoint configuration provider
-         * extension point.
-         */
-        private static final String SIRIUS_SERVER_ENDPOINT_CONFIGURATION_PROVIDER = "siriusServerEndpointConfigurationProvider"; //$NON-NLS-1$
-
-        /**
-         * The {@link IItemRegistry} used to retrieve the configurators.
-         */
-        private IItemRegistry<ISiriusServerConfigurator> configuratorRegistry;
-
-        /**
-         * The extension registry listener for the configurator.
-         */
-        private AbstractRegistryEventListener configuratorListener;
-
-        /**
-         * The {@link IItemRegistry} used to retrieve the services.
-         */
-        private IItemRegistry<ISiriusServerService> serviceRegistry;
-
-        /**
-         * The extension registry listener for the service.
-         */
-        private AbstractRegistryEventListener serviceListener;
-
-        /**
-         * The {@link IItemRegistry} used to retrieve the endpoint configuration
-         * providers.
-         */
-        private IItemRegistry<ISiriusServerEndpointConfigurationProvider> endpointConfigurationProviderRegistry;
-
-        /**
-         * The extension registry listener for the endpoint configuration
-         * providers.
-         */
-        private AbstractRegistryEventListener endpointConfigurationProviderListener;
-
-        /**
-         * The server manager.
-         */
-        private SiriusServerManager serverManager = new SiriusServerManager();
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusServerPlugin.plugin = this;
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-
-            // Sirius server configurator extension point
-            this.configuratorRegistry = new ItemRegistry<>();
-            this.configuratorListener = new DescriptorRegistryEventListener<>(PLUGIN_ID, SIRIUS_SERVER_CONFIGURATOR, this.configuratorRegistry);
-            extensionRegistry.addListener(this.configuratorListener, PLUGIN_ID + '.' + SIRIUS_SERVER_CONFIGURATOR);
-            this.configuratorListener.readRegistry(extensionRegistry);
-
-            // Sirius server service extension point
-            this.serviceRegistry = new ItemRegistry<>();
-            this.serviceListener = new DescriptorRegistryEventListener<>(PLUGIN_ID, SIRIUS_SERVER_SERVICE, this.serviceRegistry);
-            extensionRegistry.addListener(this.serviceListener, PLUGIN_ID + '.' + SIRIUS_SERVER_SERVICE);
-            this.serviceListener.readRegistry(extensionRegistry);
-
-            // Sirius server endpoint configuration provider extension point
-            this.endpointConfigurationProviderRegistry = new ItemRegistry<>();
-            this.endpointConfigurationProviderListener = new DescriptorRegistryEventListener<>(PLUGIN_ID, SIRIUS_SERVER_ENDPOINT_CONFIGURATION_PROVIDER, this.endpointConfigurationProviderRegistry);
-            extensionRegistry.addListener(this.endpointConfigurationProviderListener, PLUGIN_ID + '.' + SIRIUS_SERVER_ENDPOINT_CONFIGURATION_PROVIDER);
-            this.endpointConfigurationProviderListener.readRegistry(extensionRegistry);
-
-            this.serverManager.start();
-        }
-
-        /**
-         * {@inheritDoc}
-         *
-         * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-         */
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            this.serverManager.stop();
-
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-            extensionRegistry.removeListener(this.configuratorListener);
-            extensionRegistry.removeListener(this.serviceListener);
-            extensionRegistry.removeListener(this.endpointConfigurationProviderListener);
-
-            this.serviceListener = null;
-            this.serviceRegistry = null;
-            this.configuratorListener = null;
-            this.configuratorRegistry = null;
-            this.endpointConfigurationProviderListener = null;
-            this.endpointConfigurationProviderRegistry = null;
-
-            super.stop(context);
-        }
-
-        /**
-         * Returns the list of the {@link ISiriusServerConfigurator}.
-         *
-         * @return The list of the {@link ISiriusServerConfigurator}
-         */
-        public List<ISiriusServerConfigurator> getSiriusServerConfigurators() {
-            // @formatter:off
-			return this.configuratorRegistry.getItemDescriptors().stream()
-					.map(IItemDescriptor::getItem)
-					.collect(Collectors.toList());
-			// @formatter:on
-        }
-
-        /**
-         * Returns the list of the {@link ISiriusServerService}.
-         *
-         * @return The list of the {@link ISiriusServerService}
-         */
-        public List<ISiriusServerService> getSiriusServerServices() {
-            // @formatter:off
-            return this.serviceRegistry.getItemDescriptors().stream()
-                    .map(IItemDescriptor::getItem)
-                    .collect(Collectors.toList());
-            // @formatter:off
-        }
-
-        /**
-         * Returns the list of the {@link ISiriusServerEndpointConfigurationProvider}.
-         *
-         * @return The list of the {@link ISiriusServerEndpointConfigurationProvider}
-         */
-        public List<ISiriusServerEndpointConfigurationProvider> getEndpointConfigurationProviders() {
-            // @formatter:off
-            return this.endpointConfigurationProviderRegistry.getItemDescriptors().stream()
-                    .map(IItemDescriptor::getItem)
-                    .collect(Collectors.toList());
-            // @formatter:off
-        }
-
-        /**
-         * Returns the URI on which the server is listening.
-         *
-         * @return the URI on which the server is listening.
-         */
-        public URI getServerURI() {
-            return serverManager.getURI();
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/services/SiriusServerCSPViolationReportService.java b/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/services/SiriusServerCSPViolationReportService.java
deleted file mode 100644
index 7a86ca5..0000000
--- a/plugins/org.eclipse.sirius.server/src/org/eclipse/sirius/server/internal/services/SiriusServerCSPViolationReportService.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.server.internal.services;
-
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_BAD_REQUEST;
-import static org.eclipse.sirius.server.api.SiriusServerResponse.STATUS_OK;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.server.api.ISiriusServerService;
-import org.eclipse.sirius.server.api.SiriusServerPath;
-import org.eclipse.sirius.server.api.SiriusServerResponse;
-import org.eclipse.sirius.server.internal.SiriusServerPlugin;
-
-/**
- * The service used to report CSP violations.
- *
- * @author sbegaudeau
- */
-@SiriusServerPath("/csp-violation-reports")
-public class SiriusServerCSPViolationReportService implements ISiriusServerService {
-    /**
-     * The UTF-8 encoding.
-     */
-    private static final String UTF_8 = "UTF-8"; //$NON-NLS-1$
-
-    @Override
-    public SiriusServerResponse doOptions(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        return new SiriusServerResponse(STATUS_OK);
-    }
-
-    @Override
-    public SiriusServerResponse doPost(HttpServletRequest request, Map<String, String> variables, String remainingPart) {
-        SiriusServerResponse response = new SiriusServerResponse(STATUS_BAD_REQUEST);
-        try (Reader reader = new InputStreamReader(request.getInputStream(), UTF_8);) {
-            StringBuilder builder = new StringBuilder();
-
-            int bufferSize = 1024;
-            final char[] buffer = new char[bufferSize];
-            int index = reader.read(buffer, 0, buffer.length);
-            while (index >= 0) {
-                builder.append(buffer, 0, index);
-                index = reader.read(buffer, 0, buffer.length);
-            }
-            String report = builder.toString();
-
-            IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, report);
-            SiriusServerPlugin.getPlugin().log(status);
-
-            response = new SiriusServerResponse(STATUS_OK);
-        } catch (IOException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusServerPlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusServerPlugin.getPlugin().log(status);
-        }
-        return response;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.common/.classpath b/plugins/org.eclipse.sirius.services.common/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.common/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.common/.project b/plugins/org.eclipse.sirius.services.common/.project
deleted file mode 100644
index 6cbbbf4..0000000
--- a/plugins/org.eclipse.sirius.services.common/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.common</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.common/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.common/META-INF/MANIFEST.MF
deleted file mode 100644
index 43161d9..0000000
--- a/plugins/org.eclipse.sirius.services.common/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.common
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.server.common
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.services.common.api;version="6.1.2",
- org.eclipse.sirius.services.common.internal;version="6.1.2";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.resources;bundle-version="3.8.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.emf.ecore;bundle-version="2.8.0",
- org.eclipse.emf.transaction;bundle-version="1.0.0",
- org.eclipse.sirius.ext.base;bundle-version="6.2.0",
- org.eclipse.sirius;bundle-version="6.2.0"
-Bundle-Activator: org.eclipse.sirius.services.common.internal.SiriusCommonServicesPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.services.common/about.html b/plugins/org.eclipse.sirius.services.common/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.common/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.common/build.properties b/plugins/org.eclipse.sirius.services.common/build.properties
deleted file mode 100644
index f7d5df7..0000000
--- a/plugins/org.eclipse.sirius.services.common/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.common/plugin.properties b/plugins/org.eclipse.sirius.services.common/plugin.properties
deleted file mode 100644
index 6d2c51c..0000000
--- a/plugins/org.eclipse.sirius.services.common/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - Common
-providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.sirius.services.common/pom.xml b/plugins/org.eclipse.sirius.services.common/pom.xml
deleted file mode 100644
index e52e26f..0000000
--- a/plugins/org.eclipse.sirius.services.common/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.common</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/api/SiriusServicesCommonOptionalUtils.java b/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/api/SiriusServicesCommonOptionalUtils.java
deleted file mode 100644
index 8e2da4e..0000000
--- a/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/api/SiriusServicesCommonOptionalUtils.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.common.api;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.sirius.business.api.modelingproject.ModelingProject;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.tools.api.command.ui.NoUICallback;
-
-/**
- * Utility functions to manipulate optionals.
- * 
- * @author sbegaudeau
- */
-public final class SiriusServicesCommonOptionalUtils {
-
-    /**
-     * The constructor.
-     */
-    private SiriusServicesCommonOptionalUtils() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns an optional resource representing the given iFile in the session.
-     * 
-     * @param session
-     *            The Sirius session
-     * @param iFile
-     *            The file
-     * @return An optional resource or an empty optional if the file is not a semantic resource from the given session
-     */
-    public static Optional<Resource> toResource(Session session, IFile iFile) {
-        ResourceSet resourceSet = session.getTransactionalEditingDomain().getResourceSet();
-        String path = iFile.getFullPath().toString();
-        URI uri = URI.createPlatformResourceURI(path, true);
-
-        return Optional.ofNullable(resourceSet.getResource(uri, true));
-    }
-
-    /**
-     * Returns an optional with the modeling project for the given IProject.
-     * 
-     * @param iProject
-     *            The project
-     * @return An optional with the modeling project if the given IProject is indeed a modeling project, an empty
-     *         optional otherwise
-     */
-    public static Optional<ModelingProject> toModelingProject(IProject iProject) {
-        // @formatter:off
-        return Optional.of(iProject).filter(ModelingProject::hasModelingProjectNature)
-                .map(project -> ModelingProject.asModelingProject(project).get());
-        // @formatter:on
-    }
-
-    /**
-     * Returns an optional with the session of the given project.
-     * 
-     * @param iProject
-     *            The project
-     * @return An optional with the session of the given project or an empty optional if the session could not be found
-     *         or created
-     */
-    public static Optional<Session> toSession(IProject iProject) {
-        // @formatter:off
-        return Optional.of(iProject).flatMap(SiriusServicesCommonOptionalUtils::toModelingProject)
-                .flatMap(SiriusServicesCommonOptionalUtils::toSession);
-        // @formatter:on
-    }
-
-    /**
-     * Returns an optional with the session of the given modeling project.
-     * 
-     * @param modelingProject
-     *            The modeling project
-     * @return An optional with the session of the given modeling project or an empty optional if the session could not
-     *         be found or created
-     */
-    public static Optional<Session> toSession(ModelingProject modelingProject) {
-        // @formatter:off
-        return Optional.of(modelingProject).map(project -> {
-            return Optional.ofNullable(project.getSession()).orElseGet(() -> {
-                URI sessionResourceURI = project.getMainRepresentationsFileURI(new NullProgressMonitor()).get();
-                return SessionManager.INSTANCE.openSession(sessionResourceURI, new NullProgressMonitor(), new NoUICallback());
-            });
-        });
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/internal/SiriusCommonServicesPlugin.java b/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/internal/SiriusCommonServicesPlugin.java
deleted file mode 100644
index b425383..0000000
--- a/plugins/org.eclipse.sirius.services.common/src/org/eclipse/sirius/services/common/internal/SiriusCommonServicesPlugin.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.common.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius common services plugin.
- *
- * @author sbegaudeau
- */
-public final class SiriusCommonServicesPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.services.common"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusCommonServicesPlugin INSTANCE = new SiriusCommonServicesPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusCommonServicesPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusCommonServicesPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/.checkstyle b/plugins/org.eclipse.sirius.services.diagram/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.diagram/.classpath b/plugins/org.eclipse.sirius.services.diagram/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.diagram/.project b/plugins/org.eclipse.sirius.services.diagram/.project
deleted file mode 100644
index 8d404b5..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.diagram</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.diagram/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.diagram/META-INF/MANIFEST.MF
deleted file mode 100644
index ba27069..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.diagram;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.services.diagram.api,
- org.eclipse.sirius.services.diagram.api.actions,
- org.eclipse.sirius.services.diagram.api.entities,
- org.eclipse.sirius.services.diagram.internal;x-internal:=true,
- org.eclipse.sirius.services.diagram.internal.actions;x-internal:=true,
- org.eclipse.sirius.services.diagram.internal.converter;x-internal:=true
-Require-Bundle: org.eclipse.emf.transaction;bundle-version="1.8.0",
- org.eclipse.sirius;bundle-version="7.0.0",
- org.eclipse.sirius.diagram;bundle-version="7.0.0",
- org.eclipse.sirius.ext.ide;bundle-version="7.0.0"
-Automatic-Module-Name: org.eclipse.sirius.services.diagram
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.services.diagram.internal.SiriusDiagramPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.services.diagram/about.html b/plugins/org.eclipse.sirius.services.diagram/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.diagram/build.properties b/plugins/org.eclipse.sirius.services.diagram/build.properties
deleted file mode 100644
index d457e0c..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               schema/
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.diagram/plugin.properties b/plugins/org.eclipse.sirius.services.diagram/plugin.properties
deleted file mode 100644
index 86fcc93..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - Diagram API
-providerName = Eclipse Modeling Project
-
-siriusDiagramImagePathProvider_name=Sirius Diagram Image Path Provider
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.diagram/plugin.xml b/plugins/org.eclipse.sirius.services.diagram/plugin.xml
deleted file mode 100644
index bc9eae4..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/plugin.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension-point id="siriusDiagramImagePathProvider" name="%siriusDiagramImagePathProvider_name" schema="schema/siriusDiagramImagePathProvider.exsd"/>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.services.diagram/pom.xml b/plugins/org.eclipse.sirius.services.diagram/pom.xml
deleted file mode 100644
index 9d13e05..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.diagram</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.diagram/schema/siriusDiagramImagePathProvider.exsd b/plugins/org.eclipse.sirius.services.diagram/schema/siriusDiagramImagePathProvider.exsd
deleted file mode 100644
index d39b30e..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/schema/siriusDiagramImagePathProvider.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.sirius.services.diagram" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.sirius.services.diagram" id="siriusDiagramImagePathProvider" name="%siriusDiagramImagePathProvider_name"/>
-      </appinfo>
-      <documentation>
-         This extension point allows to provide a custom implementation of the &lt;code&gt;org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider&lt;/code&gt; used to compute the path of images.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="descriptor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="descriptor">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         6.1.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         None.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2018 Obeo&lt;br/&gt;
-
- This program and the accompanying materials
-are made available under the terms of the Eclipse Public License 2.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
-
-SPDX-License-Identifier: EPL-2.0
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/AbstractSiriusDiagramAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/AbstractSiriusDiagramAction.java
deleted file mode 100644
index ebc9583..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/AbstractSiriusDiagramAction.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api;
-
-/**
- * Common superclass of all the actions.
- *
- * @author sbegaudeau
- */
-public abstract class AbstractSiriusDiagramAction {
-
-    /**
-     * The kind.
-     */
-    private String kind;
-
-    /**
-     * The constructor.
-     *
-     * @param kind
-     *            The kind of the action
-     */
-    public AbstractSiriusDiagramAction(String kind) {
-        this.kind = kind;
-    }
-
-    /**
-     * Return the kind.
-     *
-     * @return the kind
-     */
-    public String getKind() {
-        return this.kind;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/ISiriusDiagramImagePathProvider.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/ISiriusDiagramImagePathProvider.java
deleted file mode 100644
index 4099e2c..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/ISiriusDiagramImagePathProvider.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api;
-
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.sirius.diagram.WorkspaceImage;
-
-/**
- * This interface is used in order to retrieve the path of images.
- *
- * @author sbegaudeau
- */
-public interface ISiriusDiagramImagePathProvider {
-    /**
-     * Returns the path of the static image described by the given workspace
-     * image.
-     *
-     * @param workspaceImage
-     *            The workspace image
-     * @return The path of the static image
-     */
-    Optional<String> getStaticImagePath(WorkspaceImage workspaceImage);
-
-    /**
-     * Returns the path of the image computed by the label provider of EMF Edit.
-     *
-     * @param eObject
-     *            The eObject
-     * @return The path of the image for the given EObject
-     */
-    Optional<String> getLabelProviderImagePath(EObject eObject);
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramMessage.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramMessage.java
deleted file mode 100644
index 8d8b03c..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramMessage.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api;
-
-/**
- * The message used to describe the action to perform.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramMessage {
-    /**
-     * The clientIdentifier.
-     */
-    private String clientIdentifier;
-
-    /**
-     * The action.
-     */
-    private AbstractSiriusDiagramAction action;
-
-    /**
-     * Return the clientIdentifier.
-     *
-     * @return the clientIdentifier
-     */
-    public String getClientIdentifier() {
-        return this.clientIdentifier;
-    }
-
-    /**
-     * Return the action.
-     *
-     * @return the action
-     */
-    public AbstractSiriusDiagramAction getAction() {
-        return this.action;
-    }
-
-    /**
-     * Sets the action.
-     *
-     * @param action
-     *            the action to set
-     */
-    public void setAction(AbstractSiriusDiagramAction action) {
-        this.action = action;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramService.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramService.java
deleted file mode 100644
index 4a52d2e..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/SiriusDiagramService.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api;
-
-import java.util.Optional;
-import java.util.function.Consumer;
-
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.services.diagram.internal.SiriusDiagramPrecommitListener;
-import org.eclipse.sirius.services.diagram.internal.SiriusDiagramResourceSetListener;
-import org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler;
-import org.eclipse.sirius.services.diagram.internal.actions.SiriusDiagramActionHandlerSwitch;
-
-/**
- * The service used to manipulate Sirius diagrams.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramService {
-
-    /**
-     * The session.
-     */
-    private Session session;
-
-    /**
-     * The diagram.
-     */
-    private DDiagram dDiagram;
-
-    /**
-     * The callback used to emit messages.
-     */
-    private Consumer<SiriusDiagramMessage> callback;
-
-    /**
-     * The precommit listener used to refresh the diagram when a modification
-     * has been made.
-     */
-    private SiriusDiagramPrecommitListener precommitListener;
-
-    /**
-     * The resource set listener used to send actions when the diagram is
-     * refreshed.
-     */
-    private SiriusDiagramResourceSetListener resourceSetListener;
-
-    /**
-     * The constructor.
-     *
-     * @param session
-     *            The session
-     * @param dDiagram
-     *            The diagram
-     * @param callback
-     *            The callback used to handle some messages
-     */
-    public SiriusDiagramService(Session session, DDiagram dDiagram, Consumer<SiriusDiagramMessage> callback) {
-        this.session = session;
-        this.dDiagram = dDiagram;
-        this.callback = callback;
-
-        this.precommitListener = new SiriusDiagramPrecommitListener(this.dDiagram);
-        this.resourceSetListener = new SiriusDiagramResourceSetListener(this);
-    }
-
-    /**
-     * Initializes the service.
-     */
-    public void initialize() {
-        this.session.getTransactionalEditingDomain().addResourceSetListener(this.precommitListener);
-        this.session.getTransactionalEditingDomain().addResourceSetListener(this.resourceSetListener);
-    }
-
-    /**
-     * Accept a message to be handled.
-     *
-     * @param message
-     *            The message
-     */
-    public void accept(SiriusDiagramMessage message) {
-        AbstractSiriusDiagramAction action = message.getAction();
-        Optional<ISiriusDiagramActionHandler> optionalActionHandler = new SiriusDiagramActionHandlerSwitch().doSwitch(action);
-        optionalActionHandler.filter(handler -> handler.canHandle(this, action)).ifPresent(handler -> handler.handle(this, action));
-    }
-
-    /**
-     * Dispatch a message to be handled by the callback.
-     *
-     * @param message
-     *            The message
-     */
-    public void dispatch(SiriusDiagramMessage message) {
-        this.callback.accept(message);
-    }
-
-    /**
-     * Disposes the service.
-     */
-    public void dispose() {
-        this.session.getTransactionalEditingDomain().removeResourceSetListener(this.precommitListener);
-        this.session.getTransactionalEditingDomain().removeResourceSetListener(this.resourceSetListener);
-    }
-
-    /**
-     * Return the session.
-     *
-     * @return the session
-     */
-    public Session getSession() {
-        return this.session;
-    }
-
-    /**
-     * Return the dDiagram.
-     *
-     * @return the dDiagram
-     */
-    public DDiagram getDDiagram() {
-        return this.dDiagram;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramExecuteNodeCreationToolAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramExecuteNodeCreationToolAction.java
deleted file mode 100644
index 54f0dfa..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramExecuteNodeCreationToolAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-
-/**
- * The action used to execute the creation of a node.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramExecuteNodeCreationToolAction extends AbstractSiriusDiagramAction {
-
-    /**
-     * The kind of the action.
-     */
-    public static final String KIND = "executeNodeCreateTool"; //$NON-NLS-1$
-
-    /**
-     * The identifier of the tool to execute.
-     */
-    private String identifier;
-
-    /**
-     * The identifier of the container on which the tool will be used.
-     */
-    private String containerIdentifier;
-
-    /**
-     * The constructor.
-     */
-    public SiriusDiagramExecuteNodeCreationToolAction() {
-        super(KIND);
-    }
-
-    /**
-     * Return the identifier.
-     *
-     * @return the identifier
-     */
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    /**
-     * Return the containerIdentifier.
-     *
-     * @return the containerIdentifier
-     */
-    public String getContainerIdentifier() {
-        return this.containerIdentifier;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestModelAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestModelAction.java
deleted file mode 100644
index c0b1929..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestModelAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-
-/**
- * Used to request the model.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramRequestModelAction extends AbstractSiriusDiagramAction {
-
-    /**
-     * The kind of the action.
-     */
-    public static final String KIND = "requestModel"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    public SiriusDiagramRequestModelAction() {
-        super(KIND);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestToolsAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestToolsAction.java
deleted file mode 100644
index 7d62ee2..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramRequestToolsAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-
-/**
- * The action used to request the tools.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramRequestToolsAction extends AbstractSiriusDiagramAction {
-
-    /**
-     * The kind of the action.
-     */
-    public static final String KIND = "requestTools"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    public SiriusDiagramRequestToolsAction() {
-        super(KIND);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetModelAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetModelAction.java
deleted file mode 100644
index 1e36dfd..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetModelAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagram;
-
-/**
- * This action is used to set the model of the client.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramSetModelAction extends AbstractSiriusDiagramAction {
-    /**
-     * The kind of the action.
-     */
-    public static final String KIND = "setModel"; //$NON-NLS-1$
-
-    /**
-     * The new root of the model.
-     */
-    private SiriusDiagram newRoot;
-
-    /**
-     * The constructor.
-     *
-     * @param diagram
-     *            The new version of the diagram
-     */
-    public SiriusDiagramSetModelAction(SiriusDiagram diagram) {
-        super(KIND);
-        this.newRoot = diagram;
-    }
-
-    /**
-     * Return the newRoot.
-     *
-     * @return the newRoot
-     */
-    public SiriusDiagram getNewRoot() {
-        return this.newRoot;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetToolsAction.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetToolsAction.java
deleted file mode 100644
index 8c75f0e..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/actions/SiriusDiagramSetToolsAction.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.actions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramTool;
-
-/**
- * This action is used to send the tools computed back to the client.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramSetToolsAction extends AbstractSiriusDiagramAction {
-
-    /**
-     * The kind of the action.
-     */
-    private static final String KIND = "setTools"; //$NON-NLS-1$
-
-    /**
-     * The tools.
-     */
-    private List<SiriusDiagramTool> tools = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param tools
-     *            The tools
-     */
-    public SiriusDiagramSetToolsAction(List<SiriusDiagramTool> tools) {
-        super(KIND);
-        this.tools = tools;
-    }
-
-    /**
-     * Return the tools.
-     *
-     * @return the tools
-     */
-    public List<SiriusDiagramTool> getTools() {
-        return this.tools;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramElement.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramElement.java
deleted file mode 100644
index 2a0a6bb..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramElement.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Common superclass of all the diagram elements.
- *
- * @author sbegaudeau
- */
-public abstract class AbstractSiriusDiagramElement {
-    /**
-     * The identifier.
-     */
-    private String id;
-
-    /**
-     * The type.
-     */
-    private String type;
-
-    /**
-     * The children.
-     */
-    private List<AbstractSiriusDiagramElement> children = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param type
-     *            The type
-     */
-    public AbstractSiriusDiagramElement(String identifier, String type) {
-        this.id = identifier;
-        this.type = type;
-    }
-
-    /**
-     * Return the id.
-     *
-     * @return the id
-     */
-    public String getId() {
-        return this.id;
-    }
-
-    /**
-     * Return the type.
-     *
-     * @return the type
-     */
-    public String getType() {
-        return this.type;
-    }
-
-    /**
-     * Return the children.
-     *
-     * @return the children
-     */
-    public List<AbstractSiriusDiagramElement> getChildren() {
-        return this.children;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramNode.java
deleted file mode 100644
index ba9d780..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/AbstractSiriusDiagramNode.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * A node.
- *
- * @author sbegaudeau
- */
-public abstract class AbstractSiriusDiagramNode extends AbstractSiriusDiagramElement {
-
-    /**
-     * The identifier of the semantic element.
-     */
-    private String semanticElementIdentifier;
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @param type
-     *            The type
-     */
-    public AbstractSiriusDiagramNode(String identifier, String semanticElementIdentifier, String type) {
-        super(identifier, type);
-        this.semanticElementIdentifier = semanticElementIdentifier;
-    }
-
-    /**
-     * Return the semanticElementIdentifier.
-     *
-     * @return the semanticElementIdentifier
-     */
-    public String getSemanticElementIdentifier() {
-        return this.semanticElementIdentifier;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagram.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagram.java
deleted file mode 100644
index 1a137f4..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagram.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * The diagram containing all the Sirius diagram elements.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagram {
-    /**
-     * The identifier.
-     */
-    private String id;
-
-    /**
-     * The type.
-     */
-    private String type = "diagram"; //$NON-NLS-1$
-
-    /**
-     * The children of the diagram.
-     */
-    private List<AbstractSiriusDiagramElement> children = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param id
-     *            The identifier
-     */
-    public SiriusDiagram(String id) {
-        this.id = id;
-    }
-
-    /**
-     * Return the id.
-     *
-     * @return the id
-     */
-    public String getId() {
-        return this.id;
-    }
-
-    /**
-     * Return the type.
-     *
-     * @return the type
-     */
-    public String getType() {
-        return this.type;
-    }
-
-    /**
-     * Return the children.
-     *
-     * @return the children
-     */
-    public List<AbstractSiriusDiagramElement> getChildren() {
-        return this.children;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdge.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdge.java
deleted file mode 100644
index 8df5522..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdge.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramColorConverter;
-
-/**
- * An edge.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramEdge extends AbstractSiriusDiagramElement {
-
-    /**
-     * The type of the element.
-     */
-    private static final String TYPE = "edge:straight"; //$NON-NLS-1$
-
-    /**
-     * The identifier of the source.
-     */
-    private String sourceId;
-
-    /**
-     * The identifier of the target.
-     */
-    private String targetId;
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The color.
-     */
-    private SiriusDiagramRGBColor color;
-
-    /**
-     * The size.
-     */
-    private int size;
-
-    /**
-     * The style of the line.
-     */
-    private SiriusDiagramEdgeLineStyle lineStyle;
-
-    /**
-     * The style of the source arrow.
-     */
-    private SiriusDiagramEdgeArrowStyle sourceArrowStyle;
-
-    /**
-     * The style of the target arrow.
-     */
-    private SiriusDiagramEdgeArrowStyle targetArrowStyle;
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param sourceId
-     *            The identifier of the source
-     * @param targetId
-     *            The identifier of the target
-     */
-    public SiriusDiagramEdge(String identifier, String sourceId, String targetId) {
-        super(identifier, TYPE);
-        this.sourceId = sourceId;
-        this.targetId = targetId;
-    }
-
-    /**
-     * Return the sourceId.
-     *
-     * @return the sourceId
-     */
-    public String getSourceId() {
-        return this.sourceId;
-    }
-
-    /**
-     * Return the targetId.
-     *
-     * @return the targetId
-     */
-    public String getTargetId() {
-        return this.targetId;
-    }
-
-    /**
-     * Return the color.
-     *
-     * @return the color
-     */
-    public SiriusDiagramRGBColor getColor() {
-        return this.color;
-    }
-
-    /**
-     * Sets the color.
-     *
-     * @param color
-     *            the color to set
-     */
-    private void setColor(SiriusDiagramRGBColor color) {
-        this.color = color;
-    }
-
-    /**
-     * Return the size.
-     *
-     * @return the size
-     */
-    public int getSize() {
-        return this.size;
-    }
-
-    /**
-     * Sets the size.
-     *
-     * @param size
-     *            the size to set
-     */
-    private void setSize(int size) {
-        this.size = size;
-    }
-
-    /**
-     * Return the lineStyle.
-     *
-     * @return the lineStyle
-     */
-    public SiriusDiagramEdgeLineStyle getLineStyle() {
-        return this.lineStyle;
-    }
-
-    /**
-     * Sets the lineStyle.
-     *
-     * @param lineStyle
-     *            the lineStyle to set
-     */
-    private void setLineStyle(SiriusDiagramEdgeLineStyle lineStyle) {
-        this.lineStyle = lineStyle;
-    }
-
-    /**
-     * Return the sourceArrowStyle.
-     *
-     * @return the sourceArrowStyle
-     */
-    public SiriusDiagramEdgeArrowStyle getSourceArrowStyle() {
-        return this.sourceArrowStyle;
-    }
-
-    /**
-     * Sets the sourceArrowStyle.
-     *
-     * @param sourceArrowStyle
-     *            the sourceArrowStyle to set
-     */
-    private void setSourceArrowStyle(SiriusDiagramEdgeArrowStyle sourceArrowStyle) {
-        this.sourceArrowStyle = sourceArrowStyle;
-    }
-
-    /**
-     * Return the targetArrowStyle.
-     *
-     * @return the targetArrowStyle
-     */
-    public SiriusDiagramEdgeArrowStyle getTargetArrowStyle() {
-        return this.targetArrowStyle;
-    }
-
-    /**
-     * Sets the targetArrowStyle.
-     *
-     * @param targetArrowStyle
-     *            the targetArrowStyle to set
-     */
-    private void setTargetArrowStyle(SiriusDiagramEdgeArrowStyle targetArrowStyle) {
-        this.targetArrowStyle = targetArrowStyle;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Creates a new edge.
-     *
-     * @param identifier
-     *            The identifier
-     * @param sourceId
-     *            The identifier of the source of the edge
-     * @param targetId
-     *            The identifier of the target of the edge
-     * @return A builder used to create the new edge
-     */
-    public static Builder newEdge(String identifier, String sourceId, String targetId) {
-        return new Builder(identifier, sourceId, targetId);
-    }
-
-    /**
-     * The builder used to create the edges.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the source of the edge.
-         */
-        private String sourceId;
-
-        /**
-         * The identifier of the target of the edge.
-         */
-        private String targetId;
-
-        /**
-         * The color.
-         */
-        private SiriusDiagramRGBColor color = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The size.
-         */
-        private int size = 1;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The style of the line.
-         */
-        private SiriusDiagramEdgeLineStyle lineStyle = SiriusDiagramEdgeLineStyle.SOLID;
-
-        /**
-         * The style of the source arrow.
-         */
-        private SiriusDiagramEdgeArrowStyle sourceArrowStyle = SiriusDiagramEdgeArrowStyle.NO_DECORATION;
-
-        /**
-         * The style of the target arrow.
-         */
-        private SiriusDiagramEdgeArrowStyle targetArrowStyle = SiriusDiagramEdgeArrowStyle.NO_DECORATION;
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param sourceId
-         *            The identifier of the source of the edge
-         * @param targetId
-         *            The identifier of the target of the edge
-         */
-        private Builder(String identifier, String sourceId, String targetId) {
-            this.identifier = identifier;
-            this.sourceId = sourceId;
-            this.targetId = targetId;
-        }
-
-        /**
-         * Sets the color.
-         *
-         * @param color
-         *            The color
-         * @return The builder
-         */
-        public Builder color(SiriusDiagramRGBColor color) {
-            this.color = color;
-            return this;
-        }
-
-        /**
-         * Sets the size.
-         *
-         * @param size
-         *            The size
-         * @return The builder
-         */
-        public Builder size(int size) {
-            this.size = size;
-            return this;
-        }
-
-        /**
-         * Sets the line style.
-         *
-         * @param lineStyle
-         *            The line style
-         * @return The builder
-         */
-        public Builder lineStyle(SiriusDiagramEdgeLineStyle lineStyle) {
-            this.lineStyle = lineStyle;
-            return this;
-        }
-
-        /**
-         * Sets the source arrow style.
-         * 
-         * @param sourceArrowStyle
-         *            The source arrow style
-         * @return The builder
-         */
-        public Builder sourceArrowStyle(SiriusDiagramEdgeArrowStyle sourceArrowStyle) {
-            this.sourceArrowStyle = sourceArrowStyle;
-            return this;
-        }
-
-        /**
-         * Sets the target arrow style.
-         * 
-         * @param targetArrowStyle
-         *            The target arrow style
-         * @return The builder
-         */
-        public Builder targetArrowStyle(SiriusDiagramEdgeArrowStyle targetArrowStyle) {
-            this.targetArrowStyle = targetArrowStyle;
-            return this;
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Creates the edge.
-         *
-         * @return The edge created
-         */
-        public SiriusDiagramEdge build() {
-            SiriusDiagramEdge edge = new SiriusDiagramEdge(this.identifier, this.sourceId, this.targetId);
-            edge.setColor(this.color);
-            edge.setSize(this.size);
-            edge.setLineStyle(this.lineStyle);
-            edge.setSourceArrowStyle(this.sourceArrowStyle);
-            edge.setTargetArrowStyle(this.targetArrowStyle);
-            edge.setLabel(this.label);
-            return edge;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeArrowStyle.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeArrowStyle.java
deleted file mode 100644
index a5e7aab..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeArrowStyle.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * The style of the arrows of the edge.
- *
- * @author sbegaudeau
- */
-public enum SiriusDiagramEdgeArrowStyle {
-    /**
-     * The diamond style.
-     */
-    DIAMOND,
-
-    /**
-     * The fill diamond style.
-     */
-    FILL_DIAMOND,
-
-    /**
-     * The input arrow style.
-     */
-    INPUT_ARROW,
-
-    /**
-     * The input arrow with diamond style.
-     */
-    INPUT_ARROW_WITH_DIAMOND,
-
-    /**
-     * The input arrow with fill diamond style.
-     */
-    INPUT_ARROW_WITH_FILL_DIAMOND,
-
-    /**
-     * The input closed arrow style.
-     */
-    INPUT_CLOSED_ARROW,
-
-    /**
-     * The input fill closed arrow style.
-     */
-    INPUT_FILL_CLOSED_ARROW,
-
-    /**
-     * The no decoration style.
-     */
-    NO_DECORATION,
-
-    /**
-     * The ouput arrow style.
-     */
-    OUTPUT_ARROW,
-
-    /**
-     * The ouput closed arrow style.
-     */
-    OUTPUT_CLOSED_ARROW,
-
-    /**
-     * The ouput fill closed arrow style.
-     */
-    OUTPUT_FILL_CLOSED_ARROW
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeLineStyle.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeLineStyle.java
deleted file mode 100644
index 93dfecc..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramEdgeLineStyle.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * The style of the line of the edge.
- *
- * @author sbegaudeau
- */
-public enum SiriusDiagramEdgeLineStyle {
-    /**
-     * Solid style.
-     */
-    SOLID,
-
-    /**
-     * Dots and dashes style.
-     */
-    DASH_DOT,
-
-    /**
-     * Dash style.
-     */
-    DASH,
-
-    /**
-     * Dot style.
-     */
-    DOT
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramGradientNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramGradientNode.java
deleted file mode 100644
index 929a8b8..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramGradientNode.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramColorConverter;
-
-/**
- * A node with a gradient-based style.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramGradientNode extends AbstractSiriusDiagramNode {
-    /**
-     * The type of the node.
-     */
-    private static final String TYPE = "node:gradient"; //$NON-NLS-1$
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The background color.
-     */
-    private SiriusDiagramRGBColor backgroundColor;
-
-    /**
-     * The foreground color.
-     */
-    private SiriusDiagramRGBColor foregroundColor;
-
-    /**
-     * The border color.
-     */
-    private SiriusDiagramRGBColor borderColor;
-
-    /**
-     * The border size.
-     */
-    private int borderSize;
-
-    /**
-     * The path of the image.
-     */
-    private String imagePath;
-
-    /**
-     * The ports.
-     */
-    private List<AbstractSiriusDiagramElement> ports = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     */
-    public SiriusDiagramGradientNode(String identifier, String semanticElementIdentifier) {
-        super(identifier, semanticElementIdentifier, TYPE);
-    }
-
-    /**
-     * Return the backgroundColor.
-     *
-     * @return the backgroundColor
-     */
-    public SiriusDiagramRGBColor getBackgroundColor() {
-        return this.backgroundColor;
-    }
-
-    /**
-     * Sets the backgroundColor.
-     *
-     * @param backgroundColor
-     *            the backgroundColor to set
-     */
-    private void setBackgroundColor(SiriusDiagramRGBColor backgroundColor) {
-        this.backgroundColor = backgroundColor;
-    }
-
-    /**
-     * Return the foregroundColor.
-     *
-     * @return the foregroundColor
-     */
-    public SiriusDiagramRGBColor getForegroundColor() {
-        return this.foregroundColor;
-    }
-
-    /**
-     * Sets the foregroundColor.
-     *
-     * @param foregroundColor
-     *            the foregroundColor to set
-     */
-    private void setForegroundColor(SiriusDiagramRGBColor foregroundColor) {
-        this.foregroundColor = foregroundColor;
-    }
-
-    /**
-     * Return the borderColor.
-     *
-     * @return the borderColor
-     */
-    public SiriusDiagramRGBColor getBorderColor() {
-        return this.borderColor;
-    }
-
-    /**
-     * Sets the borderColor.
-     *
-     * @param borderColor
-     *            the borderColor to set
-     */
-    private void setBorderColor(SiriusDiagramRGBColor borderColor) {
-        this.borderColor = borderColor;
-    }
-
-    /**
-     * Return the borderSize.
-     *
-     * @return the borderSize
-     */
-    public int getBorderSize() {
-        return this.borderSize;
-    }
-
-    /**
-     * Sets the borderSize.
-     *
-     * @param borderSize
-     *            the borderSize to set
-     */
-    private void setBorderSize(int borderSize) {
-        this.borderSize = borderSize;
-    }
-
-    /**
-     * Return the imagePath.
-     *
-     * @return the imagePath
-     */
-    public String getImagePath() {
-        return this.imagePath;
-    }
-
-    /**
-     * Sets the imagePath.
-     *
-     * @param imagePath
-     *            the imagePath to set
-     */
-    private void setImagePath(String imagePath) {
-        this.imagePath = imagePath;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Return the ports.
-     *
-     * @return the ports
-     */
-    public List<AbstractSiriusDiagramElement> getPorts() {
-        return this.ports;
-    }
-
-    /**
-     * Creates a new gradient node.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @return A builder used to create the new gradient node
-     */
-    public static Builder newGradientNode(String identifier, String semanticElementIdentifier) {
-        return new Builder(identifier, semanticElementIdentifier);
-    }
-
-    /**
-     * The builder used to create the gradient nodes.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the semantic element.
-         */
-        private String semanticElementIdentifier;
-
-        /**
-         * The background color.
-         */
-        private SiriusDiagramRGBColor backgroundColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The foreground color.
-         */
-        private SiriusDiagramRGBColor foregroundColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border color.
-         */
-        private SiriusDiagramRGBColor borderColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border size.
-         */
-        private int borderSize = 1;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The image path.
-         */
-        private String imagePath;
-
-        /**
-         * The ports.
-         */
-        private List<AbstractSiriusDiagramElement> ports;
-
-        /**
-         * The children.
-         */
-        private List<AbstractSiriusDiagramElement> children = new ArrayList<>();
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param semanticElementIdentifier
-         *            The identifier of the semantic element
-         */
-        private Builder(String identifier, String semanticElementIdentifier) {
-            this.identifier = Objects.requireNonNull(identifier);
-            this.semanticElementIdentifier = Objects.requireNonNull(semanticElementIdentifier);
-        }
-
-        /**
-         * Sets the backgroundColor.
-         *
-         * @param backgroundColor
-         *            The background color
-         * @return The builder
-         */
-        public Builder backgroundColor(SiriusDiagramRGBColor backgroundColor) {
-            this.backgroundColor = backgroundColor;
-            return this;
-        }
-
-        /**
-         * Sets the foregroundColor.
-         *
-         * @param foregroundColor
-         *            The foreground color
-         * @return The builder
-         */
-        public Builder foregroundColor(SiriusDiagramRGBColor foregroundColor) {
-            this.foregroundColor = foregroundColor;
-            return this;
-        }
-
-        /**
-         * Sets the border color.
-         *
-         * @param borderColor
-         *            The border color
-         * @return The builder
-         */
-        public Builder bordercolor(SiriusDiagramRGBColor borderColor) {
-            this.borderColor = borderColor;
-            return this;
-        }
-
-        /**
-         * Sets the border size.
-         *
-         * @param borderSize
-         *            The border size
-         * @return The builder
-         */
-        public Builder borderSize(int borderSize) {
-            this.borderSize = borderSize;
-            return this;
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Sets the image path.
-         *
-         * @param imagePath
-         *            The image path
-         * @return The builder
-         */
-        public Builder imagePath(String imagePath) {
-            this.imagePath = imagePath;
-            return this;
-        }
-
-        /**
-         * Sets the ports.
-         *
-         * @param ports
-         *            The ports
-         * @return The builder
-         */
-        public Builder ports(List<AbstractSiriusDiagramElement> ports) {
-            this.ports = Objects.requireNonNull(ports);
-            return this;
-        }
-
-        /**
-         * Sets the children.
-         *
-         * @param children
-         *            The children
-         * @return The builder
-         */
-        public Builder withChildren(List<AbstractSiriusDiagramElement> children) {
-            this.children = Objects.requireNonNull(children);
-            return this;
-        }
-
-        /**
-         * Creates the gradient node.
-         *
-         * @return The gradient node created
-         */
-        public SiriusDiagramGradientNode build() {
-            SiriusDiagramGradientNode gradientNode = new SiriusDiagramGradientNode(this.identifier, this.semanticElementIdentifier);
-            gradientNode.setBackgroundColor(this.backgroundColor);
-            gradientNode.setForegroundColor(this.foregroundColor);
-            gradientNode.setBorderColor(this.borderColor);
-            gradientNode.setBorderSize(this.borderSize);
-            gradientNode.setImagePath(this.imagePath);
-            gradientNode.setLabel(this.label);
-            gradientNode.getPorts().addAll(this.ports);
-            gradientNode.getChildren().addAll(this.children);
-            return gradientNode;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramImageNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramImageNode.java
deleted file mode 100644
index d404b07..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramImageNode.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * A node with an image-based style.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramImageNode extends AbstractSiriusDiagramNode {
-    /**
-     * The type of the node.
-     */
-    private static final String TYPE = "node:image"; //$NON-NLS-1$
-
-    /**
-     * The path of the image.
-     */
-    private String imagePath;
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The ports.
-     */
-    private List<AbstractSiriusDiagramElement> ports = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     */
-    public SiriusDiagramImageNode(String identifier, String semanticElementIdentifier) {
-        super(identifier, semanticElementIdentifier, TYPE);
-    }
-
-    /**
-     * Return the imagePath.
-     *
-     * @return the imagePath
-     */
-    public String getImagePath() {
-        return this.imagePath;
-    }
-
-    /**
-     * Sets the imagePath.
-     *
-     * @param imagePath
-     *            the imagePath to set
-     */
-    private void setImagePath(String imagePath) {
-        this.imagePath = imagePath;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Return the ports.
-     *
-     * @return the ports
-     */
-    public List<AbstractSiriusDiagramElement> getPorts() {
-        return this.ports;
-    }
-
-    /**
-     * Creates a new image node.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @return A builder used to create the new image node
-     */
-    public static Builder newImageNode(String identifier, String semanticElementIdentifier) {
-        return new Builder(identifier, semanticElementIdentifier);
-    }
-
-    /**
-     * The builder used to create the image nodes.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the semantic element.
-         */
-        private String semanticElementIdentifier;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The path of the image.
-         */
-        private String imagePath;
-
-        /**
-         * The ports.
-         */
-        private List<AbstractSiriusDiagramElement> ports;
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param semanticElementIdentifier
-         *            The identifier of the semantic element
-         */
-        private Builder(String identifier, String semanticElementIdentifier) {
-            this.identifier = Objects.requireNonNull(identifier);
-            this.semanticElementIdentifier = Objects.requireNonNull(semanticElementIdentifier);
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Sets the image path.
-         *
-         * @param imagePath
-         *            The image path
-         * @return The builder
-         */
-        public Builder imagePath(String imagePath) {
-            this.imagePath = imagePath;
-            return this;
-        }
-
-        /**
-         * Sets the ports.
-         *
-         * @param ports
-         *            The ports
-         * @return The builder
-         */
-        public Builder ports(List<AbstractSiriusDiagramElement> ports) {
-            this.ports = Objects.requireNonNull(ports);
-            return this;
-        }
-
-        /**
-         * Creates the list node.
-         *
-         * @return The list node created
-         */
-        public SiriusDiagramImageNode build() {
-            SiriusDiagramImageNode imageNode = new SiriusDiagramImageNode(this.identifier, this.semanticElementIdentifier);
-            imageNode.setImagePath(this.imagePath);
-            imageNode.setLabel(this.label);
-            imageNode.getPorts().addAll(this.ports);
-            return imageNode;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramLabel.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramLabel.java
deleted file mode 100644
index b684a5c..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramLabel.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 TypeFox and others.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * The label of an element.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramLabel extends AbstractSiriusDiagramElement {
-
-    /**
-     * The suffix of the label.
-     */
-    public static final String LABEL_SUFFIX = "__label"; //$NON-NLS-1$
-
-    /**
-     * The type of the element.
-     */
-    private static final String TYPE = "label"; //$NON-NLS-1$
-
-    /**
-     * The text of the label.
-     */
-    private String text;
-
-    /**
-     * The color of the label.
-     */
-    private SiriusDiagramRGBColor color;
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param text
-     *            The text
-     * @param color
-     *            The color
-     */
-    public SiriusDiagramLabel(String identifier, String text, SiriusDiagramRGBColor color) {
-        super(identifier, TYPE);
-        this.text = text;
-        this.color = color;
-    }
-
-    /**
-     * Return the text.
-     *
-     * @return the text
-     */
-    public String getText() {
-        return this.text;
-    }
-
-    /**
-     * Return the color.
-     *
-     * @return the color
-     */
-    public SiriusDiagramRGBColor getColor() {
-        return this.color;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListElementNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListElementNode.java
deleted file mode 100644
index c49bbec..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListElementNode.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.Objects;
-
-/**
- * An element of a list-based node.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramListElementNode extends AbstractSiriusDiagramNode {
-    /**
-     * The type of the element.
-     */
-    private static final String TYPE = "node:listelement"; //$NON-NLS-1$
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The path of the image.
-     */
-    private String imagePath;
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The semantic element identifier
-     */
-    public SiriusDiagramListElementNode(String identifier, String semanticElementIdentifier) {
-        super(identifier, semanticElementIdentifier, TYPE);
-    }
-
-    /**
-     * Return the imagePath.
-     *
-     * @return the imagePath
-     */
-    public String getImagePath() {
-        return this.imagePath;
-    }
-
-    /**
-     * Sets the imagePath.
-     *
-     * @param imagePath
-     *            the imagePath to set
-     */
-    private void setImagePath(String imagePath) {
-        this.imagePath = imagePath;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Creates a new list element node.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @return A builder used to create the new list element node
-     */
-    public static Builder newListElementNode(String identifier, String semanticElementIdentifier) {
-        return new Builder(identifier, semanticElementIdentifier);
-    }
-
-    /**
-     * The builder used to create the list element nodes.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the semantic element.
-         */
-        private String semanticElementIdentifier;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The image path.
-         */
-        private String imagePath;
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param semanticElementIdentifier
-         *            The identifier of the semantic element
-         */
-        private Builder(String identifier, String semanticElementIdentifier) {
-            this.identifier = Objects.requireNonNull(identifier);
-            this.semanticElementIdentifier = Objects.requireNonNull(semanticElementIdentifier);
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Sets the image path.
-         *
-         * @param imagePath
-         *            The image path
-         * @return The builder
-         */
-        public Builder imagePath(String imagePath) {
-            this.imagePath = imagePath;
-            return this;
-        }
-
-        /**
-         * Creates the list element node.
-         *
-         * @return The list element node created
-         */
-        public SiriusDiagramListElementNode build() {
-            SiriusDiagramListElementNode listNode = new SiriusDiagramListElementNode(this.identifier, this.semanticElementIdentifier);
-            listNode.setImagePath(this.imagePath);
-            listNode.setLabel(this.label);
-            return listNode;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListNode.java
deleted file mode 100644
index 657a8d7..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramListNode.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramColorConverter;
-
-/**
- * A list-based node.
- *
- * @author sbegaudeau
- */
-public final class SiriusDiagramListNode extends AbstractSiriusDiagramNode {
-
-    /**
-     * The type of the element.
-     */
-    private static final String TYPE = "node:listflatcontainer"; //$NON-NLS-1$
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The background color.
-     */
-    private SiriusDiagramRGBColor backgroundColor;
-
-    /**
-     * The border color.
-     */
-    private SiriusDiagramRGBColor borderColor;
-
-    /**
-     * The border size.
-     */
-    private int borderSize;
-
-    /**
-     * The path of the image.
-     */
-    private String imagePath;
-
-    /**
-     * The ports.
-     */
-    private List<AbstractSiriusDiagramElement> ports = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     */
-    private SiriusDiagramListNode(String identifier, String semanticElementIdentifier) {
-        super(identifier, semanticElementIdentifier, TYPE);
-    }
-
-    /**
-     * Return the backgroundColor.
-     *
-     * @return the backgroundColor
-     */
-    public SiriusDiagramRGBColor getBackgroundColor() {
-        return this.backgroundColor;
-    }
-
-    /**
-     * Sets the backgroundColor.
-     *
-     * @param backgroundColor
-     *            the backgroundColor to set
-     */
-    private void setBackgroundColor(SiriusDiagramRGBColor backgroundColor) {
-        this.backgroundColor = backgroundColor;
-    }
-
-    /**
-     * Return the borderColor.
-     *
-     * @return the borderColor
-     */
-    public SiriusDiagramRGBColor getBorderColor() {
-        return this.borderColor;
-    }
-
-    /**
-     * Sets the borderColor.
-     *
-     * @param borderColor
-     *            the borderColor to set
-     */
-    private void setBorderColor(SiriusDiagramRGBColor borderColor) {
-        this.borderColor = borderColor;
-    }
-
-    /**
-     * Return the borderSize.
-     *
-     * @return the borderSize
-     */
-    public int getBorderSize() {
-        return this.borderSize;
-    }
-
-    /**
-     * Sets the borderSize.
-     *
-     * @param borderSize
-     *            the borderSize to set
-     */
-    private void setBorderSize(int borderSize) {
-        this.borderSize = borderSize;
-    }
-
-    /**
-     * Return the imagePath.
-     *
-     * @return the imagePath
-     */
-    public String getImagePath() {
-        return this.imagePath;
-    }
-
-    /**
-     * Sets the imagePath.
-     *
-     * @param imagePath
-     *            the imagePath to set
-     */
-    private void setImagePath(String imagePath) {
-        this.imagePath = imagePath;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Return the ports.
-     *
-     * @return the ports
-     */
-    public List<AbstractSiriusDiagramElement> getPorts() {
-        return this.ports;
-    }
-
-    /**
-     * Creates a new list node.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @return A builder used to create the new list node
-     */
-    public static Builder newListNode(String identifier, String semanticElementIdentifier) {
-        return new Builder(identifier, semanticElementIdentifier);
-    }
-
-    /**
-     * The builder used to create the list nodes.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the semantic element.
-         */
-        private String semanticElementIdentifier;
-
-        /**
-         * The background color.
-         */
-        private SiriusDiagramRGBColor backgroundColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border color.
-         */
-        private SiriusDiagramRGBColor borderColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border size.
-         */
-        private int borderSize = 1;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The image path.
-         */
-        private String imagePath;
-
-        /**
-         * The ports.
-         */
-        private List<AbstractSiriusDiagramElement> ports;
-
-        /**
-         * The children.
-         */
-        private List<AbstractSiriusDiagramElement> children = new ArrayList<>();
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param semanticElementIdentifier
-         *            The identifier of the semantic element
-         */
-        private Builder(String identifier, String semanticElementIdentifier) {
-            this.identifier = Objects.requireNonNull(identifier);
-            this.semanticElementIdentifier = Objects.requireNonNull(semanticElementIdentifier);
-        }
-
-        /**
-         * Sets the background color.
-         *
-         * @param backgroundColor
-         *            The background color
-         * @return The builder
-         */
-        public Builder backgroundColor(SiriusDiagramRGBColor backgroundColor) {
-            this.backgroundColor = backgroundColor;
-            return this;
-        }
-
-        /**
-         * Sets the border color.
-         *
-         * @param borderColor
-         *            The border color
-         * @return The builder
-         */
-        public Builder bordercolor(SiriusDiagramRGBColor borderColor) {
-            this.borderColor = borderColor;
-            return this;
-        }
-
-        /**
-         * Sets the border size.
-         *
-         * @param borderSize
-         *            The border size
-         * @return The builder
-         */
-        public Builder borderSize(int borderSize) {
-            this.borderSize = borderSize;
-            return this;
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Sets the image path.
-         *
-         * @param imagePath
-         *            The image path
-         * @return The builder
-         */
-        public Builder imagePath(String imagePath) {
-            this.imagePath = imagePath;
-            return this;
-        }
-
-        /**
-         * Sets the ports.
-         *
-         * @param ports
-         *            The ports
-         * @return The builder
-         */
-        public Builder ports(List<AbstractSiriusDiagramElement> ports) {
-            this.ports = Objects.requireNonNull(ports);
-            return this;
-        }
-
-        /**
-         * Sets the children.
-         *
-         * @param children
-         *            The children
-         * @return The builder
-         */
-        public Builder withChildren(List<AbstractSiriusDiagramElement> children) {
-            this.children = Objects.requireNonNull(children);
-            return this;
-        }
-
-        /**
-         * Creates the list node.
-         *
-         * @return The list node created
-         */
-        public SiriusDiagramListNode build() {
-            SiriusDiagramListNode listNode = new SiriusDiagramListNode(this.identifier, this.semanticElementIdentifier);
-            listNode.setBackgroundColor(this.backgroundColor);
-            listNode.setBorderColor(this.borderColor);
-            listNode.setBorderSize(this.borderSize);
-            listNode.setImagePath(this.imagePath);
-            listNode.setLabel(this.label);
-            listNode.getPorts().addAll(this.ports);
-            listNode.getChildren().addAll(this.children);
-            return listNode;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramRGBColor.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramRGBColor.java
deleted file mode 100644
index d60873a..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramRGBColor.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * The values of the RGB color.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramRGBColor {
-    /**
-     * The red part of the color.
-     */
-    private int red;
-
-    /**
-     * The green part of the color.
-     */
-    private int green;
-
-    /**
-     * The blue part of the color.
-     */
-    private int blue;
-
-    /**
-     * The constructor.
-     * 
-     * @param red
-     *            The red
-     * @param green
-     *            The green
-     * @param blue
-     *            The blue
-     */
-    public SiriusDiagramRGBColor(int red, int green, int blue) {
-        this.red = red;
-        this.green = green;
-        this.blue = blue;
-    }
-
-    /**
-     * Return the red.
-     *
-     * @return the red
-     */
-    public int getRed() {
-        return this.red;
-    }
-
-    /**
-     * Return the green.
-     *
-     * @return the green
-     */
-    public int getGreen() {
-        return this.green;
-    }
-
-    /**
-     * Return the blue.
-     *
-     * @return the blue
-     */
-    public int getBlue() {
-        return this.blue;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramSquareNode.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramSquareNode.java
deleted file mode 100644
index ccf35c0..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramSquareNode.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramColorConverter;
-
-/**
- * A node with a square-based style.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramSquareNode extends AbstractSiriusDiagramNode {
-
-    /**
-     * The type of the node.
-     */
-    private static final String TYPE = "node:square"; //$NON-NLS-1$
-
-    /**
-     * The label.
-     */
-    private SiriusDiagramLabel label;
-
-    /**
-     * The color.
-     */
-    private SiriusDiagramRGBColor color;
-
-    /**
-     * The border color.
-     */
-    private SiriusDiagramRGBColor borderColor;
-
-    /**
-     * The border size.
-     */
-    private int borderSize;
-
-    /**
-     * The path of the image.
-     */
-    private String imagePath;
-
-    /**
-     * The ports.
-     */
-    private List<AbstractSiriusDiagramElement> ports = new ArrayList<>();
-
-    /**
-     * The constructor.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     */
-    public SiriusDiagramSquareNode(String identifier, String semanticElementIdentifier) {
-        super(identifier, semanticElementIdentifier, TYPE);
-    }
-
-    /**
-     * Return the color.
-     *
-     * @return the color
-     */
-    public SiriusDiagramRGBColor getColor() {
-        return this.color;
-    }
-
-    /**
-     * Sets the color.
-     *
-     * @param color
-     *            the color to set
-     */
-    private void setColor(SiriusDiagramRGBColor color) {
-        this.color = color;
-    }
-
-    /**
-     * Return the borderColor.
-     *
-     * @return the borderColor
-     */
-    public SiriusDiagramRGBColor getBorderColor() {
-        return this.borderColor;
-    }
-
-    /**
-     * Sets the borderColor.
-     *
-     * @param borderColor
-     *            the borderColor to set
-     */
-    private void setBorderColor(SiriusDiagramRGBColor borderColor) {
-        this.borderColor = borderColor;
-    }
-
-    /**
-     * Return the borderSize.
-     *
-     * @return the borderSize
-     */
-    public int getBorderSize() {
-        return this.borderSize;
-    }
-
-    /**
-     * Sets the borderSize.
-     *
-     * @param borderSize
-     *            the borderSize to set
-     */
-    private void setBorderSize(int borderSize) {
-        this.borderSize = borderSize;
-    }
-
-    /**
-     * Return the imagePath.
-     *
-     * @return the imagePath
-     */
-    public String getImagePath() {
-        return this.imagePath;
-    }
-
-    /**
-     * Sets the imagePath.
-     *
-     * @param imagePath
-     *            the imagePath to set
-     */
-    private void setImagePath(String imagePath) {
-        this.imagePath = imagePath;
-    }
-
-    /**
-     * Return the label.
-     *
-     * @return the label
-     */
-    public SiriusDiagramLabel getLabel() {
-        return this.label;
-    }
-
-    /**
-     * Sets the label.
-     *
-     * @param label
-     *            the label to set
-     */
-    private void setLabel(SiriusDiagramLabel label) {
-        this.label = label;
-    }
-
-    /**
-     * Return the ports.
-     *
-     * @return the ports
-     */
-    public List<AbstractSiriusDiagramElement> getPorts() {
-        return this.ports;
-    }
-
-    /**
-     * Creates a new square node.
-     *
-     * @param identifier
-     *            The identifier
-     * @param semanticElementIdentifier
-     *            The identifier of the semantic element
-     * @return A builder used to create the new square node
-     */
-    public static Builder newSquareNode(String identifier, String semanticElementIdentifier) {
-        return new Builder(identifier, semanticElementIdentifier);
-    }
-
-    /**
-     * The builder used to create the square nodes.
-     *
-     * @author sbegaudeau
-     */
-    // fields hidden by design
-    @SuppressWarnings({ "checkstyle:HiddenField", "hiding" })
-    public static final class Builder {
-
-        /**
-         * The identifier.
-         */
-        private String identifier;
-
-        /**
-         * The identifier of the semantic element.
-         */
-        private String semanticElementIdentifier;
-
-        /**
-         * The color.
-         */
-        private SiriusDiagramRGBColor color = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border color.
-         */
-        private SiriusDiagramRGBColor borderColor = SiriusDiagramColorConverter.DEFAULT_COLOR;
-
-        /**
-         * The border size.
-         */
-        private int borderSize = 1;
-
-        /**
-         * The label.
-         */
-        private SiriusDiagramLabel label;
-
-        /**
-         * The image path.
-         */
-        private String imagePath;
-
-        /**
-         * The ports.
-         */
-        private List<AbstractSiriusDiagramElement> ports;
-
-        /**
-         * The children.
-         */
-        private List<AbstractSiriusDiagramElement> children = new ArrayList<>();
-
-        /**
-         * The constructor.
-         *
-         * @param identifier
-         *            The identifier
-         * @param semanticElementIdentifier
-         *            The identifier of the semantic element
-         */
-        private Builder(String identifier, String semanticElementIdentifier) {
-            this.identifier = Objects.requireNonNull(identifier);
-            this.semanticElementIdentifier = Objects.requireNonNull(semanticElementIdentifier);
-        }
-
-        /**
-         * Sets the color.
-         *
-         * @param color
-         *            The color
-         * @return The builder
-         */
-        public Builder color(SiriusDiagramRGBColor color) {
-            this.color = color;
-            return this;
-        }
-
-        /**
-         * Sets the border color.
-         *
-         * @param borderColor
-         *            The border color
-         * @return The builder
-         */
-        public Builder bordercolor(SiriusDiagramRGBColor borderColor) {
-            this.borderColor = borderColor;
-            return this;
-        }
-
-        /**
-         * Sets the border size.
-         *
-         * @param borderSize
-         *            The border size
-         * @return The builder
-         */
-        public Builder borderSize(int borderSize) {
-            this.borderSize = borderSize;
-            return this;
-        }
-
-        /**
-         * Sets the label.
-         *
-         * @param label
-         *            The label
-         * @return The builder
-         */
-        public Builder label(SiriusDiagramLabel label) {
-            this.label = label;
-            return this;
-        }
-
-        /**
-         * Sets the image path.
-         *
-         * @param imagePath
-         *            The image path
-         * @return The builder
-         */
-        public Builder imagePath(String imagePath) {
-            this.imagePath = imagePath;
-            return this;
-        }
-
-        /**
-         * Sets the ports.
-         *
-         * @param ports
-         *            The ports
-         * @return The builder
-         */
-        public Builder ports(List<AbstractSiriusDiagramElement> ports) {
-            this.ports = Objects.requireNonNull(ports);
-            return this;
-        }
-
-        /**
-         * Sets the children.
-         *
-         * @param children
-         *            The children
-         * @return The builder
-         */
-        public Builder withChildren(List<AbstractSiriusDiagramElement> children) {
-            this.children = Objects.requireNonNull(children);
-            return this;
-        }
-
-        /**
-         * Creates the square node.
-         *
-         * @return The square node created
-         */
-        public SiriusDiagramSquareNode build() {
-            SiriusDiagramSquareNode squareNode = new SiriusDiagramSquareNode(this.identifier, this.semanticElementIdentifier);
-            squareNode.setColor(this.color);
-            squareNode.setBorderColor(this.borderColor);
-            squareNode.setBorderSize(this.borderSize);
-            squareNode.setImagePath(this.imagePath);
-            squareNode.setLabel(this.label);
-            squareNode.getPorts().addAll(this.ports);
-            squareNode.getChildren().addAll(this.children);
-            return squareNode;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramTool.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramTool.java
deleted file mode 100644
index e280a4e..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/api/entities/SiriusDiagramTool.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.api.entities;
-
-/**
- * A tool from the diagram.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramTool {
-
-    /**
-     * The type of the node creation tools.
-     */
-    public static final String NODE_CREATION_TYPE = "nodeCreation"; //$NON-NLS-1$
-
-    /**
-     * The identifier.
-     */
-    private String identifier;
-
-    /**
-     * The name.
-     */
-    private String name;
-
-    /**
-     * The type.
-     */
-    private String type;
-
-    /**
-     * The constructor.
-     * 
-     * @param identifier
-     *            The identifier
-     * @param name
-     *            The name
-     * @param type
-     *            The type
-     */
-    public SiriusDiagramTool(String identifier, String name, String type) {
-        this.identifier = identifier;
-        this.name = name;
-        this.type = type;
-    }
-
-    /**
-     * Return the identifier.
-     *
-     * @return the identifier
-     */
-    public String getIdentifier() {
-        return this.identifier;
-    }
-
-    /**
-     * Return the name.
-     *
-     * @return the name
-     */
-    public String getName() {
-        return this.name;
-    }
-
-    /**
-     * Return the type.
-     *
-     * @return the type
-     */
-    public String getType() {
-        return this.type;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPlugin.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPlugin.java
deleted file mode 100644
index 94fb943..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPlugin.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal;
-
-import java.util.Optional;
-
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.sirius.ext.ide.api.AbstractRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.DescriptorRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.IItemDescriptor;
-import org.eclipse.sirius.ext.ide.api.IItemRegistry;
-import org.eclipse.sirius.ext.ide.api.ItemRegistry;
-import org.eclipse.sirius.services.diagram.api.ISiriusDiagramImagePathProvider;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin class of the Sirius diagram component.
- *
- * @author sbegaudeau
- */
-public final class SiriusDiagramPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.services.diagram"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusDiagramPlugin INSTANCE = new SiriusDiagramPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusDiagramPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The name of the sirius diagram image path provider extension point.
-         */
-        private static final String SIRIUS_DIAGRAM_IMAGE_PATH_PROVIDER = "siriusDiagramImagePathProvider"; //$NON-NLS-1$
-
-        /**
-         * The {@link IItemRegistry} used to retrieve the image path providers.
-         */
-        private IItemRegistry<ISiriusDiagramImagePathProvider> imagePathProviderRegistry;
-
-        /**
-         * The extension registry listener for the image path provider.
-         */
-        private AbstractRegistryEventListener imagePathProviderListener;
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusDiagramPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-
-            this.imagePathProviderRegistry = new ItemRegistry<>();
-            this.imagePathProviderListener = new DescriptorRegistryEventListener<>(PLUGIN_ID, SIRIUS_DIAGRAM_IMAGE_PATH_PROVIDER, this.imagePathProviderRegistry);
-            extensionRegistry.addListener(this.imagePathProviderListener);
-            this.imagePathProviderListener.readRegistry(extensionRegistry);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-            extensionRegistry.removeListener(this.imagePathProviderListener);
-            this.imagePathProviderListener = null;
-            this.imagePathProviderRegistry = null;
-        }
-
-        /**
-         * Returns the image path provider.
-         * 
-         * @return The image path provider
-         */
-        public Optional<ISiriusDiagramImagePathProvider> getImagePathProvider() {
-            // @formatter:off
-            return this.imagePathProviderRegistry.getItemDescriptors().stream()
-                    .map(IItemDescriptor::getItem)
-                    .findFirst();
-            // @formatter:on
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPrecommitListener.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPrecommitListener.java
deleted file mode 100644
index a23ab77..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramPrecommitListener.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.emf.transaction.ResourceSetListenerImpl;
-import org.eclipse.emf.transaction.RollbackException;
-import org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.tools.api.ui.RefreshHelper;
-
-/**
- * The pre-commit listener used to detect if the Sirius session needs to be
- * refreshed.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramPrecommitListener extends ResourceSetListenerImpl {
-    /**
-     * The diagram.
-     */
-    private DDiagram dDiagram;
-
-    /**
-     * The constructor.
-     *
-     * @param dDiagram
-     *            The diagram
-     */
-    public SiriusDiagramPrecommitListener(DDiagram dDiagram) {
-        this.dDiagram = dDiagram;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#isPrecommitOnly()
-     */
-    @Override
-    public boolean isPrecommitOnly() {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#isAggregatePrecommitListener()
-     */
-    @Override
-    public boolean isAggregatePrecommitListener() {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#transactionAboutToCommit(org.eclipse.emf.transaction.ResourceSetChangeEvent)
-     */
-    @Override
-    public Command transactionAboutToCommit(ResourceSetChangeEvent event) throws RollbackException {
-        CompoundCommand compoundCommand = new CompoundCommand();
-        if (RefreshHelper.isImpactingNotification(event.getNotifications())) {
-            compoundCommand.append(new RefreshRepresentationsCommand(event.getEditingDomain(), new NullProgressMonitor(), this.dDiagram));
-        }
-        return compoundCommand;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramResourceSetListener.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramResourceSetListener.java
deleted file mode 100644
index 7aec606..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/SiriusDiagramResourceSetListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal;
-
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.emf.transaction.ResourceSetListenerImpl;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramSetModelAction;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagram;
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramConverter;
-
-/**
- * The resource set listener used to emit messages indicating that the diagram
- * has been modified.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramResourceSetListener extends ResourceSetListenerImpl {
-    /**
-     * The diagram service.
-     */
-    private SiriusDiagramService diagramService;
-
-    /**
-     * The constructor.
-     *
-     * @param diagramService
-     *            The diagram service
-     */
-    public SiriusDiagramResourceSetListener(SiriusDiagramService diagramService) {
-        this.diagramService = diagramService;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#resourceSetChanged(org.eclipse.emf.transaction.ResourceSetChangeEvent)
-     */
-    @Override
-    public void resourceSetChanged(ResourceSetChangeEvent event) {
-        super.resourceSetChanged(event);
-
-        SiriusDiagramConverter converter = new SiriusDiagramConverter(this.diagramService.getDDiagram());
-        SiriusDiagram diagram = converter.convert();
-        SiriusDiagramSetModelAction action = new SiriusDiagramSetModelAction(diagram);
-
-        SiriusDiagramMessage diagramMessage = new SiriusDiagramMessage();
-        diagramMessage.setAction(action);
-        this.diagramService.dispatch(diagramMessage);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/ISiriusDiagramActionHandler.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/ISiriusDiagramActionHandler.java
deleted file mode 100644
index d89348e..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/ISiriusDiagramActionHandler.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-
-/**
- * Used to handle an {@link AbstractSiriusDiagramAction}.
- *
- * @author sbegaudeau
- */
-public interface ISiriusDiagramActionHandler {
-    /**
-     * Indicates if the handler can handler the given {@link Action}.
-     *
-     * @param diagramService
-     *            The diagram service
-     * @param action
-     *            The action
-     * @return <code>true</code> if the action can be handled,
-     *         <code>false</code> otherwise
-     */
-    boolean canHandle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action);
-
-    /**
-     * Handles the given {@link Action}.
-     *
-     * @param diagramService
-     *            The diagram service
-     * @param action
-     *            The action
-     */
-    void handle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action);
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionHandlerSwitch.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionHandlerSwitch.java
deleted file mode 100644
index 947d9ca..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionHandlerSwitch.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramExecuteNodeCreationToolAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestModelAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestToolsAction;
-
-/**
- * Switch used to retrieve the handler for each kind of action.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramActionHandlerSwitch extends SiriusDiagramActionSwitch<Optional<ISiriusDiagramActionHandler>> {
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.SiriusDiagramActionSwitch#getDefaultValue()
-     */
-    @Override
-    protected Optional<ISiriusDiagramActionHandler> getDefaultValue() {
-        return Optional.empty();
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.SiriusDiagramActionSwitch#caseExecuteNodeCreationToolAction(org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramExecuteNodeCreationToolAction)
-     */
-    @Override
-    public Optional<ISiriusDiagramActionHandler> caseExecuteNodeCreationToolAction(SiriusDiagramExecuteNodeCreationToolAction action) {
-        return Optional.of(new SiriusDiagramExecuteNodeCreationToolActionHandler());
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.SiriusDiagramActionSwitch#caseRequestModelAction(org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestModelAction)
-     */
-    @Override
-    public Optional<ISiriusDiagramActionHandler> caseRequestModelAction(SiriusDiagramRequestModelAction action) {
-        return Optional.of(new SiriusDiagramRequestModelActionHandler());
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.SiriusDiagramActionSwitch#caseRequestToolsAction(org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestToolsAction)
-     */
-    @Override
-    public Optional<ISiriusDiagramActionHandler> caseRequestToolsAction(SiriusDiagramRequestToolsAction action) {
-        return Optional.of(new SiriusDiagramRequestToolsActionHandler());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionSwitch.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionSwitch.java
deleted file mode 100644
index 0452ce2..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramActionSwitch.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramExecuteNodeCreationToolAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestModelAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestToolsAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramSetModelAction;
-
-/**
- * Switch used to handle the various actions.
- *
- * @author sbegaudeau
- *
- * @param <T>
- *            The type of result expected by the switch
- */
-public class SiriusDiagramActionSwitch<T> {
-    /**
-     * Returns the default value.
-     *
-     * @return The default value
-     */
-    protected T getDefaultValue() {
-        return null;
-    }
-
-    /**
-     * Dispatch the action.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T doSwitch(AbstractSiriusDiagramAction action) {
-        T result = this.getDefaultValue();
-        switch (action.getKind()) {
-        case SiriusDiagramExecuteNodeCreationToolAction.KIND:
-            if (action instanceof SiriusDiagramExecuteNodeCreationToolAction) {
-                result = this.caseExecuteNodeCreationToolAction((SiriusDiagramExecuteNodeCreationToolAction) action);
-            }
-            break;
-        case SiriusDiagramRequestModelAction.KIND:
-            if (action instanceof SiriusDiagramRequestModelAction) {
-                result = this.caseRequestModelAction((SiriusDiagramRequestModelAction) action);
-            }
-            break;
-        case SiriusDiagramRequestToolsAction.KIND:
-            if (action instanceof SiriusDiagramRequestToolsAction) {
-                result = this.caseRequestToolsAction((SiriusDiagramRequestToolsAction) action);
-            }
-            break;
-        case SiriusDiagramSetModelAction.KIND:
-            if (action instanceof SiriusDiagramSetModelAction) {
-                result = this.caseSetModelAction((SiriusDiagramSetModelAction) action);
-            }
-            break;
-        default:
-            result = this.defaultCase(action);
-        }
-        return result;
-    }
-
-    /**
-     * Handles the {@link SiriusDiagramExecuteNodeCreationToolAction}.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T caseExecuteNodeCreationToolAction(SiriusDiagramExecuteNodeCreationToolAction action) {
-        return this.getDefaultValue();
-    }
-
-    /**
-     * Handles the {@link SiriusDiagramRequestModelAction}.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T caseRequestModelAction(SiriusDiagramRequestModelAction action) {
-        return this.getDefaultValue();
-    }
-
-    /**
-     * Handles the {@link SiriusDiagramRequestToolsAction}.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T caseRequestToolsAction(SiriusDiagramRequestToolsAction action) {
-        return this.getDefaultValue();
-    }
-
-    /**
-     * Handles the {@link SiriusDiagramSetModelAction}.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T caseSetModelAction(SiriusDiagramSetModelAction action) {
-        return this.getDefaultValue();
-    }
-
-    /**
-     * Handles the default case.
-     *
-     * @param action
-     *            The action
-     * @return The expected result
-     */
-    public T defaultCase(AbstractSiriusDiagramAction action) {
-        return this.getDefaultValue();
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramExecuteNodeCreationToolActionHandler.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramExecuteNodeCreationToolActionHandler.java
deleted file mode 100644
index 1b42fd2..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramExecuteNodeCreationToolActionHandler.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.diagram.description.DiagramDescription;
-import org.eclipse.sirius.diagram.description.tool.ContainerCreationDescription;
-import org.eclipse.sirius.diagram.description.tool.NodeCreationDescription;
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramExecuteNodeCreationToolAction;
-import org.eclipse.sirius.viewpoint.description.tool.AbstractToolDescription;
-import org.eclipse.sirius.viewpoint.description.tool.ModelOperation;
-
-/**
- * Handler for the {@link SiriusDiagramExecuteNodeCreationToolAction}.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramExecuteNodeCreationToolActionHandler implements ISiriusDiagramActionHandler {
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#canHandle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public boolean canHandle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        return action instanceof SiriusDiagramExecuteNodeCreationToolAction;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#handle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public void handle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        if (action instanceof SiriusDiagramExecuteNodeCreationToolAction) {
-            SiriusDiagramExecuteNodeCreationToolAction executeNodeCreationToolAction = (SiriusDiagramExecuteNodeCreationToolAction) action;
-
-            // @formatter:off
-            DiagramDescription diagramDescription = diagramService.getDDiagram().getDescription();
-            Optional<AbstractToolDescription> optionalTool = diagramDescription.getAllTools().stream()
-                    .filter(tool -> tool.getName().equals(executeNodeCreationToolAction.getIdentifier()))
-                    .findFirst();
-            // @formatter:on
-
-            Optional<ModelOperation> optionalModelOperation = optionalTool.flatMap(this::getFirstModelOperation);
-            System.out.println("Executing the model operation " + optionalModelOperation.toString()); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Returns the model operation of the given tool description if it is a node
-     * creation or a container creation description.
-     *
-     * @param toolDescription
-     *            The tool description
-     * @return The first model operation of the tool description if it is a node
-     *         creation or a container creation description
-     */
-    private Optional<ModelOperation> getFirstModelOperation(AbstractToolDescription toolDescription) {
-        Optional<ModelOperation> optionalModelOperation = Optional.empty();
-        if (toolDescription instanceof NodeCreationDescription) {
-            NodeCreationDescription nodeCreationDescription = (NodeCreationDescription) toolDescription;
-            optionalModelOperation = Optional.ofNullable(nodeCreationDescription.getInitialOperation().getFirstModelOperations());
-        } else if (toolDescription instanceof ContainerCreationDescription) {
-            ContainerCreationDescription containerCreationDescription = (ContainerCreationDescription) toolDescription;
-            optionalModelOperation = Optional.ofNullable(containerCreationDescription.getInitialOperation().getFirstModelOperations());
-        }
-        return optionalModelOperation;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestModelActionHandler.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestModelActionHandler.java
deleted file mode 100644
index a107e71..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestModelActionHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestModelAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramSetModelAction;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagram;
-import org.eclipse.sirius.services.diagram.internal.converter.SiriusDiagramConverter;
-
-/**
- * Handler of the {@link SiriusDiagramRequestModelAction}.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramRequestModelActionHandler implements ISiriusDiagramActionHandler {
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#canHandle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public boolean canHandle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        return action instanceof SiriusDiagramRequestModelAction;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#handle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public void handle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        DDiagram dDiagram = diagramService.getDDiagram();
-
-        SiriusDiagramConverter diagramConverter = new SiriusDiagramConverter(dDiagram);
-        SiriusDiagram siriusDiagram = diagramConverter.convert();
-
-        SiriusDiagramMessage message = new SiriusDiagramMessage();
-        message.setAction(new SiriusDiagramSetModelAction(siriusDiagram));
-        diagramService.dispatch(message);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestToolsActionHandler.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestToolsActionHandler.java
deleted file mode 100644
index 81574bb..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/actions/SiriusDiagramRequestToolsActionHandler.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.actions;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.description.Layer;
-import org.eclipse.sirius.diagram.description.tool.ContainerCreationDescription;
-import org.eclipse.sirius.diagram.description.tool.NodeCreationDescription;
-import org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramMessage;
-import org.eclipse.sirius.services.diagram.api.SiriusDiagramService;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramRequestToolsAction;
-import org.eclipse.sirius.services.diagram.api.actions.SiriusDiagramSetToolsAction;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramTool;
-import org.eclipse.sirius.viewpoint.description.tool.AbstractToolDescription;
-
-/**
- * Handler for the {@link SiriusDiagramRequestToolsAction}.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramRequestToolsActionHandler implements ISiriusDiagramActionHandler {
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#canHandle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public boolean canHandle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        return action instanceof SiriusDiagramRequestToolsAction;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.actions.ISiriusDiagramActionHandler#handle(org.eclipse.sirius.services.diagram.api.SiriusDiagramService,
-     *      org.eclipse.sirius.services.diagram.api.AbstractSiriusDiagramAction)
-     */
-    @Override
-    public void handle(SiriusDiagramService diagramService, AbstractSiriusDiagramAction action) {
-        DDiagram dDiagram = diagramService.getDDiagram();
-
-        // @formatter:off
-        List<SiriusDiagramTool> tools = dDiagram.getActivatedLayers().stream()
-                .map(Layer::getAllTools)
-                .flatMap(List::stream)
-                .map(this::createDiagramTool)
-                .collect(Collectors.toList());
-        // @formatter:on
-
-        SiriusDiagramMessage message = new SiriusDiagramMessage();
-        message.setAction(new SiriusDiagramSetToolsAction(tools));
-        diagramService.dispatch(message);
-    }
-
-    /**
-     * Creates a diagram tool from the given tool.
-     *
-     * @param toolDescription
-     *            The tool
-     * @return A diagram tool from the given tool
-     */
-    private SiriusDiagramTool createDiagramTool(AbstractToolDescription toolDescription) {
-        String type = this.getType(toolDescription);
-        return new SiriusDiagramTool(toolDescription.getName(), toolDescription.getLabel(), type);
-    }
-
-    /**
-     * Returns the type of the given tool.
-     *
-     * @param toolDescription
-     *            The tool
-     * @return The type of the given tool
-     */
-    private String getType(AbstractToolDescription toolDescription) {
-        String type = SiriusDiagramTool.NODE_CREATION_TYPE;
-        if (toolDescription instanceof ContainerCreationDescription || toolDescription instanceof NodeCreationDescription) {
-            type = SiriusDiagramTool.NODE_CREATION_TYPE;
-        }
-        return type;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/AbstractSiriusDiagramNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/AbstractSiriusDiagramNodeConverter.java
deleted file mode 100644
index de7b59b..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/AbstractSiriusDiagramNodeConverter.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.BorderedStyle;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramLabel;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-import org.eclipse.sirius.services.diagram.internal.SiriusDiagramPlugin;
-import org.eclipse.sirius.viewpoint.BasicLabelStyle;
-
-/**
- * Common suprtclass of the AbstractDNode converters.
- *
- * @author sbegaudeau
- */
-public abstract class AbstractSiriusDiagramNodeConverter implements ISiriusDiagramElementConverter {
-
-    /**
-     * Returns the AbstractDNode to convert.
-     *
-     * @return The AbstractDNode to convert
-     */
-    protected abstract AbstractDNode getDNode();
-
-    /**
-     * Returns the identifier.
-     *
-     * @return The identifier
-     */
-    protected String getIdentifier() {
-        return EcoreUtil.getURI(this.getDNode()).toString();
-    }
-
-    /**
-     * Returns the identifier of the semantic element.
-     *
-     * @return The identifier of the semantic element
-     */
-    protected String getSemanticElementIdentifier() {
-        return EcoreUtil.getURI(this.getDNode().getTarget()).toString();
-    }
-
-    /**
-     * Returns the label.
-     *
-     * @param identifier
-     *            The identifier
-     * @param style
-     *            The style
-     * @return The label
-     */
-    protected SiriusDiagramLabel getLabel(String identifier, BasicLabelStyle style) {
-        SiriusDiagramRGBColor labelColor = SiriusDiagramColorConverter.convert(style.getLabelColor());
-        return new SiriusDiagramLabel(identifier + SiriusDiagramLabel.LABEL_SUFFIX, this.getDNode().getName(), labelColor);
-    }
-
-    /**
-     * Returns the border color.
-     *
-     * @param style
-     *            The style
-     * @return The border color
-     */
-    protected SiriusDiagramRGBColor getBorderColor(BorderedStyle style) {
-        return SiriusDiagramColorConverter.convert(style.getBorderColor());
-    }
-
-    /**
-     * Returns the border size.
-     *
-     * @param style
-     *            The style
-     * @return The border size
-     */
-    protected int getBorderSize(BorderedStyle style) {
-        return Optional.ofNullable(style.getBorderSize()).orElse(Integer.valueOf(1)).intValue();
-    }
-
-    /**
-     * Returns the ports.
-     *
-     * @return The ports
-     */
-    protected List<AbstractSiriusDiagramElement> getPorts() {
-        // @formatter:off
-        return this.getDNode().getOwnedBorderedNodes().stream()
-                .map(new SiriusDiagramElementSwitch()::doSwitch)
-                .map(ISiriusDiagramElementConverter::convert)
-                .filter(Optional::isPresent)
-                .map(Optional::get)
-                .collect(Collectors.toList());
-        // @formatter:on
-    }
-
-    /**
-     * Returns the path of the image.
-     *
-     * @return The path of the image
-     */
-    protected String getImagePath() {
-        // @formatter:off
-        return SiriusDiagramPlugin.getPlugin().getImagePathProvider()
-                    .flatMap(provider -> provider.getLabelProviderImagePath(this.getDNode().getTarget()))
-                    .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/ISiriusDiagramElementConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/ISiriusDiagramElementConverter.java
deleted file mode 100644
index 15fcff8..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/ISiriusDiagramElementConverter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-
-/**
- * Used to convert diagram elements.
- *
- * @author sbegaudeau
- */
-public interface ISiriusDiagramElementConverter {
-    /**
-     * Converts the diagram element.
-     *
-     * @return The diagram element converted
-     */
-    Optional<AbstractSiriusDiagramElement> convert();
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramColorConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramColorConverter.java
deleted file mode 100644
index 3d94bac..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramColorConverter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-import org.eclipse.sirius.viewpoint.RGBValues;
-
-/**
- * Utility class used to transform RGB values.
- *
- * @author sbegaudeau
- */
-public final class SiriusDiagramColorConverter {
-    /**
-     * The default color.
-     */
-    public static final SiriusDiagramRGBColor DEFAULT_COLOR = new SiriusDiagramRGBColor(0, 0, 0);
-
-    /**
-     * The constructor.
-     */
-    private SiriusDiagramColorConverter() {
-        // To prevent instantiation
-    }
-
-    /**
-     * Converts the given RGB values object.
-     *
-     * @param rgbValues
-     *            The RGB values
-     * @return The converted color
-     */
-    public static SiriusDiagramRGBColor convert(RGBValues rgbValues) {
-        return new SiriusDiagramRGBColor(rgbValues.getRed(), rgbValues.getGreen(), rgbValues.getBlue());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramConverter.java
deleted file mode 100644
index d93340d..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramConverter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagram;
-
-/**
- * The converter is responsible for the transformation of the elements of the
- * Sirius DDiagram into SiriusDiagram.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramConverter {
-    /**
-     * The Sirius diagram to convert.
-     */
-    private DDiagram dDiagram;
-
-    /**
-     * The constructor.
-     *
-     * @param dDiagram
-     *            The diagram to convert
-     */
-    public SiriusDiagramConverter(DDiagram dDiagram) {
-        this.dDiagram = Objects.requireNonNull(dDiagram);
-    }
-
-    /**
-     * Computes the SiriusDiagram from the DDiagram.
-     *
-     * @return The SiriusDiagram created
-     */
-    public SiriusDiagram convert() {
-        SiriusDiagram siriusDiagram = new SiriusDiagram(this.dDiagram.getUid());
-
-        // @formatter:off
-        this.dDiagram.getOwnedDiagramElements().stream()
-            .filter(DDiagramElement::isVisible)
-            .map(new SiriusDiagramElementSwitch()::doSwitch)
-            .map(ISiriusDiagramElementConverter::convert)
-            .filter(Optional::isPresent)
-            .map(Optional::get)
-            .forEach(siriusDiagram.getChildren()::add);
-        // @formatter:on
-
-        return siriusDiagram;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramEdgeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramEdgeConverter.java
deleted file mode 100644
index c80d493..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramEdgeConverter.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.diagram.DEdge;
-import org.eclipse.sirius.diagram.EdgeArrows;
-import org.eclipse.sirius.diagram.EdgeStyle;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramEdge;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramEdgeArrowStyle;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramEdgeLineStyle;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramLabel;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-import org.eclipse.sirius.viewpoint.BasicLabelStyle;
-
-/**
- * The DEdge converter.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramEdgeConverter implements ISiriusDiagramElementConverter {
-
-    /**
-     * The DEdge.
-     */
-    private DEdge dEdge;
-
-    /**
-     * The constructor.
-     *
-     * @param dEdge
-     *            The DEdge
-     */
-    public SiriusDiagramEdgeConverter(DEdge dEdge) {
-        this.dEdge = dEdge;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.diagram.internal.converter.ISiriusDiagramElementConverter#convert()
-     */
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<EdgeStyle> optionalStyle = Optional.of(this.dEdge.getStyle())
-                .filter(EdgeStyle.class::isInstance)
-                .map(EdgeStyle.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramEdge.newEdge(identifier, this.getSourceId(), this.getTargetId())
-                    .color(this.getColor(style))
-                    .size(this.getSize(style))
-                    .lineStyle(this.getLineStyle(style))
-                    .sourceArrowStyle(this.getArrowStyle(style.getSourceArrow()))
-                    .targetArrowStyle(this.getArrowStyle(style.getTargetArrow()))
-                    .label(this.getLabel(identifier, style.getCenterLabelStyle()))
-                    .build();
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the identifier.
-     *
-     * @return The identifier
-     */
-    private String getIdentifier() {
-        return EcoreUtil.getURI(this.dEdge).toString();
-    }
-
-    /**
-     * Returns the identifier of the source of the edge.
-     *
-     * @return The identifier of the source of the edge
-     */
-    private String getSourceId() {
-        return EcoreUtil.getURI(this.dEdge.getSourceNode()).toString();
-    }
-
-    /**
-     * Returns the identifier of the target of the edge.
-     *
-     * @return The identifier of the target of the edge
-     */
-    private String getTargetId() {
-        return EcoreUtil.getURI(this.dEdge.getTargetNode()).toString();
-    }
-
-    /**
-     * Returns the color of the edge.
-     *
-     * @param style
-     *            The style
-     * @return The color of the edge
-     */
-    private SiriusDiagramRGBColor getColor(EdgeStyle style) {
-        return SiriusDiagramColorConverter.convert(style.getStrokeColor());
-    }
-
-    /**
-     * Returns the size of the edge.
-     *
-     * @param style
-     *            The style
-     * @return The size of the edge
-     */
-    private int getSize(EdgeStyle style) {
-        return Optional.ofNullable(style.getSize()).orElse(Integer.valueOf(1)).intValue();
-    }
-
-    /**
-     * Returns the label.
-     *
-     * @param identifier
-     *            The identifier
-     * @param style
-     *            The style
-     * @return The label
-     */
-    private SiriusDiagramLabel getLabel(String identifier, BasicLabelStyle style) {
-        SiriusDiagramRGBColor labelColor = SiriusDiagramColorConverter.convert(style.getLabelColor());
-        return new SiriusDiagramLabel(identifier + SiriusDiagramLabel.LABEL_SUFFIX, this.dEdge.getName(), labelColor);
-    }
-
-    /**
-     * Converts the Sirius line style.
-     *
-     * @param lineStyle
-     *            The line style
-     * @return The converted Sirius line style
-     */
-    private SiriusDiagramEdgeLineStyle getLineStyle(EdgeStyle style) {
-        SiriusDiagramEdgeLineStyle diagramEdgeLineStyle = SiriusDiagramEdgeLineStyle.SOLID;
-        switch (style.getLineStyle()) {
-        case SOLID_LITERAL:
-            diagramEdgeLineStyle = SiriusDiagramEdgeLineStyle.SOLID;
-            break;
-        case DASH_DOT_LITERAL:
-            diagramEdgeLineStyle = SiriusDiagramEdgeLineStyle.DASH_DOT;
-            break;
-        case DASH_LITERAL:
-            diagramEdgeLineStyle = SiriusDiagramEdgeLineStyle.DASH;
-            break;
-        case DOT_LITERAL:
-            diagramEdgeLineStyle = SiriusDiagramEdgeLineStyle.DOT;
-            break;
-        default:
-            break;
-        }
-        return diagramEdgeLineStyle;
-    }
-
-    /**
-     * Converts the style of the arrow.
-     *
-     * @param arrowStyle
-     *            The style of the arrow
-     * @return The converted style of the arrow
-     */
-    private SiriusDiagramEdgeArrowStyle getArrowStyle(EdgeArrows arrowStyle) {
-        SiriusDiagramEdgeArrowStyle diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.NO_DECORATION;
-        switch (arrowStyle) {
-        case DIAMOND_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.DIAMOND;
-            break;
-        case FILL_DIAMOND_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.FILL_DIAMOND;
-            break;
-        case INPUT_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.INPUT_ARROW;
-            break;
-        case INPUT_ARROW_WITH_DIAMOND_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.INPUT_ARROW_WITH_DIAMOND;
-            break;
-        case INPUT_ARROW_WITH_FILL_DIAMOND_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.INPUT_ARROW_WITH_FILL_DIAMOND;
-            break;
-        case INPUT_CLOSED_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.INPUT_CLOSED_ARROW;
-            break;
-        case INPUT_FILL_CLOSED_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.INPUT_FILL_CLOSED_ARROW;
-            break;
-        case NO_DECORATION_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.NO_DECORATION;
-            break;
-        case OUTPUT_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.OUTPUT_ARROW;
-            break;
-        case OUTPUT_CLOSED_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.OUTPUT_CLOSED_ARROW;
-            break;
-        case OUTPUT_FILL_CLOSED_ARROW_LITERAL:
-            diagramEdgeArrowStyle = SiriusDiagramEdgeArrowStyle.OUTPUT_FILL_CLOSED_ARROW;
-            break;
-        default:
-            break;
-        }
-        return diagramEdgeArrowStyle;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramElementSwitch.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramElementSwitch.java
deleted file mode 100644
index ed7e2ee..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramElementSwitch.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DEdge;
-import org.eclipse.sirius.diagram.DNode;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.DNodeList;
-import org.eclipse.sirius.diagram.DNodeListElement;
-import org.eclipse.sirius.diagram.DiagramPackage;
-import org.eclipse.sirius.diagram.FlatContainerStyle;
-import org.eclipse.sirius.diagram.Square;
-import org.eclipse.sirius.diagram.WorkspaceImage;
-import org.eclipse.sirius.viewpoint.Style;
-
-/**
- * Switch used to compute the converter of a given diagram element.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramElementSwitch {
-    /**
-     * Returns the default value of the switch.
-     *
-     * @return The default value
-     */
-    protected ISiriusDiagramElementConverter getDefaultValue() {
-        return null;
-    }
-
-    /**
-     * Returns the converter for the given diagram element.
-     *
-     * @param dDiagramElement
-     *            The diagram element to convert
-     * @return The converter used to handle the given diagram element
-     */
-    public ISiriusDiagramElementConverter doSwitch(DDiagramElement dDiagramElement) {
-        ISiriusDiagramElementConverter result = this.getDefaultValue();
-
-        switch (dDiagramElement.eClass().getClassifierID()) {
-        case DiagramPackage.DNODE:
-            if (dDiagramElement instanceof DNode) {
-                result = this.caseDNode((DNode) dDiagramElement);
-            }
-            break;
-        case DiagramPackage.DNODE_CONTAINER:
-            if (dDiagramElement instanceof DNodeContainer) {
-                result = this.caseDNodeContainer((DNodeContainer) dDiagramElement);
-            }
-            break;
-        case DiagramPackage.DNODE_LIST:
-            if (dDiagramElement instanceof DNodeList) {
-                result = this.caseDNodeList((DNodeList) dDiagramElement);
-            }
-            break;
-        case DiagramPackage.DNODE_LIST_ELEMENT:
-            if (dDiagramElement instanceof DNodeListElement) {
-                result = this.caseDNodeListElement((DNodeListElement) dDiagramElement);
-            }
-            break;
-        case DiagramPackage.DEDGE:
-            if (dDiagramElement instanceof DEdge) {
-                result = this.caseDEdge((DEdge) dDiagramElement);
-            }
-            break;
-        default:
-            result = this.getDefaultValue();
-            break;
-        }
-
-        return result;
-    }
-
-    /**
-     * Returns the converter for a DNode.
-     *
-     * @param dNode
-     *            The DNode
-     * @return The converter for a DNode
-     */
-    public ISiriusDiagramElementConverter caseDNode(DNode dNode) {
-        Style style = dNode.getStyle();
-        if (style instanceof WorkspaceImage) {
-            return new SiriusDiagramImageNodeConverter(dNode);
-        } else if (style instanceof Square) {
-            return new SiriusDiagramSquareNodeConverter(dNode);
-        }
-        throw new IllegalArgumentException(); // Not supported yet :)
-    }
-
-    /**
-     * Returns the converter for a DNodeContainer.
-     *
-     * @param dNodeContainer
-     *            The DNodeContainer
-     * @return The converter for a DNodeContainer
-     */
-    public ISiriusDiagramElementConverter caseDNodeContainer(DNodeContainer dNodeContainer) {
-        Style style = dNodeContainer.getStyle();
-        if (style instanceof FlatContainerStyle) {
-            return new SiriusDiagramGradientNodeConverter(dNodeContainer);
-        }
-        throw new IllegalArgumentException(); // Not supported yet :)
-    }
-
-    /**
-     * Returns the converter for a DNodeList.
-     *
-     * @param dNodeList
-     *            The DNodeList
-     * @return The converter for a DNodeList
-     */
-    public ISiriusDiagramElementConverter caseDNodeList(DNodeList dNodeList) {
-        return new SiriusDiagramListNodeConverter(dNodeList);
-    }
-
-    /**
-     * Returns the converter for a DNodeListElement.
-     *
-     * @param dNodeListElement
-     *            The DNodeListElement
-     * @return The converter for a DNodeListelement
-     */
-    public ISiriusDiagramElementConverter caseDNodeListElement(DNodeListElement dNodeListElement) {
-        return new SiriusDiagramListElementNodeConverter(dNodeListElement);
-    }
-
-    /**
-     * Returns the converter for a DEdge.
-     *
-     * @param dEdge
-     *            The DEdge
-     * @return The converter for a DEdge
-     */
-    public ISiriusDiagramElementConverter caseDEdge(DEdge dEdge) {
-        return new SiriusDiagramEdgeConverter(dEdge);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramGradientNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramGradientNodeConverter.java
deleted file mode 100644
index 7c89746..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramGradientNodeConverter.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.FlatContainerStyle;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramGradientNode;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-
-/**
- * The DNodeContainer converted.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramGradientNodeConverter extends AbstractSiriusDiagramNodeConverter {
-
-    /**
-     * The DNodeContainer.
-     */
-    private DNodeContainer dNodeContainer;
-
-    /**
-     * The constructor.
-     *
-     * @param dNodeContainer
-     *            The DNodeContainer
-     */
-    public SiriusDiagramGradientNodeConverter(DNodeContainer dNodeContainer) {
-        this.dNodeContainer = dNodeContainer;
-    }
-
-    @Override
-    protected AbstractDNode getDNode() {
-        return this.dNodeContainer;
-    }
-
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<FlatContainerStyle> optionalStyle = Optional.of(this.dNodeContainer.getStyle())
-                .filter(FlatContainerStyle.class::isInstance)
-                .map(FlatContainerStyle.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramGradientNode.newGradientNode(identifier, this.getSemanticElementIdentifier())
-                    .backgroundColor(this.getBackgroundColor(style))
-                    .foregroundColor(this.getForegroundColor(style))
-                    .bordercolor(this.getBorderColor(style))
-                    .borderSize(this.getBorderSize(style))
-                    .label(this.getLabel(identifier, style))
-                    .imagePath(this.getImagePath())
-                    .ports(this.getPorts())
-                    .withChildren(this.getChildren())
-                    .build();
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the background color.
-     *
-     * @param style
-     *            The style
-     * @return The background color
-     */
-    private SiriusDiagramRGBColor getBackgroundColor(FlatContainerStyle style) {
-        return SiriusDiagramColorConverter.convert(style.getBackgroundColor());
-    }
-
-    /**
-     * Returns the foreground color.
-     *
-     * @param style
-     *            The style
-     * @return The foreground color
-     */
-    private SiriusDiagramRGBColor getForegroundColor(FlatContainerStyle style) {
-        return SiriusDiagramColorConverter.convert(style.getForegroundColor());
-    }
-
-    /**
-     * Returns the list of the children.
-     *
-     * @return The list of the children
-     */
-    private List<AbstractSiriusDiagramElement> getChildren() {
-        // @formatter:off
-        return this.dNodeContainer.getOwnedDiagramElements().stream()
-                .filter(DDiagramElement::isVisible)
-                .map(new SiriusDiagramElementSwitch()::doSwitch)
-                .map(ISiriusDiagramElementConverter::convert)
-                .filter(Optional::isPresent)
-                .map(Optional::get)
-                .collect(Collectors.toList());
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramImageNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramImageNodeConverter.java
deleted file mode 100644
index 5ab003d..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramImageNodeConverter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.DNode;
-import org.eclipse.sirius.diagram.WorkspaceImage;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramImageNode;
-import org.eclipse.sirius.services.diagram.internal.SiriusDiagramPlugin;
-
-/**
- * The converter used for DNodes with a WorkspaceImage style.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramImageNodeConverter extends AbstractSiriusDiagramNodeConverter {
-
-    /**
-     * The DNode.
-     */
-    private DNode dNode;
-
-    /**
-     * The constructor.
-     *
-     * @param dNode
-     *            The DNode
-     */
-    public SiriusDiagramImageNodeConverter(DNode dNode) {
-        this.dNode = dNode;
-    }
-
-    @Override
-    protected AbstractDNode getDNode() {
-        return this.dNode;
-    }
-
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<WorkspaceImage> optionalStyle = Optional.of(this.dNode.getStyle())
-                .filter(WorkspaceImage.class::isInstance)
-                .map(WorkspaceImage.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramImageNode.newImageNode(identifier, this.getSemanticElementIdentifier())
-                    .label(this.getLabel(identifier, style))
-                    .imagePath(this.getImagePath(style))
-                    .ports(this.getPorts())
-                    .build();
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the path of the image.
-     *
-     * @param style
-     *            The style
-     * @return The path of the image
-     */
-    private String getImagePath(WorkspaceImage style) {
-        // @formatter:off
-        return SiriusDiagramPlugin.getPlugin().getImagePathProvider()
-                    .flatMap(provider -> provider.getStaticImagePath(style))
-                    .orElse(null);
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListElementNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListElementNodeConverter.java
deleted file mode 100644
index cc2bc55..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListElementNodeConverter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.DNodeListElement;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramListElementNode;
-import org.eclipse.sirius.viewpoint.BasicLabelStyle;
-
-/**
- * The DNodeListElement converter.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramListElementNodeConverter extends AbstractSiriusDiagramNodeConverter {
-
-    /**
-     * The DNodeListElement.
-     */
-    private DNodeListElement dNodeListElement;
-
-    /**
-     * The constructor.
-     *
-     * @param dNodeListElement
-     *            The DNodeListElement
-     */
-    public SiriusDiagramListElementNodeConverter(DNodeListElement dNodeListElement) {
-        this.dNodeListElement = dNodeListElement;
-    }
-
-    @Override
-    protected AbstractDNode getDNode() {
-        return this.dNodeListElement;
-    }
-
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<BasicLabelStyle> optionalStyle = Optional.of(this.dNodeListElement.getStyle())
-                .filter(BasicLabelStyle.class::isInstance)
-                .map(BasicLabelStyle.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramListElementNode.newListElementNode(identifier, this.getSemanticElementIdentifier())
-                    .label(this.getLabel(identifier, style))
-                    .imagePath(this.getImagePath())
-                    .build();
-        });
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListNodeConverter.java
deleted file mode 100644
index eb47ed8..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramListNodeConverter.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DNodeList;
-import org.eclipse.sirius.diagram.FlatContainerStyle;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramListNode;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-
-/**
- * The DNodeList converter.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramListNodeConverter extends AbstractSiriusDiagramNodeConverter {
-
-    /**
-     * The DNodeList.
-     */
-    private DNodeList dNodeList;
-
-    /**
-     * The constructor.
-     *
-     * @param dNodeList
-     *            The DNodeList
-     */
-    public SiriusDiagramListNodeConverter(DNodeList dNodeList) {
-        this.dNodeList = dNodeList;
-    }
-
-    @Override
-    protected AbstractDNode getDNode() {
-        return this.dNodeList;
-    }
-
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<FlatContainerStyle> optionalStyle = Optional.of(this.dNodeList.getStyle())
-                .filter(FlatContainerStyle.class::isInstance)
-                .map(FlatContainerStyle.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramListNode.newListNode(identifier, this.getSemanticElementIdentifier())
-                    .backgroundColor(this.getBackgroundColor(style))
-                    .bordercolor(this.getBorderColor(style))
-                    .borderSize(this.getBorderSize(style))
-                    .label(this.getLabel(identifier, style))
-                    .imagePath(this.getImagePath())
-                    .ports(this.getPorts())
-                    .withChildren(this.getChildren())
-                    .build();
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the background color.
-     *
-     * @param style
-     *            The style
-     * @return The background color
-     */
-    private SiriusDiagramRGBColor getBackgroundColor(FlatContainerStyle style) {
-        return SiriusDiagramColorConverter.convert(style.getBackgroundColor());
-    }
-
-    /**
-     * Returns the list of the children.
-     *
-     * @return The list of the children
-     */
-    private List<AbstractSiriusDiagramElement> getChildren() {
-        // @formatter:off
-        return this.dNodeList.getOwnedElements().stream()
-                .filter(DDiagramElement::isVisible)
-                .map(new SiriusDiagramElementSwitch()::doSwitch)
-                .map(ISiriusDiagramElementConverter::convert)
-                .filter(Optional::isPresent)
-                .map(Optional::get)
-                .collect(Collectors.toList());
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramSquareNodeConverter.java b/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramSquareNodeConverter.java
deleted file mode 100644
index dcd7bfc..0000000
--- a/plugins/org.eclipse.sirius.services.diagram/src/org/eclipse/sirius/services/diagram/internal/converter/SiriusDiagramSquareNodeConverter.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.diagram.internal.converter;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.sirius.diagram.AbstractDNode;
-import org.eclipse.sirius.diagram.DDiagramElement;
-import org.eclipse.sirius.diagram.DNodeContainer;
-import org.eclipse.sirius.diagram.Square;
-import org.eclipse.sirius.services.diagram.api.entities.AbstractSiriusDiagramElement;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramRGBColor;
-import org.eclipse.sirius.services.diagram.api.entities.SiriusDiagramSquareNode;
-
-/**
- * The DNode converter.
- *
- * @author sbegaudeau
- */
-public class SiriusDiagramSquareNodeConverter extends AbstractSiriusDiagramNodeConverter {
-
-    /**
-     * The AbstractDNode.
-     */
-    private AbstractDNode abstractDNode;
-
-    /**
-     * The constructor.
-     *
-     * @param abstractDNode
-     *            The AbstractDNode
-     */
-    public SiriusDiagramSquareNodeConverter(AbstractDNode abstractDNode) {
-        this.abstractDNode = abstractDNode;
-    }
-
-    @Override
-    protected AbstractDNode getDNode() {
-        return this.abstractDNode;
-    }
-
-    @Override
-    public Optional<AbstractSiriusDiagramElement> convert() {
-        // @formatter:off
-        Optional<Square> optionalStyle = Optional.of(this.abstractDNode.getStyle())
-                .filter(Square.class::isInstance)
-                .map(Square.class::cast);
-
-        return optionalStyle.map(style -> {
-            String identifier = this.getIdentifier();
-
-            return SiriusDiagramSquareNode.newSquareNode(identifier, this.getSemanticElementIdentifier())
-                    .color(this.getColor(style))
-                    .bordercolor(this.getBorderColor(style))
-                    .borderSize(this.getBorderSize(style))
-                    .label(this.getLabel(identifier, style))
-                    .imagePath(this.getImagePath())
-                    .ports(this.getPorts())
-                    .withChildren(this.getChildren())
-                    .build();
-        });
-        // @formatter:on
-    }
-
-    /**
-     * Returns the color.
-     *
-     * @param style
-     *            The style
-     * @return The color
-     */
-    private SiriusDiagramRGBColor getColor(Square style) {
-        return SiriusDiagramColorConverter.convert(style.getColor());
-    }
-
-    /**
-     * Returns the list of the children.
-     *
-     * @return The list of the children
-     */
-    private List<AbstractSiriusDiagramElement> getChildren() {
-        // @formatter:off
-        List<DDiagramElement> ownedElements = Optional.of(this.abstractDNode).filter(DNodeContainer.class::isInstance)
-            .map(DNodeContainer.class::cast)
-            .map(DNodeContainer::getOwnedDiagramElements)
-            .orElseGet(BasicEList::new);
-
-        return ownedElements.stream()
-                .filter(DDiagramElement::isVisible)
-                .map(new SiriusDiagramElementSwitch()::doSwitch)
-                .map(ISiriusDiagramElementConverter::convert)
-                .filter(Optional::isPresent)
-                .map(Optional::get)
-                .collect(Collectors.toList());
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.checkstyle b/plugins/org.eclipse.sirius.services.graphql.common/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.classpath b/plugins/org.eclipse.sirius.services.graphql.common/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.project b/plugins/org.eclipse.sirius.services.graphql.common/.project
deleted file mode 100644
index 6818ab1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.graphql.common</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.graphql.common/META-INF/MANIFEST.MF
deleted file mode 100644
index d0a39c9..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.graphql.common;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.services.graphql.common
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
-Export-Package: org.eclipse.sirius.services.graphql.common.api;version="6.2.1",
- org.eclipse.sirius.services.graphql.common.api.directives;version="6.2.1",
- org.eclipse.sirius.services.graphql.common.api.pagination;version="6.2.1",
- org.eclipse.sirius.services.graphql.common.internal;version="6.2.1";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.equinox.registry;bundle-version="3.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.sirius.ext.base;bundle-version="6.2.1",
- org.eclipse.sirius.ext.ide;bundle-version="6.2.1"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLCommonPlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/about.html b/plugins/org.eclipse.sirius.services.graphql.common/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/build.properties b/plugins/org.eclipse.sirius.services.graphql.common/build.properties
deleted file mode 100644
index fa30bed..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               schema/
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/plugin.properties b/plugins/org.eclipse.sirius.services.graphql.common/plugin.properties
deleted file mode 100644
index d6fedfb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL Common
-providerName = Eclipse Modeling Project
-
-SiriusGraphQLSchemaCustomizer_name=Sirius GraphQL Schema Customizer
-SiriusGraphQLPaginationDataFetcher_invalidArguments = The pagination requires either forward (first, after) or backward (last, before) pagination arguments. \
-The arguments after and before can be null but must be explicitly specified.
-SiriusGraphQLContext_requestTooExpensive = This request is too expensive: {0}pts ({1}pts max)
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/plugin.xml b/plugins/org.eclipse.sirius.services.graphql.common/plugin.xml
deleted file mode 100644
index 4f5d8dd3..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/plugin.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension-point id="siriusGraphqlSchemaCustomizer" name="%SiriusGraphQLSchemaCustomizer_name" schema="schema/siriusGraphqlSchemaCustomizer.exsd"/>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/pom.xml b/plugins/org.eclipse.sirius.services.graphql.common/pom.xml
deleted file mode 100644
index 76365e0..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2019 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.graphql.common</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/schema/siriusGraphqlSchemaCustomizer.exsd b/plugins/org.eclipse.sirius.services.graphql.common/schema/siriusGraphqlSchemaCustomizer.exsd
deleted file mode 100644
index 1c73908..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/schema/siriusGraphqlSchemaCustomizer.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.sirius.services.graphql.common" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.sirius.services.graphql.common" id="siriusGraphqlSchemaCustomizer" name="%SiriusGraphQLSchemaCustomizer_name"/>
-      </appinfo>
-      <documentation>
-         This extension point allows to provide a custom implementation of the &lt;code&gt;org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer&lt;/code&gt; to contribute to the GraphQL schema.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="descriptor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="descriptor">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="label" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         6.2.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         Have a look at the following plugins &lt;code&gt;org.eclipse.sirius.services.graphql.core&lt;/code&gt;, &lt;code&gt;org.eclipse.sirius.services.graphql.emf&lt;/code&gt;, &lt;code&gt;org.eclipse.sirius.services.graphql.workspace&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2019 Obeo&lt;br/&gt;
-
- This program and the accompanying materials
-are made available under the terms of the Eclipse Public License 2.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
-
-SPDX-License-Identifier: EPL-2.0
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaCustomizer.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaCustomizer.java
deleted file mode 100644
index f3dad6b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaCustomizer.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import java.util.function.Function;
-
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * The GraphQL schema customizer is used to customize a GraphQL schema.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLSchemaCustomizer {
-    /**
-     * Returns the identifier of the schema customizer.
-     * 
-     * @return The identifier of the schema customizer
-     */
-    String getIdentifier();
-
-    /**
-     * Customize the given GraphQL schema builder.
-     * 
-     * @param graphQLSchemaBuilder
-     *            The GraphQL schema builder
-     * @param typeFilter
-     *            A function used to filter the types to be contributed to the schema builder
-     * @param graphQLTypeCustomizer
-     *            Used to customize the type to be added to the schema builder
-     * @return The given GraphQL schema builder
-     */
-    Builder customize(Builder graphQLSchemaBuilder, Function<GraphQLType, SiriusGraphQLFilterStatus> typeFilter, ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer);
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaRegistry.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaRegistry.java
deleted file mode 100644
index 6c5e576..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLSchemaRegistry.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import java.util.Collection;
-import java.util.Optional;
-
-/**
- * The GraphQL schema registry is used to retrieve all the GraphQL schema customizer registered.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLSchemaRegistry {
-    /**
-     * Returns an optional containing the GraphQL schema customizer for the given identifier or an empty optional if
-     * none was registered.
-     * 
-     * @param identifier
-     *            The identifier
-     * @return The optional containing the GraphQL schema customizer
-     */
-    Optional<ISiriusGraphQLSchemaCustomizer> get(String identifier);
-
-    /**
-     * Returns the collection of all the GraphQL schema customizer.
-     * 
-     * @return The collection of all the GraphQL schema customizer.
-     */
-    Collection<ISiriusGraphQLSchemaCustomizer> values();
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeCustomizer.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeCustomizer.java
deleted file mode 100644
index e569874..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeCustomizer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import graphql.schema.GraphQLEnumType;
-import graphql.schema.GraphQLInputObjectType;
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLUnionType;
-
-/**
- * Interface used to customize any GraphQL type builder.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLTypeCustomizer {
-
-    /**
-     * Allows the customization of the given type builder.
-     * 
-     * @param name
-     *            The name of the type
-     * @param objectTypeBuilder
-     *            The object type builder
-     * @return The given object type builder
-     */
-    default GraphQLObjectType.Builder customize(String name, GraphQLObjectType.Builder objectTypeBuilder) {
-        return objectTypeBuilder;
-    }
-
-    /**
-     * Allows the customization of the given type builder.
-     * 
-     * @param name
-     *            The name of the type
-     * @param interfaceTypeBuilder
-     *            The interface type builder
-     * @return The given interface type builder
-     */
-    default GraphQLInterfaceType.Builder customize(String name, GraphQLInterfaceType.Builder interfaceTypeBuilder) {
-        return interfaceTypeBuilder;
-    }
-
-    /**
-     * Allows the customization of the given type builder.
-     * 
-     * @param name
-     *            The name of the type
-     * @param unionTypeBuilder
-     *            The union type builder
-     * @return The given union type builder
-     */
-    default GraphQLUnionType.Builder customize(String name, GraphQLUnionType.Builder unionTypeBuilder) {
-        return unionTypeBuilder;
-    }
-
-    /**
-     * Allows the customization of the given type builder.
-     * 
-     * @param name
-     *            The name of the type
-     * @param enumTypeBuilder
-     *            The enum type builder
-     * @return The given enum type builder
-     */
-    default GraphQLEnumType.Builder customize(String name, GraphQLEnumType.Builder enumTypeBuilder) {
-        return enumTypeBuilder;
-    }
-
-    /**
-     * Allows the customization of the given type builder.
-     * 
-     * @param name
-     *            The name of the type
-     * @param inputObjectTypeBuilder
-     *            The input object type builder
-     * @return The given input object type builder
-     */
-    default GraphQLInputObjectType.Builder customize(String name, GraphQLInputObjectType.Builder inputObjectTypeBuilder) {
-        return inputObjectTypeBuilder;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeProvider.java
deleted file mode 100644
index b4aa2e6..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypeProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import graphql.schema.GraphQLType;
-
-/**
- * Common interfaces of the type builders.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLTypeProvider {
-    /**
-     * Creates the GraphQL type.
-     * 
-     * @param customizer
-     *            Used to customize the creation of the type
-     * @return The created type
-     */
-    GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer);
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypesProvider.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypesProvider.java
deleted file mode 100644
index 172dfde..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/ISiriusGraphQLTypesProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import java.util.Set;
-
-import graphql.schema.GraphQLType;
-
-/**
- * Common interfaces of the types builders.
- * 
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLTypesProvider {
-    /**
-     * Creates the GraphQL types.
-     * 
-     * @param customizer
-     *            Used to customize the creation of the types
-     * @return The created types
-     */
-    Set<GraphQLType> getTypes(ISiriusGraphQLTypeCustomizer customizer);
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLCommonPlugin.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLCommonPlugin.java
deleted file mode 100644
index 6d5f9ad..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLCommonPlugin.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.sirius.ext.ide.api.AbstractRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.DescriptorRegistryEventListener;
-import org.eclipse.sirius.ext.ide.api.IItemDescriptor;
-import org.eclipse.sirius.ext.ide.api.IItemRegistry;
-import org.eclipse.sirius.ext.ide.api.ItemRegistry;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius GraphQL Common plugin.
- * 
- * @author sbegaudeau
- */
-public final class SiriusGraphQLCommonPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.services.graphql.common"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusGraphQLCommonPlugin INSTANCE = new SiriusGraphQLCommonPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLCommonPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The name of the sirius GraphQL schema customizer extension point.
-         */
-        private static final String SIRIUS_GRAPHQL_SCHEMA_CUSTOMIZER = "siriusGraphqlSchemaCustomizer"; //$NON-NLS-1$
-
-        /**
-         * The {@link IItemRegistry} used to retrieve the customizers.
-         */
-        private IItemRegistry<ISiriusGraphQLSchemaCustomizer> customizerRegistry;
-
-        /**
-         * The extension registry listener for the customizers.
-         */
-        private AbstractRegistryEventListener customizerListener;
-
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusGraphQLCommonPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-
-            this.customizerRegistry = new ItemRegistry<>();
-            this.customizerListener = new DescriptorRegistryEventListener<>(PLUGIN_ID, SIRIUS_GRAPHQL_SCHEMA_CUSTOMIZER, this.customizerRegistry);
-            extensionRegistry.addListener(this.customizerListener, PLUGIN_ID + '.' + SIRIUS_GRAPHQL_SCHEMA_CUSTOMIZER);
-            this.customizerListener.readRegistry(extensionRegistry);
-
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-            extensionRegistry.removeListener(this.customizerListener);
-
-            this.customizerListener = null;
-            this.customizerRegistry = null;
-
-            super.stop(context);
-        }
-
-        /**
-         * Returns the list of the {@link ISiriusGraphQLSchemaCustomizer}.
-         * 
-         * @return The list of the {@link ISiriusGraphQLSchemaCustomizer}.
-         */
-        public List<ISiriusGraphQLSchemaCustomizer> getGraphQLSchemaCustomizers() {
-            // @formatter:off
-            return this.customizerRegistry.getItemDescriptors().stream()
-                    .map(IItemDescriptor::getItem)
-                    .collect(Collectors.toList());
-            // @formatter:on
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLContext.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLContext.java
deleted file mode 100644
index 3d7b4c0..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLContext.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-import java.text.MessageFormat;
-
-import org.eclipse.sirius.services.graphql.common.internal.SiriusGraphQLCommonMessages;
-
-/**
- * The context of the GraphQL requests.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLContext {
-
-    /**
-     * The current cost.
-     */
-    private int cost;
-
-    /**
-     * The maximal cost allowed.
-     */
-    private int maxCost;
-
-    /**
-     * The constructor.
-     *
-     * @param maxCost
-     *            The maximal cost allowed
-     */
-    public SiriusGraphQLContext(int maxCost) {
-        this.maxCost = maxCost;
-    }
-
-    /**
-     * Adds the new cost to the current cost.
-     *
-     * @param newCost
-     *            The new cost
-     */
-    public void add(int newCost) {
-        this.cost = this.cost + newCost;
-        if (this.cost > maxCost) {
-            String message = SiriusGraphQLCommonMessages.SiriusGraphQLContext_requestTooExpensive;
-            String formattedMessage = MessageFormat.format(message, this.cost, maxCost);
-            throw new IllegalArgumentException(formattedMessage);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLFilterStatus.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLFilterStatus.java
deleted file mode 100644
index 497af9a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/SiriusGraphQLFilterStatus.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api;
-
-/**
- * Filter status indicating if an element should be kept or rejected.
- * 
- * @author sbegaudeau
- */
-public enum SiriusGraphQLFilterStatus {
-    /**
-     * Indicate that the element will be used.
-     */
-    KEEP,
-    /**
-     * Indicate that the element will not be used.
-     */
-    REJECT
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/directives/SiriusGraphQLCostDirective.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/directives/SiriusGraphQLCostDirective.java
deleted file mode 100644
index e268e1d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/directives/SiriusGraphQLCostDirective.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.directives;
-
-import java.util.List;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLDirective;
-import graphql.schema.GraphQLList;
-
-/**
- * The cost directive.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLCostDirective {
-
-    /**
-     * The name of the directive.
-     */
-    public static final String COST = "cost"; //$NON-NLS-1$
-
-    /**
-     * The name of the complexity argument.
-     */
-    public static final String COMPLEXITY_ARG = "complexity"; //$NON-NLS-1$
-
-    /**
-     * The name of the multipliers argument.
-     */
-    public static final String MULTIPLIERS_ARG = "multipliers"; //$NON-NLS-1$
-
-    /**
-     * The complexity.
-     */
-    private int complexity;
-
-    /**
-     * The multipliers.
-     */
-    private List<String> multipliers;
-
-    /**
-     * The constructor.
-     *
-     * @param complexity
-     *            The complexity
-     * @param multipliers
-     *            The multipliers
-     */
-    public SiriusGraphQLCostDirective(int complexity, List<String> multipliers) {
-        this.complexity = complexity;
-        this.multipliers = multipliers;
-    }
-
-    /**
-     * Returns the cost directive.
-     *
-     * @return The cost directive
-     */
-    public GraphQLDirective build() {
-        // @formatter:off
-        return GraphQLDirective.newDirective()
-                .name(COST)
-                .argument(this.getComplexityArgument())
-                .argument(this.getMultipliersArgument())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the complexity argument.
-     *
-     * @return The complexity argument
-     */
-    private GraphQLArgument getComplexityArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(COMPLEXITY_ARG)
-                .type(Scalars.GraphQLInt)
-                .value(Integer.valueOf(this.complexity))
-                .defaultValue(Integer.valueOf(this.complexity))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the multipliers argument.
-     *
-     * @return The multipliers argument
-     */
-    private GraphQLArgument getMultipliersArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(MULTIPLIERS_ARG)
-                .type(new GraphQLList(Scalars.GraphQLString))
-                .value(this.multipliers)
-                .defaultValue(this.multipliers)
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/PageInfoTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/PageInfoTypeProvider.java
deleted file mode 100644
index d77aca7..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/PageInfoTypeProvider.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create PageInfo types for the GraphQL schema. See https://facebook.github.io/relay/graphql/connections.htm
- * for the specification.
- *
- * @author sbegaudeau
- */
-public class PageInfoTypeProvider implements ISiriusGraphQLTypeProvider {
-    /**
-     * The name of the PageInfo type.
-     */
-    public static final String PAGE_INFO_TYPE = "PageInfo"; //$NON-NLS-1$
-
-    /**
-     * The name of the hasPreviousPage field.
-     */
-    private static final String HAS_PREVIOUS_PAGE_FIELD = "hasPreviousPage"; //$NON-NLS-1$
-
-    /**
-     * The name of the hasNextPage field.
-     */
-    private static final String HAS_NEXT_PAGE_FIELD = "hasNextPage"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(PAGE_INFO_TYPE)
-                .field(this.getHasPreviousPageField())
-                .field(this.getHasNextPageField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(PAGE_INFO_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the hasPreviousPage field.
-     * 
-     * @return The hasPreviousPage field
-     */
-    private GraphQLFieldDefinition getHasPreviousPageField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(HAS_PREVIOUS_PAGE_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLBoolean))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the hasNextPage field.
-     * 
-     * @return The hasNextPage field
-     */
-    private GraphQLFieldDefinition getHasNextPageField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(HAS_NEXT_PAGE_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLBoolean))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnection.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnection.java
deleted file mode 100644
index 33f34d1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnection.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A Relay connection for the GraphQL API.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLConnection {
-    /**
-     * The total count.
-     */
-    private int totalCount;
-
-    /**
-     * The edges.
-     */
-    private List<SiriusGraphQLEdge> edges = new ArrayList<>();
-
-    /**
-     * The page info.
-     */
-    private SiriusGraphQLPageInfo pageInfo;
-
-    /**
-     * The constructor.
-     *
-     * @param totalCount
-     *            The total count
-     * @param edges
-     *            The edges
-     * @param pageInfo
-     *            The page info
-     */
-    public SiriusGraphQLConnection(int totalCount, List<SiriusGraphQLEdge> edges, SiriusGraphQLPageInfo pageInfo) {
-        this.totalCount = totalCount;
-        this.edges = edges;
-        this.pageInfo = pageInfo;
-    }
-
-    /**
-     * Return the totalCount.
-     *
-     * @return the totalCount
-     */
-    public int getTotalCount() {
-        return this.totalCount;
-    }
-
-    /**
-     * Return the edges.
-     *
-     * @return the edges
-     */
-    public List<SiriusGraphQLEdge> getEdges() {
-        return this.edges;
-    }
-
-    /**
-     * Return the pageInfo.
-     *
-     * @return the pageInfo
-     */
-    public SiriusGraphQLPageInfo getPageInfo() {
-        return this.pageInfo;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnectionTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnectionTypeProvider.java
deleted file mode 100644
index 6d9ba33..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLConnectionTypeProvider.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLList;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create connection types for the GraphQL schema. See https://facebook.github.io/relay/graphql/connections.htm
- * for the specification.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLConnectionTypeProvider implements ISiriusGraphQLTypeProvider {
-    /**
-     * The suffix of all connection types.
-     */
-    public static final String CONNECTION_SUFFIX = "Connection"; //$NON-NLS-1$
-
-    /**
-     * The name of the total count field.
-     */
-    private static final String TOTAL_COUNT_FIELD = "totalCount"; //$NON-NLS-1$
-
-    /**
-     * The name of the edges field.
-     */
-    private static final String EDGES_FIELD = "edges"; //$NON-NLS-1$
-
-    /**
-     * The name of the pageInfo field.
-     */
-    private static final String PAGE_INFO_FIELD = "pageInfo"; //$NON-NLS-1$
-
-    /**
-     * The name of the type of the connection.
-     */
-    private String typeName;
-
-    /**
-     * The name of the type of the edge.
-     */
-    private String edgeTypeName;
-
-    /**
-     * The constructor.
-     *
-     * @param typeName
-     *            The name of the type of the connection
-     * @param edgeTypeName
-     *            The name of the type of the edge
-     */
-    public SiriusGraphQLConnectionTypeProvider(String typeName, String edgeTypeName) {
-        this.typeName = typeName;
-        this.edgeTypeName = edgeTypeName;
-    }
-
-    @Override
-    public GraphQLObjectType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(this.typeName)
-                .field(this.getTotalCountField())
-                .field(this.getEdgesField())
-                .field(this.getPageInfoField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(this.typeName, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the total count field.
-     *
-     * @return The total count field
-     */
-    private GraphQLFieldDefinition getTotalCountField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(TOTAL_COUNT_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLInt))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the edges field.
-     *
-     * @return The edges field
-     */
-    private GraphQLFieldDefinition getEdgesField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(EDGES_FIELD)
-                .type(new GraphQLList(new GraphQLTypeReference(this.edgeTypeName)))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the pageInfo field.
-     *
-     * @return The pageInfo field
-     */
-    private GraphQLFieldDefinition getPageInfoField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(PAGE_INFO_FIELD)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(PageInfoTypeProvider.PAGE_INFO_TYPE)))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdge.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdge.java
deleted file mode 100644
index 80a3378..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdge.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-/**
- * The Edge object used for Relay connections.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLEdge {
-    /**
-     * The node.
-     */
-    private Object node;
-
-    /**
-     * The cursor.
-     */
-    private String cursor;
-
-    /**
-     * The constructor.
-     * 
-     * @param node
-     *            The node
-     * @param cursor
-     *            The cursor
-     */
-    public SiriusGraphQLEdge(Object node, String cursor) {
-        this.node = node;
-        this.cursor = cursor;
-    }
-
-    /**
-     * Returns the node.
-     *
-     * @return the node
-     */
-    public Object getNode() {
-        return this.node;
-    }
-
-    /**
-     * Returns the cursor.
-     *
-     * @return the cursor
-     */
-    public String getCursor() {
-        return this.cursor;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdgeTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdgeTypeProvider.java
deleted file mode 100644
index b9577fe..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLEdgeTypeProvider.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create Edge types for the GraphQL schema. See https://facebook.github.io/relay/graphql/connections.htm for
- * the specification.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLEdgeTypeProvider implements ISiriusGraphQLTypeProvider {
-    /**
-     * The suffix of all edge types.
-     */
-    public static final String EDGE_SUFFIX = "Edge"; //$NON-NLS-1$
-
-    /**
-     * The name of the node field.
-     */
-    private static final String NODE_FIELD = "node"; //$NON-NLS-1$
-
-    /**
-     * The name of the cursor field.
-     */
-    private static final String CURSOR_FIELD = "cursor"; //$NON-NLS-1$
-
-    /**
-     * The name of the type of the edge.
-     */
-    private String typeName;
-
-    /**
-     * The name of the target of the edge.
-     */
-    private String targetName;
-
-    /**
-     * The constructor.
-     *
-     * @param typeName
-     *            The name of the type of the edge
-     *
-     * @param targetName
-     *            The name of the target
-     */
-    public SiriusGraphQLEdgeTypeProvider(String typeName, String targetName) {
-        this.typeName = typeName;
-        this.targetName = targetName;
-    }
-
-    @Override
-    public GraphQLObjectType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(this.typeName)
-                .field(this.getNodeField())
-                .field(this.getCursorField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(this.typeName, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the node field.
-     *
-     * @return The node field
-     */
-    private GraphQLFieldDefinition getNodeField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NODE_FIELD)
-                .type(new GraphQLTypeReference(this.targetName))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor field.
-     *
-     * @return The cursor field
-     */
-    private GraphQLFieldDefinition getCursorField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CURSOR_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPageInfo.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPageInfo.java
deleted file mode 100644
index 016946d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPageInfo.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-/**
- * The PageInfo object used for Relay connections.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLPageInfo {
-
-    /**
-     * Indicates if the connection has a previous page.
-     */
-    private boolean hasPreviousPage;
-
-    /**
-     * Indicates if the connection has a next page.
-     */
-    private boolean hasNextPage;
-
-    /**
-     * The constructor.
-     * 
-     * @param hasPreviousPage
-     *            Indicates if the connection has a previous page
-     * @param hasNextPage
-     *            Indicates if the connection has a next page
-     */
-    public SiriusGraphQLPageInfo(boolean hasPreviousPage, boolean hasNextPage) {
-        this.hasPreviousPage = hasPreviousPage;
-        this.hasNextPage = hasNextPage;
-    }
-
-    /**
-     * Return the hasPreviousPage.
-     *
-     * @return the hasPreviousPage
-     */
-    public boolean isHasPreviousPage() {
-        return this.hasPreviousPage;
-    }
-
-    /**
-     * Return the hasNextPage.
-     *
-     * @return the hasNextPage
-     */
-    public boolean isHasNextPage() {
-        return this.hasNextPage;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationArguments.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationArguments.java
deleted file mode 100644
index d14f7ca..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationArguments.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-
-/**
- * Used to create the pagination arguments.
- *
- * @author sbegaudeau
- */
-public final class SiriusGraphQLPaginationArguments {
-    /**
-     * The name of the argument first used for the pagination.
-     */
-    public static final String FIRST_ARG = "first"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument last used for the pagination.
-     */
-    public static final String LAST_ARG = "last"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument after used for the pagination.
-     */
-    public static final String AFTER_ARG = "after"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument before used for the pagination.
-     */
-    public static final String BEFORE_ARG = "before"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLPaginationArguments() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the list of pagination arguments.
-     *
-     * @return The list of pagination arguments.
-     */
-    public static List<GraphQLArgument> build() {
-        List<GraphQLArgument> arguments = new ArrayList<>();
-        arguments.add(SiriusGraphQLPaginationArguments.getFieldFirstArg());
-        arguments.add(SiriusGraphQLPaginationArguments.getFieldAfterArg());
-        arguments.add(SiriusGraphQLPaginationArguments.getFieldLastArg());
-        arguments.add(SiriusGraphQLPaginationArguments.getFieldBeforeArg());
-        return arguments;
-    }
-
-    /**
-     * Returns the argument first of the field.
-     *
-     * @return The argument first of the field.
-     */
-    private static GraphQLArgument getFieldFirstArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(FIRST_ARG)
-                .type(Scalars.GraphQLInt)
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the argument after of the field.
-     *
-     * @return The argument after of the field.
-     */
-    private static GraphQLArgument getFieldAfterArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(AFTER_ARG)
-                .type(Scalars.GraphQLString)
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the argument last of the field.
-     *
-     * @return The argument last of the field.
-     */
-    private static GraphQLArgument getFieldLastArg() {
-       // @formatter:off
-       return GraphQLArgument.newArgument()
-               .name(LAST_ARG)
-               .type(Scalars.GraphQLInt)
-               .build();
-       // @formatter:on
-    }
-
-    /**
-     * Returns the argument before of the field.
-     *
-     * @return The argument before of the field.
-     */
-    private static GraphQLArgument getFieldBeforeArg() {
-       // @formatter:off
-       return GraphQLArgument.newArgument()
-               .name(BEFORE_ARG)
-               .type(Scalars.GraphQLString)
-               .build();
-       // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationDataFetcher.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationDataFetcher.java
deleted file mode 100644
index b72ee42..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/api/pagination/SiriusGraphQLPaginationDataFetcher.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.api.pagination;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLContext;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.internal.SiriusGraphQLCommonMessages;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.DataFetchingEnvironment;
-import graphql.schema.GraphQLArgument;
-
-/**
- * Used to create a data fetcher supporting the pagination.
- *
- * @author sbegaudeau
- */
-public final class SiriusGraphQLPaginationDataFetcher {
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLPaginationDataFetcher() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Creates the data fetcher used to return the paginated result.
-     *
-     * @param callback
-     *            The function used to compute the edges
-     * @param cursorComputer
-     *            The function used to compute the cursor for each edge
-     * @param <T>
-     *            The type of the edges to return
-     * @return The data fetcher used to return the paginated result.
-     */
-    public static <T> DataFetcher<SiriusGraphQLConnection> build(Function<DataFetchingEnvironment, List<T>> callback, Function<T, String> cursorComputer) {
-        return environment -> {
-            Integer first = SiriusGraphQLPaginationDataFetcher.getFirst(environment);
-            Integer last = SiriusGraphQLPaginationDataFetcher.getLast(environment);
-            String after = SiriusGraphQLPaginationDataFetcher.getAfter(environment);
-            String before = SiriusGraphQLPaginationDataFetcher.getBefore(environment);
-
-            SiriusGraphQLPaginationDataFetcher.assertArguments(environment);
-
-            int cost = SiriusGraphQLPaginationDataFetcher.getCost(environment);
-            // @formatter:off
-            Optional.ofNullable(environment.getContext())
-                .filter(SiriusGraphQLContext.class::isInstance)
-                .map(SiriusGraphQLContext.class::cast)
-                .ifPresent(context -> context.add(cost));
-            // @formatter:on
-
-            List<T> allEdges = callback.apply(environment);
-            List<T> edgesToReturn = SiriusGraphQLPaginationDataFetcher.getEdgesToReturn(allEdges, before, after, first, last, cursorComputer);
-
-            // @formatter:off
-            List<SiriusGraphQLEdge> edges = edgesToReturn.stream()
-                    .map(edge -> new SiriusGraphQLEdge(edge, cursorComputer.apply(edge)))
-                    .collect(Collectors.toList());
-            // @formatter:on
-
-            int totalCount = allEdges.size();
-            boolean hasPreviousPage = SiriusGraphQLPaginationDataFetcher.hasPreviousPage(allEdges, edgesToReturn);
-            boolean hasNextPage = SiriusGraphQLPaginationDataFetcher.hasNextPage(allEdges, edgesToReturn);
-            SiriusGraphQLPageInfo pageInfo = new SiriusGraphQLPageInfo(hasPreviousPage, hasNextPage);
-            return new SiriusGraphQLConnection(totalCount, edges, pageInfo);
-        };
-    }
-
-    /**
-     * Asserts the validity of the arguments retrieved.
-     * 
-     * @param environment
-     *            The data fetching environment
-     */
-    private static void assertArguments(DataFetchingEnvironment environment) {
-        Integer first = SiriusGraphQLPaginationDataFetcher.getFirst(environment);
-        Integer last = SiriusGraphQLPaginationDataFetcher.getLast(environment);
-
-        // Both after and before can be null but it has to be a specified value
-        boolean hasFowardPaginationArguments = first != null && environment.containsArgument(SiriusGraphQLPaginationArguments.AFTER_ARG);
-        boolean hasBackwardPaginationArguments = last != null && environment.containsArgument(SiriusGraphQLPaginationArguments.BEFORE_ARG);
-
-        if (!hasFowardPaginationArguments && !hasBackwardPaginationArguments) {
-            throw new IllegalArgumentException(SiriusGraphQLCommonMessages.SiriusGraphQLPaginationDataFetcher_invalidArguments);
-        }
-    }
-
-    /**
-     * Returns the value of the first argument.
-     *
-     * @param environment
-     *            The data fetching environment.
-     * @return The value of the first argument
-     */
-    private static Integer getFirst(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getArgument(SiriusGraphQLPaginationArguments.FIRST_ARG))
-                .filter(Integer.class::isInstance)
-                .map(Integer.class::cast)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the value of the last argument.
-     *
-     * @param environment
-     *            The data fetching environment.
-     * @return The value of the last argument
-     */
-    private static Integer getLast(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getArgument(SiriusGraphQLPaginationArguments.LAST_ARG))
-                .filter(Integer.class::isInstance)
-                .map(Integer.class::cast)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the value of the after argument.
-     *
-     * @param environment
-     *            The data fetching environment.
-     * @return The value of the after argument
-     */
-    private static String getAfter(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getArgument(SiriusGraphQLPaginationArguments.AFTER_ARG))
-                .filter(String.class::isInstance)
-                .map(String.class::cast)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the value of the before argument.
-     *
-     * @param environment
-     *            The data fetching environment.
-     * @return The value of the before argument
-     */
-    private static String getBefore(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getArgument(SiriusGraphQLPaginationArguments.BEFORE_ARG))
-                .filter(String.class::isInstance)
-                .map(String.class::cast)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the complexity of the field.
-     *
-     * @param environment
-     *            The data fetching environment
-     * @return The complexity of the field
-     */
-    private static int getComplexity(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getFieldDefinition().getDirective(SiriusGraphQLCostDirective.COST))
-                .map(directive -> directive.getArgument(SiriusGraphQLCostDirective.COMPLEXITY_ARG))
-                .map(GraphQLArgument::getDefaultValue)
-                .filter(Integer.class::isInstance)
-                .map(Integer.class::cast)
-                .orElse(Integer.valueOf(0))
-                .intValue();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the multipliers of the field.
-     *
-     * @param environment
-     *            The data fetching environment
-     * @return The multipliers of the field
-     */
-    private static List<String> getMultipliers(DataFetchingEnvironment environment) {
-        // @formatter:off
-        return Optional.ofNullable(environment.getFieldDefinition().getDirective(SiriusGraphQLCostDirective.COST))
-                .map(directive -> directive.getArgument(SiriusGraphQLCostDirective.MULTIPLIERS_ARG))
-                .map(GraphQLArgument::getDefaultValue)
-                .map(value -> {
-                    if (value instanceof List<?>) {
-                        return ((List<?>) value).stream()
-                                    .filter(String.class::isInstance)
-                                    .map(String.class::cast)
-                                    .collect(Collectors.toList());
-                    }
-                    return new ArrayList<String>();
-                })
-                .orElseGet(ArrayList::new);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cost of fetching the elements requested.
-     *
-     * @param environment
-     *            The data fetching environment
-     * @return The cost of fetching the elements requested
-     */
-    private static int getCost(DataFetchingEnvironment environment) {
-        int complexity = SiriusGraphQLPaginationDataFetcher.getComplexity(environment);
-        List<String> multipliers = SiriusGraphQLPaginationDataFetcher.getMultipliers(environment);
-
-        int cost = 0;
-        for (String multiplier : multipliers) {
-            // @formatter:off
-            int value = Optional.ofNullable(environment.getArgument(multiplier))
-                    .filter(Integer.class::isInstance)
-                    .map(Integer.class::cast)
-                    .orElse(Integer.valueOf(0))
-                    .intValue();
-            // @formatter:on
-
-            cost = cost + (value * complexity);
-        }
-
-        return cost;
-    }
-
-    /**
-     * Indicates if there is a previous page.
-     *
-     * @param edges
-     *            The whole list of edges to consider
-     * @param edgesToReturn
-     *            The list of edges to return
-     * @param <T>
-     *            The type of the edge
-     * @return <code>true</code> if there is a previous page, <code>false</code> otherwise
-     */
-    private static <T> boolean hasPreviousPage(List<T> edges, List<T> edgesToReturn) {
-        return edges.size() > 0 && (edgesToReturn.isEmpty() || edges.indexOf(edgesToReturn.get(0)) > 0);
-    }
-
-    /**
-     * Indicates if there is a next page.
-     *
-     * @param edges
-     *            The whole list of edges to consider
-     * @param edgesToReturn
-     *            The list of edges to return
-     * @param <T>
-     *            The type of the edge
-     * @return <code>true</code> if there is a next page, <code>false</code> otherwise
-     */
-    private static <T> boolean hasNextPage(List<T> edges, List<T> edgesToReturn) {
-        return edges.size() > 0 && (!edgesToReturn.isEmpty() && edges.indexOf(edgesToReturn.get(edgesToReturn.size() - 1)) < edges.size() - 1);
-    }
-
-    /**
-     * Computes the edges to return for the given pagination arguments. See
-     * https://facebook.github.io/relay/graphql/connections.htm#sec-Pagination-algorithm
-     *
-     * @param allEdges
-     *            All the edges which can be returned
-     * @param before
-     *            The before cursor
-     * @param after
-     *            The after cursor
-     * @param first
-     *            The number of edges to return for the forward pagination
-     * @param last
-     *            The number of edges to return for the backward pagination
-     * @param cursorComputer
-     *            The function used to compute the cursor
-     * @param <T>
-     *            The type of the edge
-     * @return The sliced edges
-     */
-    private static <T> List<T> getEdgesToReturn(List<T> allEdges, String before, String after, Integer first, Integer last, Function<T, String> cursorComputer) {
-        List<T> edges = SiriusGraphQLPaginationDataFetcher.applyCursorsToEdges(allEdges, before, after, cursorComputer);
-        if (Objects.nonNull(first) && first.intValue() > 0 && edges.size() > first.intValue()) {
-            edges = edges.subList(0, first.intValue());
-        }
-        if (Objects.nonNull(last) && last.intValue() > 0 && edges.size() > last.intValue()) {
-            edges = edges.subList(edges.size() - last.intValue(), edges.size());
-        }
-        return edges;
-    }
-
-    /**
-     * Apply the cursor to the given edges. See
-     * https://facebook.github.io/relay/graphql/connections.htm#ApplyCursorsToEdges()
-     *
-     * @param allEdges
-     *            The list of the edges
-     * @param before
-     *            The before cursor
-     * @param after
-     *            The after cursor
-     * @param cursorComputer
-     *            The function used to compute the cursor
-     * @param <T>
-     *            The type of the edge
-     * @return The sliced list of edges
-     */
-    private static <T> List<T> applyCursorsToEdges(List<T> allEdges, String before, String after, Function<T, String> cursorComputer) {
-        List<T> edges = allEdges;
-        if (Objects.nonNull(after) && !after.isEmpty()) {
-            // @formatter:off
-            Optional<T> optionalAfterEdge = edges.stream()
-                    .filter(anEdge -> after.equals(cursorComputer.apply(anEdge)))
-                    .findFirst();
-            if (optionalAfterEdge.isPresent()) {
-                T afterEdge = optionalAfterEdge.get();
-                int afterEdgeIndex = edges.indexOf(afterEdge);
-                edges = edges.subList(afterEdgeIndex + 1, edges.size());
-            }
-            // @formatter:on
-        } else if (Objects.nonNull(before) && !before.isEmpty()) {
-            // @formatter:off
-            Optional<T> optionalBeforeEdge = edges.stream()
-                    .filter(anEdge -> before.equals(cursorComputer.apply(anEdge)))
-                    .findFirst();
-            if (optionalBeforeEdge.isPresent()) {
-                T beforeEdge = optionalBeforeEdge.get();
-                int beforeEdgeIndex = edges.indexOf(beforeEdge);
-                edges = edges.subList(0, beforeEdgeIndex);
-            }
-            // @formatter:on
-        }
-        return edges;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/internal/SiriusGraphQLCommonMessages.java b/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/internal/SiriusGraphQLCommonMessages.java
deleted file mode 100644
index b7ab2aa..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.common/src/org/eclipse/sirius/services/graphql/common/internal/SiriusGraphQLCommonMessages.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.common.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLCommonPlugin;
-
-/**
- * Utility class containing the messages.
- * 
- * @author sbegaudeau
- */
-public final class SiriusGraphQLCommonMessages {
-
-    static {
-        I18N.initializeMessages(SiriusGraphQLCommonMessages.class, SiriusGraphQLCommonPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-
-    @TranslatableMessage
-    public static String SiriusGraphQLPaginationDataFetcher_invalidArguments;
-
-    @TranslatableMessage
-    public static String SiriusGraphQLContext_requestTooExpensive;
-
-    // CHECKSTYLE:ON
-
-    private SiriusGraphQLCommonMessages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.checkstyle b/plugins/org.eclipse.sirius.services.graphql.core/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.classpath b/plugins/org.eclipse.sirius.services.graphql.core/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.project b/plugins/org.eclipse.sirius.services.graphql.core/.project
deleted file mode 100644
index 30c798a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.graphql.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.graphql.core/META-INF/MANIFEST.MF
deleted file mode 100644
index ca8f1a7..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.graphql.core;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.services.graphql.core
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.sirius;bundle-version="6.1.1",
- org.eclipse.sirius.diagram;bundle-version="6.1.1",
- org.eclipse.sirius.services.graphql.common;bundle-version="6.2.0"
-Export-Package: org.eclipse.sirius.services.graphql.core.api;version="6.2.1",
- org.eclipse.sirius.services.graphql.core.internal.schema;version="6.2.1";x-internal:=true
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/about.html b/plugins/org.eclipse.sirius.services.graphql.core/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/build.properties b/plugins/org.eclipse.sirius.services.graphql.core/build.properties
deleted file mode 100644
index 2a24627..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/plugin.properties b/plugins/org.eclipse.sirius.services.graphql.core/plugin.properties
deleted file mode 100644
index 5b9b37e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL Core API
-providerName = Eclipse Modeling Project
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/plugin.xml b/plugins/org.eclipse.sirius.services.graphql.core/plugin.xml
deleted file mode 100644
index 2e378d2..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.sirius.services.graphql.common.siriusGraphqlSchemaCustomizer">
-      <descriptor
-            class="org.eclipse.sirius.services.graphql.core.internal.schema.CoreSchemaCustomizer"
-            id="org.eclipse.sirius.services.graphql.core.graphqlSchemaCustomizer">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/pom.xml b/plugins/org.eclipse.sirius.services.graphql.core/pom.xml
deleted file mode 100644
index 8f3a089..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2019 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.graphql.core</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/api/CoreSchemaConstants.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/api/CoreSchemaConstants.java
deleted file mode 100644
index ed6ccd9..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/api/CoreSchemaConstants.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.api;
-
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider.CONNECTION_SUFFIX;
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider.EDGE_SUFFIX;
-
-/**
- * Constants for the Core GraphQL schema.
- * 
- * @author sbegaudeau
- */
-public final class CoreSchemaConstants {
-    /**
-     * The identifier of the schema.
-     */
-    public static final String IDENTIFIER = "org.eclipse.sirius.services.graphql.core"; //$NON-NLS-1$
-
-    /**
-     * The name of the Viewpoint type.
-     */
-    public static final String VIEWPOINT_TYPE = "Viewpoint"; //$NON-NLS-1$
-
-    /**
-     * The name of the RepresentationDescription type.
-     */
-    public static final String REPRESENTATION_DESCRIPTION_TYPE = "RepresentationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the DiagramDescription type.
-     */
-    public static final String DIAGRAM_DESCRIPTION_TYPE = "DiagramDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the Representation type.
-     */
-    public static final String REPRESENTATION_TYPE = "Representation"; //$NON-NLS-1$
-
-    /**
-     * The name of the diagram type.
-     */
-    public static final String DIAGRAM_TYPE = "Diagram"; //$NON-NLS-1$
-
-    /**
-     * The name of the Viewpoint to RepresentationDescription connection type.
-     */
-    public static final String VIEWPOINT_REPRESENTATION_DESCRIPTION_CONNECTION_TYPE = VIEWPOINT_TYPE + REPRESENTATION_DESCRIPTION_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the Viewpoint to RepresentationDescription edge type.
-     */
-    public static final String VIEWPOINT_REPRESENTATION_DESCRIPTION_EDGE_TYPE = VIEWPOINT_TYPE + REPRESENTATION_DESCRIPTION_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The constructor.
-     */
-    private CoreSchemaConstants() {
-        // Prevent instantiation
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/CoreSchemaCustomizer.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/CoreSchemaCustomizer.java
deleted file mode 100644
index b3797a1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/CoreSchemaCustomizer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.common.api.pagination.PageInfoTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Contributes the Sirius GraphQL Core schema into the GraphQL schema registry.
- * 
- * @author sbegaudeau
- */
-public class CoreSchemaCustomizer implements ISiriusGraphQLSchemaCustomizer {
-
-    @Override
-    public String getIdentifier() {
-        return CoreSchemaConstants.IDENTIFIER;
-    }
-
-    @Override
-    public Builder customize(Builder graphQLSchemaBuilder, Function<GraphQLType, SiriusGraphQLFilterStatus> typeFilter, ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer) {
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        types.addAll(new ViewpointTypesBuilder().getTypes(graphQLTypeCustomizer));
-        types.add(new RepresentationDescriptionTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new DiagramDescriptionTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new RepresentationTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new DiagramTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new PageInfoTypeProvider().getType(graphQLTypeCustomizer));
-
-        types.removeIf(graphQLType -> SiriusGraphQLFilterStatus.REJECT.equals(typeFilter.apply(graphQLType)));
-
-        return graphQLSchemaBuilder.additionalTypes(types);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramDescriptionTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramDescriptionTypeProvider.java
deleted file mode 100644
index 782c43b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramDescriptionTypeProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the DiagramDescription type.
- *
- * @author sbegaudeau
- */
-public class DiagramDescriptionTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(CoreSchemaConstants.DIAGRAM_DESCRIPTION_TYPE)
-                .field(RepresentationDescriptionIdentifierField.build())
-                .field(RepresentationDescriptionNameField.build())
-                .field(RepresentationDescriptionViewpointField.build())
-                .withInterface(new GraphQLTypeReference(CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE));
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(CoreSchemaConstants.DIAGRAM_DESCRIPTION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramTypeProvider.java
deleted file mode 100644
index 09902b2..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/DiagramTypeProvider.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the Diagram type.
- *
- * @author sbegaudeau
- */
-public class DiagramTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    /**
-     * The name of the description field.
-     */
-    private static final String DESCRIPTION_FIELD = "description"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(CoreSchemaConstants.DIAGRAM_TYPE)
-                .field(this.getNameField())
-                .field(this.getDescriptionField())
-                .withInterface(new GraphQLTypeReference(CoreSchemaConstants.REPRESENTATION_TYPE));
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(CoreSchemaConstants.DIAGRAM_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the name field.
-     *
-     * @return The name field
-     */
-    private GraphQLFieldDefinition getNameField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the description field.
-     *
-     * @return The description field
-     */
-    private GraphQLFieldDefinition getDescriptionField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(DESCRIPTION_FIELD)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(CoreSchemaConstants.DIAGRAM_DESCRIPTION_TYPE)))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionIdentifierField.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionIdentifierField.java
deleted file mode 100644
index 350fcfb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionIdentifierField.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the identifier field of the representation description.
- *
- * @author sbegaudeau
- */
-public final class RepresentationDescriptionIdentifierField {
-    /**
-     * The name of the identifier field.
-     */
-    private static final String IDENTIFIER_FIELD = "identifier"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private RepresentationDescriptionIdentifierField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the identifier field.
-     *
-     * @return The identifier field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(IDENTIFIER_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .dataFetcher(RepresentationDescriptionIdentifierField.getIdentifierDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the identifier of the viewpoint.
-     *
-     * @return The identifier of the viewpoint
-     */
-    private static DataFetcher<String> getIdentifierDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(RepresentationDescription.class::isInstance)
-                .map(RepresentationDescription.class::cast)
-                .map(RepresentationDescription::getName)
-                .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionNameField.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionNameField.java
deleted file mode 100644
index 6c56bb5..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionNameField.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the name field of the representation description.
- *
- * @author sbegaudeau
- */
-public final class RepresentationDescriptionNameField {
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private RepresentationDescriptionNameField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the name field.
-     *
-     * @return The name field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .dataFetcher(RepresentationDescriptionNameField.getNameDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the name data fetcher.
-     *
-     * @return The name data fetcher
-     */
-    private static DataFetcher<?> getNameDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(RepresentationDescription.class::isInstance)
-                .map(RepresentationDescription.class::cast)
-                .map(RepresentationDescription::getLabel)
-                .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionTypeProvider.java
deleted file mode 100644
index 428e72d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionTypeProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import org.eclipse.sirius.diagram.description.DiagramDescription;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLInterfaceType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.TypeResolver;
-
-/**
- * Used to create the representation description type.
- *
- * @author sbegaudeau
- */
-public class RepresentationDescriptionTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInterfaceType.newInterface()
-                .name(CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE)
-                .field(RepresentationDescriptionIdentifierField.build())
-                .field(RepresentationDescriptionNameField.build())
-                .field(RepresentationDescriptionViewpointField.build())
-                .typeResolver(this.getTypeResolver());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the type resolver.
-     *
-     * @return The type resolver
-     */
-    private TypeResolver getTypeResolver() {
-        // @formatter:off
-        return environment -> {
-            Object object = environment.getObject();
-            if (object instanceof DiagramDescription) {
-                return environment.getSchema().getObjectType(CoreSchemaConstants.DIAGRAM_DESCRIPTION_TYPE);
-            } else {
-                // TODO Support other types of representations
-            }
-            return null;
-        };
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionViewpointField.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionViewpointField.java
deleted file mode 100644
index e74f92d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationDescriptionViewpointField.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the viewpoint field of the representation description.
- *
- * @author sbegaudeau
- */
-public final class RepresentationDescriptionViewpointField {
-    /**
-     * The name of the viewpoint field.
-     */
-    private static final String VIEWPOINT_FIELD = "viewpoint"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private RepresentationDescriptionViewpointField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the viewpoint field.
-     *
-     * @return The viewpoint field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(VIEWPOINT_FIELD)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(CoreSchemaConstants.VIEWPOINT_TYPE)))
-                .dataFetcher(RepresentationDescriptionViewpointField.getViewpointDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewpoint data fetcher.
-     *
-     * @return The viewpoint data fetcher
-     */
-    private static DataFetcher<Viewpoint> getViewpointDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(RepresentationDescription.class::isInstance)
-                .map(RepresentationDescription.class::cast)
-                .map(RepresentationDescription::eContainer)
-                .filter(Viewpoint.class::isInstance)
-                .map(Viewpoint.class::cast)
-                .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationTypeProvider.java
deleted file mode 100644
index 502cbc8..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/RepresentationTypeProvider.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLInterfaceType.Builder;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLType;
-import graphql.schema.TypeResolver;
-
-/**
- * Used to create the representation type.
- *
- * @author sbegaudeau
- */
-public class RepresentationTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInterfaceType.newInterface()
-                .name(CoreSchemaConstants.REPRESENTATION_TYPE)
-                .field(this.getNameField())
-                .typeResolver(this.getTypeResolver());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(CoreSchemaConstants.REPRESENTATION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the name field.
-     *
-     * @return The name field
-     */
-    private GraphQLFieldDefinition getNameField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the type resolver.
-     *
-     * @return The type resolver
-     */
-    private TypeResolver getTypeResolver() {
-        // @formatter:off
-        return environment -> {
-            Object object = environment.getObject();
-            if (object instanceof DDiagram) {
-                return environment.getSchema().getObjectType(CoreSchemaConstants.DIAGRAM_TYPE);
-            }
-            return null;
-        };
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/ViewpointTypesBuilder.java b/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/ViewpointTypesBuilder.java
deleted file mode 100644
index dc2aac1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.core/src/org/eclipse/sirius/services/graphql/core/internal/schema/ViewpointTypesBuilder.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.core.internal.schema;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.query.IdentifiedElementQuery;
-import org.eclipse.sirius.diagram.description.DiagramDescription;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypesProvider;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the Viewpoint type of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class ViewpointTypesBuilder implements ISiriusGraphQLTypesProvider {
-
-    /**
-     * The name of the identifier field.
-     */
-    private static final String IDENTIFIER_FIELD = "identifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    /**
-     * The name of the representationDescriptions field.
-     */
-    private static final String REPRESENTATION_DESCRIPTIONS_FIELD = "representationDescriptions"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of a representation description.
-     */
-    private static final int COMPLEXITY = 1;
-
-    @Override
-    public Set<GraphQLType> getTypes(ISiriusGraphQLTypeCustomizer customizer) {
-        GraphQLObjectType representationDescriptionEdge = new SiriusGraphQLEdgeTypeProvider(CoreSchemaConstants.VIEWPOINT_REPRESENTATION_DESCRIPTION_EDGE_TYPE,
-                CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE).getType(customizer);
-        GraphQLObjectType representationDescriptionConnection = new SiriusGraphQLConnectionTypeProvider(CoreSchemaConstants.VIEWPOINT_REPRESENTATION_DESCRIPTION_CONNECTION_TYPE,
-                CoreSchemaConstants.VIEWPOINT_REPRESENTATION_DESCRIPTION_EDGE_TYPE).getType(customizer);
-
-        // @formatter:off
-        Builder viewpointBuilder = GraphQLObjectType.newObject()
-                .name(CoreSchemaConstants.VIEWPOINT_TYPE)
-                .field(this.getIdentifierField())
-                .field(this.getNameField())
-                .field(this.getRepresentationDescriptionsField());
-        // @formatter:on
-
-        Builder customizedViewpointBuilder = customizer.customize(CoreSchemaConstants.VIEWPOINT_TYPE, viewpointBuilder);
-
-        Set<GraphQLType> types = new LinkedHashSet<>();
-        types.add(customizedViewpointBuilder.build());
-        types.add(representationDescriptionEdge);
-        types.add(representationDescriptionConnection);
-        return types;
-    }
-
-    private GraphQLFieldDefinition getIdentifierField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(IDENTIFIER_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .dataFetcher(this.getIdentifierDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the identifier of the viewpoint.
-     *
-     * @return The identifier of the viewpoint
-     */
-    private DataFetcher<String> getIdentifierDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(Viewpoint.class::isInstance)
-                .map(Viewpoint.class::cast)
-                .map(Viewpoint::getName)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the name field.
-     *
-     * @return The name field
-     */
-    private GraphQLFieldDefinition getNameField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .dataFetcher(this.getNameDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the name data fetcher.
-     *
-     * @return The name data fetcher
-     */
-    private DataFetcher<String> getNameDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(Viewpoint.class::isInstance)
-                .map(Viewpoint.class::cast)
-                .map(IdentifiedElementQuery::new)
-                .map(IdentifiedElementQuery::getLabel)
-                .orElse(null);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the representation descriptions field.
-     *
-     * @return The representation descriptions field.
-     */
-    private GraphQLFieldDefinition getRepresentationDescriptionsField() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(REPRESENTATION_DESCRIPTIONS_FIELD)
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .type(new GraphQLTypeReference(CoreSchemaConstants.VIEWPOINT_REPRESENTATION_DESCRIPTION_CONNECTION_TYPE))
-                .dataFetcher(this.getRepresentationDescriptionsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the representation descriptions data fetcher.
-     *
-     * @return The representation descriptions data fetcher.
-     */
-    private DataFetcher<SiriusGraphQLConnection> getRepresentationDescriptionsDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            return Optional.of(environment.getSource())
-                    .filter(Viewpoint.class::isInstance)
-                    .map(Viewpoint.class::cast)
-                    .map(viewpoint -> {
-                        // TODO Return only diagram descriptions for now
-                        return viewpoint.getOwnedRepresentations().stream()
-                                .filter(DiagramDescription.class::isInstance)
-                                .collect(Collectors.toList());
-                    })
-                    .orElseGet(ArrayList::new);
-        }, this::diagramDescriptionCursorComputer);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given representation description.
-     * 
-     * @param representationDescription
-     *            The representation description
-     * @return The cursor of the given representation description
-     */
-    private String diagramDescriptionCursorComputer(RepresentationDescription representationDescription) {
-        String unEncodedCursor = EcoreUtil.getURI(representationDescription).toString();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.checkstyle b/plugins/org.eclipse.sirius.services.graphql.emf/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.classpath b/plugins/org.eclipse.sirius.services.graphql.emf/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.project b/plugins/org.eclipse.sirius.services.graphql.emf/.project
deleted file mode 100644
index b0f21b7..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.graphql.emf</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ffd2c66..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,395 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.graphql.emf/META-INF/MANIFEST.MF
deleted file mode 100644
index ca116f1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.graphql.emf;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.services.graphql.emf
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.services.graphql.emf.api;version="7.0.0",
- org.eclipse.sirius.services.graphql.emf.internal.schema;version="7.0.0";x-friends:="org.eclipse.sirius.tests.services.graphql"
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.language;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
-Require-Bundle: org.eclipse.sirius.services.graphql.common;bundle-version="7.0.0",
- org.eclipse.emf.ecore;bundle-version="2.8.0"
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/about.html b/plugins/org.eclipse.sirius.services.graphql.emf/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/build.properties b/plugins/org.eclipse.sirius.services.graphql.emf/build.properties
deleted file mode 100644
index 9110b91..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/plugin.properties b/plugins/org.eclipse.sirius.services.graphql.emf/plugin.properties
deleted file mode 100644
index e8c9fae..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL EMF API
-providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/plugin.xml b/plugins/org.eclipse.sirius.services.graphql.emf/plugin.xml
deleted file mode 100644
index 2d4c88a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.sirius.services.graphql.common.siriusGraphqlSchemaCustomizer">
-      <descriptor
-            class="org.eclipse.sirius.services.graphql.emf.internal.schema.EMFGraphQLSchemaCustomizer"
-            id="org.eclipse.sirius.services.graphql.emf.graphqlSchemaCustomizer">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/pom.xml b/plugins/org.eclipse.sirius.services.graphql.emf/pom.xml
deleted file mode 100644
index c6d07d1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2019 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.graphql.emf</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/api/EMFSchemaConstants.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/api/EMFSchemaConstants.java
deleted file mode 100644
index 2f6b871..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/api/EMFSchemaConstants.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.api;
-
-/**
- * Utility class holding some constants related to EMF.
- * 
- * @author sbegaudeau
- */
-public final class EMFSchemaConstants {
-
-    /**
-     * The name of the type EObject.
-     */
-    public static final String EOBJECT_TYPE = "EObject"; //$NON-NLS-1$
-
-    /**
-     * The name of the type DynamicEObject.
-     */
-    public static final String DYNAMICEOBJECT_TYPE = "DynamicEObject"; //$NON-NLS-1$
-
-    /**
-     * The name of the type EPackage.
-     */
-    public static final String EPACKAGE_TYPE = "EPackage"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private EMFSchemaConstants() {
-        // Do nothing
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/DynamicEObjectTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/DynamicEObjectTypeProvider.java
deleted file mode 100644
index 5f2d16e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/DynamicEObjectTypeProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the DynamicEObject type.
- * 
- * @author sbegaudeau
- */
-public class DynamicEObjectTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(EMFSchemaConstants.DYNAMICEOBJECT_TYPE)
-                .withInterface(new GraphQLTypeReference(EMFSchemaConstants.EOBJECT_TYPE));
-        // @formatter:on
-
-        customizer.customize(EMFSchemaConstants.DYNAMICEOBJECT_TYPE, builder);
-        return builder.build();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassInterfaceTypeBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassInterfaceTypeBuilder.java
deleted file mode 100644
index 08d1b77..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassInterfaceTypeBuilder.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.HashMap;
-import java.util.Optional;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.INameProvider.NameKind;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLType;
-import graphql.schema.TypeResolver;
-
-/**
- * Used to transform the definition of an abstract or interface EClass.
- * 
- * @author sbegaudeau
- */
-public class EClassInterfaceTypeBuilder {
-
-    /**
-     * The EClass.
-     */
-    private EClass eClass;
-
-    /**
-     * The cache of the EDataType to GraphQL output type.
-     */
-    private HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache;
-
-    /**
-     * The name provider.
-     */
-    private INameProvider nameProvider = (anEClass, nameKind) -> anEClass.getName();
-
-    /**
-     * The EStructuralFeature filter.
-     */
-    private Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter;
-
-    /**
-     * The constructor.
-     * 
-     * @param eClass
-     *            The EClass
-     * @param eDataTypeToOutputTypeCache
-     *            The cache of the EDataType to GraphQL output type
-     */
-    public EClassInterfaceTypeBuilder(EClass eClass, HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache) {
-        this.eClass = eClass;
-        this.eDataTypeToOutputTypeCache = eDataTypeToOutputTypeCache;
-    }
-
-    /**
-     * Sets the name provider.
-     * 
-     * @param nameProvider
-     *            The name provider
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EClassInterfaceTypeBuilder nameProvider(INameProvider nameProvider) {
-        this.nameProvider = nameProvider;
-        return this;
-    }
-
-    /**
-     * Sets the EStructuralFeature filter.
-     * 
-     * @param eStructuralFeatureFilter
-     *            The EStructuralFeature
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EClassInterfaceTypeBuilder eStructuralFeatureFilter(Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter) {
-        this.eStructuralFeatureFilter = eStructuralFeatureFilter;
-        return this;
-    }
-
-    /**
-     * Returns the GraphQL type.
-     * 
-     * @return The GraphQL type
-     */
-    public GraphQLType getType() {
-     // @formatter:off
-        return GraphQLInterfaceType.newInterface()
-                .name(this.nameProvider.getName(this.eClass, NameKind.INTERFACE))
-                .fields(new FieldsBuilder(this.eClass, this.eDataTypeToOutputTypeCache)
-                        .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                        .getFields())
-                .typeResolver(this.getTypeResolver())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the type resolver.
-     *
-     * @return The type resolver
-     */
-    private TypeResolver getTypeResolver() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getObject())
-                .filter(EObject.class::isInstance)
-                .map(EObject.class::cast)
-                .map(EObject::eClass)
-                .map(anEClass -> this.nameProvider.getName(anEClass, NameKind.TYPE))
-                .map(name -> environment.getSchema().getObjectType(name))
-                .orElse(null);
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassObjectTypeBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassObjectTypeBuilder.java
deleted file mode 100644
index 7d5a73f..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EClassObjectTypeBuilder.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.INameProvider.NameKind;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to transform the definition of an EClass into a GraphQL type.
- *
- * @author sbegaudeau
- */
-public class EClassObjectTypeBuilder {
-
-    /**
-     * The EClass.
-     */
-    private EClass eClass;
-
-    /**
-     * The cache of the EDataType to GraphQL output type.
-     */
-    private HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache;
-
-    /**
-     * The name provider.
-     */
-    private INameProvider nameProvider = (anEClass, nameKind) -> anEClass.getName();
-
-    /**
-     * The EStructuralFeature filter.
-     */
-    private Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter;
-
-    /**
-     * The constructor.
-     *
-     * @param eClass
-     *            The EClass
-     * @param eDataTypeToOutputTypeCache
-     *            The cache of the EDataType to GraphQL output type
-     */
-    public EClassObjectTypeBuilder(EClass eClass, HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache) {
-        this.eClass = eClass;
-        this.eDataTypeToOutputTypeCache = eDataTypeToOutputTypeCache;
-    }
-
-    /**
-     * Sets the name provider.
-     * 
-     * @param nameProvider
-     *            The name provider
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EClassObjectTypeBuilder nameProvider(INameProvider nameProvider) {
-        this.nameProvider = nameProvider;
-        return this;
-    }
-
-    /**
-     * Sets the EStructuralFeature filter.
-     * 
-     * @param eStructuralFeatureFilter
-     *            The EStructuralFeature
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EClassObjectTypeBuilder eStructuralFeatureFilter(Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter) {
-        this.eStructuralFeatureFilter = eStructuralFeatureFilter;
-        return this;
-    }
-
-    /**
-     * Returns the GraphQL type.
-     * 
-     * @return The GraphQL type
-     */
-    public GraphQLObjectType getType() {
-        GraphQLTypeReference[] interfaces = this.getInterfaces();
-
-        // @formatter:off
-        return GraphQLObjectType.newObject()
-                .name(this.nameProvider.getName(this.eClass, NameKind.TYPE)) 
-                .fields(new FieldsBuilder(this.eClass, this.eDataTypeToOutputTypeCache)
-                        .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                        .getFields())
-                .withInterfaces(interfaces)
-                .withInterface(new GraphQLTypeReference(EMFSchemaConstants.EOBJECT_TYPE))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the interfaces implemented by the EClass.
-     *
-     * @return The interfaces implemented by the EClass
-     */
-    private GraphQLTypeReference[] getInterfaces() {
-        List<EClass> eAllSuperTypes = new ArrayList<>(this.eClass.getEAllSuperTypes());
-        Collections.reverse(eAllSuperTypes);
-
-        // @formatter:off
-        return eAllSuperTypes.stream()
-                .map(EClass::getName)
-                .map(GraphQLTypeReference::new)
-                .toArray(GraphQLTypeReference[]::new);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EDataTypeCoercing.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EDataTypeCoercing.java
deleted file mode 100644
index 015ae80..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EDataTypeCoercing.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EFactory;
-
-import graphql.language.StringValue;
-import graphql.schema.Coercing;
-import graphql.schema.CoercingParseLiteralException;
-import graphql.schema.CoercingParseValueException;
-import graphql.schema.CoercingSerializeException;
-
-/**
- * Utility class used to parse and serialize a custom GraphQL scalar based on an EMF EDataType.
- * 
- * @author sbegaudeau
- */
-public class EDataTypeCoercing implements Coercing<Object, Object> {
-
-    /**
-     * The EDataType.
-     */
-    private final EDataType eDataType;
-
-    /**
-     * The eFactory instance.
-     */
-    private final EFactory eFactoryInstance;
-
-    /**
-     * The constructor.
-     * 
-     * @param eDataType
-     *            The EDataType
-     */
-    public EDataTypeCoercing(EDataType eDataType) {
-        this.eDataType = eDataType;
-        this.eFactoryInstance = this.eDataType.getEPackage().getEFactoryInstance();
-    }
-
-    @Override
-    public Object parseLiteral(Object literal) throws CoercingParseLiteralException {
-        if (literal instanceof StringValue) {
-            StringValue stringValue = (StringValue) literal;
-            String value = stringValue.getValue();
-            Object result = this.eFactoryInstance.createFromString(this.eDataType, value);
-            return result;
-        }
-        throw new CoercingParseValueException();
-    }
-
-    @Override
-    public Object parseValue(Object value) throws CoercingParseValueException {
-        if (value instanceof String) {
-            String stringValue = (String) value;
-            Object result = this.eFactoryInstance.createFromString(this.eDataType, stringValue);
-            return result;
-        }
-        throw new CoercingParseValueException();
-    }
-
-    @Override
-    public Object serialize(Object value) throws CoercingSerializeException {
-        return this.eFactoryInstance.convertToString(this.eDataType, value);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EEnumTypeBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EEnumTypeBuilder.java
deleted file mode 100644
index eb0c291..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EEnumTypeBuilder.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import org.eclipse.emf.ecore.EEnum;
-
-import graphql.schema.GraphQLEnumType;
-import graphql.schema.GraphQLEnumType.Builder;
-
-/**
- * Used to transform the definition of an EEnum into a GraphQL enum.
- * 
- * @author sbegaudeau
- */
-public class EEnumTypeBuilder {
-
-    /**
-     * The EEnum.
-     */
-    private EEnum eEnum;
-
-    /**
-     * The constructor.
-     * 
-     * @param eEnum
-     *            The EEnum
-     */
-    public EEnumTypeBuilder(EEnum eEnum) {
-        this.eEnum = eEnum;
-    }
-
-    /**
-     * Returns the GraphQL enum type.
-     * 
-     * @return The GraphQL enum type
-     */
-    public GraphQLEnumType getType() {
-        // @formatter:off
-        Builder builder = GraphQLEnumType.newEnum()
-                .name(this.eEnum.getName());
-        
-        this.eEnum.getELiterals().forEach(eEnumLiteral -> {
-            builder.value(eEnumLiteral.getName(), eEnumLiteral.getValue());
-        });
-        
-        return builder.build();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EMFGraphQLSchemaCustomizer.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EMFGraphQLSchemaCustomizer.java
deleted file mode 100644
index c21973e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EMFGraphQLSchemaCustomizer.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Contributes the GraphQL EMF schema into the GraphQL schema registry.
- * 
- * @author sbegaudeau
- */
-public class EMFGraphQLSchemaCustomizer implements ISiriusGraphQLSchemaCustomizer {
-
-    @Override
-    public String getIdentifier() {
-        return EcorePackage.eNS_URI;
-    }
-
-    @Override
-    public Builder customize(Builder graphQLSchemaBuilder, Function<GraphQLType, SiriusGraphQLFilterStatus> typeFilter, ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer) {
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        types.add(new EObjectTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new DynamicEObjectTypeProvider().getType(graphQLTypeCustomizer));
-        HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache = new HashMap<>();
-
-        // @formatter:off
-        types.addAll(new EPackageTypesProvider(EcorePackage.eINSTANCE)
-                .cache(eDataTypeToOutputTypeCache)
-                .getTypes(graphQLTypeCustomizer));
-        // @formatter:on
-
-        types.removeIf(graphQLType -> SiriusGraphQLFilterStatus.REJECT.equals(typeFilter.apply(graphQLType)));
-
-        return graphQLSchemaBuilder.additionalTypes(types);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EObjectTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EObjectTypeProvider.java
deleted file mode 100644
index 8b2e428..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EObjectTypeProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLInterfaceType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.TypeResolver;
-
-/**
- * Used to create the EObject type.
- * 
- * @author sbegaudeau
- */
-public class EObjectTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInterfaceType.newInterface()
-                .name(EMFSchemaConstants.EOBJECT_TYPE)
-                .typeResolver(this.getTypeResolver());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(EMFSchemaConstants.EOBJECT_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the type resolver.
-     * 
-     * @return The type resolver
-     */
-    private TypeResolver getTypeResolver() {
-        // @formatter:off
-        return environment -> {
-            Optional<EClass> optionalEClass = Optional.of(environment.getObject())
-                    .filter(EObject.class::isInstance)
-                    .map(EObject.class::cast)
-                    .map(EObject::eClass);
-            
-            return optionalEClass.map(EClass::getName)
-                    .map(environment.getSchema()::getObjectType)
-                    .orElse(environment.getSchema().getObjectType(EMFSchemaConstants.DYNAMICEOBJECT_TYPE));
-        };
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EPackageTypesProvider.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EPackageTypesProvider.java
deleted file mode 100644
index f75362f..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EPackageTypesProvider.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.stream.Stream;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypesProvider;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.INameProvider.NameKind;
-
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create all the GraphQL type definitions for a metamodel.
- *
- * @author sbegaudeau
- */
-public class EPackageTypesProvider implements ISiriusGraphQLTypesProvider {
-
-    /**
-     * The suffix of the implementation type.
-     */
-    private static final String IMPL_SUFFIX = "Impl"; //$NON-NLS-1$
-
-    /**
-     * The EPackage.
-     */
-    private EPackage ePackage;
-
-    /**
-     * The cache of the EDataType to GraphQL output type.
-     */
-    private HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache = new HashMap<>();
-
-    /**
-     * The filter used to select the EClassifier to consider.
-     */
-    private Function<EClassifier, SiriusGraphQLFilterStatus> eClassifierFilter = eClassifier -> {
-        if (EcorePackage.eINSTANCE.getEObject().equals(eClassifier)) {
-            return SiriusGraphQLFilterStatus.REJECT;
-        }
-        return SiriusGraphQLFilterStatus.KEEP;
-    };
-
-    /**
-     * The name provider.
-     */
-    private INameProvider nameProvider = (anEClass, nameKind) -> {
-        if (this.isExtendedClass(anEClass) && NameKind.TYPE.equals(nameKind)) {
-            return anEClass.getName() + IMPL_SUFFIX;
-        }
-        return anEClass.getName();
-    };
-
-    /**
-     * The EStructuralFeature filter.
-     */
-    private Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter = eStructuralFeature -> {
-        boolean shouldBeRejected = EcorePackage.eINSTANCE.getEJavaClass().equals(eStructuralFeature.getEType());
-        shouldBeRejected = shouldBeRejected || EcorePackage.eINSTANCE.getEJavaObject().equals(eStructuralFeature.getEType());
-        shouldBeRejected = shouldBeRejected || EcorePackage.eINSTANCE.getEFeatureMap().equals(eStructuralFeature.getEType());
-        shouldBeRejected = shouldBeRejected || EcorePackage.eINSTANCE.getEFeatureMapEntry().equals(eStructuralFeature.getEType());
-        if (shouldBeRejected) {
-            return SiriusGraphQLFilterStatus.REJECT;
-        }
-        return SiriusGraphQLFilterStatus.KEEP;
-    };
-
-    /**
-     * The constructor.
-     *
-     * @param ePackage
-     *            The EPackage
-     */
-    public EPackageTypesProvider(EPackage ePackage) {
-        this.ePackage = ePackage;
-    }
-
-    /**
-     * Sets the cache of the EDataType to GraphQL output type.
-     * 
-     * @param eDataTypeToOutputTypeCache
-     *            The cache
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EPackageTypesProvider cache(HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache) {
-        this.eDataTypeToOutputTypeCache = eDataTypeToOutputTypeCache;
-        return this;
-    }
-
-    /**
-     * Sets the filter used to select the EClassifier to consider.
-     * 
-     * @param eClassifierFilter
-     *            the filter
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EPackageTypesProvider eClassifierFilter(Function<EClassifier, SiriusGraphQLFilterStatus> eClassifierFilter) {
-        this.eClassifierFilter = eClassifierFilter;
-        return this;
-    }
-
-    /**
-     * Sets the name provider.
-     * 
-     * @param nameProvider
-     *            The name provider
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public EPackageTypesProvider nameProvider(INameProvider nameProvider) {
-        this.nameProvider = nameProvider;
-        return this;
-    }
-
-    @Override
-    public Set<GraphQLType> getTypes(ISiriusGraphQLTypeCustomizer customizer) {
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        // @formatter:off
-        Stream<EClass> eClassStream = this.ePackage.getEClassifiers().stream()
-                .filter(eClassifier -> SiriusGraphQLFilterStatus.KEEP.equals(this.eClassifierFilter.apply(eClassifier)))
-                .filter(EClass.class::isInstance)
-                .map(EClass.class::cast);
-        
-        eClassStream.forEach(eClass -> {
-            if (eClass.isAbstract() || eClass.isInterface()) {
-                types.add(this.getInterfaceType(eClass));
-            } else if (this.isExtendedClass(eClass)) {
-                types.addAll(this.getExtendedClassTypes(eClass));
-            } else {
-                types.add(this.getEClassType(eClass));
-            }
-        });
-        // @formatter:on
-
-        return types;
-    }
-
-    /**
-     * Returns the interface type.
-     * 
-     * @param eClass
-     *            The EClass
-     * @return The interface types
-     */
-    private GraphQLType getInterfaceType(EClass eClass) {
-        // @formatter:off
-        return new EClassInterfaceTypeBuilder(eClass, this.eDataTypeToOutputTypeCache)
-                .nameProvider(this.nameProvider)
-                .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                .getType();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the extended class types.
-     * 
-     * @param eClass
-     *            The EClass
-     * @return The extended class types
-     */
-    private Set<GraphQLType> getExtendedClassTypes(EClass eClass) {
-        // @formatter:off
-        return new ExtendedEClassTypesBuilder(eClass, this.eDataTypeToOutputTypeCache)
-                .nameProvider(this.nameProvider)
-                .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                .getTypes();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the EClass type.
-     * 
-     * @param eClass
-     *            The EClass
-     * @return The EClass type
-     */
-    private GraphQLType getEClassType(EClass eClass) {
-        // @formatter:off
-        return new EClassObjectTypeBuilder(eClass, this.eDataTypeToOutputTypeCache)
-                .nameProvider(this.nameProvider)
-                .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                .getType();
-        // @formatter:on
-    }
-
-    /**
-     * Indicates if the EClass is extended by another EClass.
-     * 
-     * @return <code>true</code> if the EClass is extended by another EClass, <code>false</code> otherwise
-     */
-    private boolean isExtendedClass(EClass eClass) {
-        // @formatter:off
-        return eClass.getEPackage().getEClassifiers().stream()
-                .filter(EClass.class::isInstance)
-                .map(EClass.class::cast)
-                .filter(anEClass -> anEClass.getESuperTypes().contains(eClass))
-                .findFirst()
-                .isPresent();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EStructuralFeatureScalarTypeBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EStructuralFeatureScalarTypeBuilder.java
deleted file mode 100644
index 2cd4460..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/EStructuralFeatureScalarTypeBuilder.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import org.eclipse.emf.ecore.EDataType;
-
-import graphql.schema.GraphQLScalarType;
-
-/**
- * Utility class used to create GraphQL scalars for EMF EDataTypes.
- * 
- * @author sbegaudeau
- */
-public class EStructuralFeatureScalarTypeBuilder {
-
-    /**
-     * The separator used in the description of the scalar.
-     */
-    private static final String SEPARATOR = ":"; //$NON-NLS-1$
-
-    /**
-     * The EDataType.
-     */
-    private final EDataType eDataType;
-
-    /**
-     * The constructor.
-     * 
-     * @param eDataType
-     *            The EDataType
-     */
-    public EStructuralFeatureScalarTypeBuilder(EDataType eDataType) {
-        this.eDataType = eDataType;
-    }
-
-    /**
-     * Returns the GraphQL Scalar.
-     * 
-     * @return The GraphQL Scalar
-     */
-    public GraphQLScalarType getType() {
-        // @formatter:off
-        return GraphQLScalarType.newScalar()
-                .name(this.eDataType.getName())
-                .description(this.eDataType.getEPackage().getNsPrefix() + SEPARATOR + this.eDataType.getName())
-                .coercing(new EDataTypeCoercing(this.eDataType))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/ExtendedEClassTypesBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/ExtendedEClassTypesBuilder.java
deleted file mode 100644
index 67e8009..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/ExtendedEClassTypesBuilder.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to transformed the definition of an EClass which is extended by other EClass(es).
- * 
- * @author sbegaudeau
- */
-public class ExtendedEClassTypesBuilder {
-
-    /**
-     * The EClass.
-     */
-    private EClass eClass;
-
-    /**
-     * The cache of the EDataType to GraphQL output type.
-     */
-    private HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache;
-
-    /**
-     * The name provider.
-     */
-    private INameProvider nameProvider = (anEClass, nameKind) -> anEClass.getName();
-
-    /**
-     * The EStructuralFeature filter.
-     */
-    private Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter;
-
-    /**
-     * The constructor.
-     * 
-     * @param eClass
-     *            The EClass
-     * @param eDataTypeToOutputTypeCache
-     *            The cache of the EDataType to GraphQL output type
-     */
-    public ExtendedEClassTypesBuilder(EClass eClass, HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache) {
-        this.eClass = eClass;
-        this.eDataTypeToOutputTypeCache = eDataTypeToOutputTypeCache;
-    }
-
-    /**
-     * Sets the name provider.
-     * 
-     * @param nameProvider
-     *            The name provider
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public ExtendedEClassTypesBuilder nameProvider(INameProvider nameProvider) {
-        this.nameProvider = nameProvider;
-        return this;
-    }
-
-    /**
-     * Sets the EStructuralFeature filter.
-     * 
-     * @param eStructuralFeatureFilter
-     *            The EStructuralFeature
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public ExtendedEClassTypesBuilder eStructuralFeatureFilter(Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter) {
-        this.eStructuralFeatureFilter = eStructuralFeatureFilter;
-        return this;
-    }
-
-    /**
-     * Returns the GraphQL types.
-     * 
-     * @return The GraphQL type
-     */
-    public Set<GraphQLType> getTypes() {
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        // @formatter:off
-        GraphQLType interfaceType = new EClassInterfaceTypeBuilder(this.eClass, this.eDataTypeToOutputTypeCache)
-                .nameProvider(this.nameProvider)
-                .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                .getType();
-        
-        GraphQLObjectType objectType = new EClassObjectTypeBuilder(this.eClass, this.eDataTypeToOutputTypeCache)
-                .nameProvider(this.nameProvider)
-                .eStructuralFeatureFilter(this.eStructuralFeatureFilter)
-                .getType();
-        // @formatter:on
-
-        types.add(interfaceType);
-        types.add(objectType);
-
-        return types;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/FieldsBuilder.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/FieldsBuilder.java
deleted file mode 100644
index e6af048..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/FieldsBuilder.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLList;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLOutputType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to compute the fields of an EClass.
- * 
- * @author sbegaudeau
- */
-public class FieldsBuilder {
-
-    /**
-     * The EClass.
-     */
-    private EClass eClass;
-
-    /**
-     * The cache of the EDataType to GraphQL output type.
-     */
-    private HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache;
-
-    /**
-     * The EStructuralFeature filter.
-     */
-    private Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter = eStructuralFeature -> SiriusGraphQLFilterStatus.KEEP;
-
-    /**
-     * The constructor.
-     * 
-     * @param eClass
-     *            The EClass
-     * @param eDataTypeToOutputTypeCache
-     *            The cache of the EDataType to GraphQL output type
-     */
-    public FieldsBuilder(EClass eClass, HashMap<EDataType, GraphQLOutputType> eDataTypeToOutputTypeCache) {
-        this.eClass = eClass;
-        this.eDataTypeToOutputTypeCache = eDataTypeToOutputTypeCache;
-    }
-
-    /**
-     * Sets the EStructuralFeature filter.
-     * 
-     * @param eStructuralFeatureFilter
-     *            The EStructuralFeature
-     * @return The current builder
-     */
-    @SuppressWarnings({ "checkstyle:HiddenField" })
-    public FieldsBuilder eStructuralFeatureFilter(Function<EStructuralFeature, SiriusGraphQLFilterStatus> eStructuralFeatureFilter) {
-        this.eStructuralFeatureFilter = eStructuralFeatureFilter;
-        return this;
-    }
-
-    /**
-     * Returns the list of fields.
-     * 
-     * @return The lsit of fields
-     */
-    public List<GraphQLFieldDefinition> getFields() {
-        List<GraphQLFieldDefinition> fields = new ArrayList<>();
-
-        // @formatter:off
-        this.eClass.getEAllStructuralFeatures().stream()
-                .filter(this::isSupported)
-                .map(this::getField)
-                .forEach(fields::add);
-        // @formatter:on
-
-        return fields;
-    }
-
-    /**
-     * Indicates if the given EStructuralFeature is supported.
-     *
-     * @param eStructuralFeature
-     *            The EStructuralFeature
-     * @return <code>true</code> if the EStructuralFeature is supported, <code>false</code> otherwise
-     */
-    private boolean isSupported(EStructuralFeature eStructuralFeature) {
-        boolean isSupported = eStructuralFeature instanceof EAttribute;
-        isSupported = isSupported && SiriusGraphQLFilterStatus.KEEP == this.eStructuralFeatureFilter.apply(eStructuralFeature);
-        isSupported = isSupported && this.getScalar(((EAttribute) eStructuralFeature).getEAttributeType()) != null;
-        isSupported = isSupported || eStructuralFeature instanceof EReference;
-        return isSupported;
-    }
-
-    /**
-     * Returns the field for the given EStructuralFeature.
-     *
-     * @param eStructuralFeature
-     *            The EStructuralFeature
-     * @return The field for the given EStructuralFeature
-     */
-    private GraphQLFieldDefinition getField(EStructuralFeature eStructuralFeature) {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(eStructuralFeature.getName())
-                .type(this.getType(eStructuralFeature))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the type of the given EStructuralFeature.
-     *
-     * @param eStructuralFeature
-     *            The EStructuralFeature
-     * @return The type of the given EStructuralFeature
-     */
-    private GraphQLOutputType getType(EStructuralFeature eStructuralFeature) {
-        GraphQLOutputType type = null;
-        if (eStructuralFeature instanceof EAttribute) {
-            EAttribute eAttribute = (EAttribute) eStructuralFeature;
-            type = this.getScalar(eAttribute.getEAttributeType());
-
-            if (Scalars.GraphQLBoolean.equals(type) || Scalars.GraphQLInt.equals(type)) {
-                type = new GraphQLNonNull(type);
-            }
-        } else if (eStructuralFeature instanceof EReference) {
-            EReference eReference = (EReference) eStructuralFeature;
-            if (eReference.isMany()) {
-                type = new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(new GraphQLTypeReference(eReference.getEReferenceType().getName()))));
-            } else {
-                type = new GraphQLTypeReference(eReference.getEReferenceType().getName());
-            }
-        }
-        return type;
-    }
-
-    /**
-     * Returns the scalar matching the given EDataType.
-     *
-     * @param eDataType
-     *            The EDataType
-     * @return The scalar matching the given EDataType
-     */
-    private GraphQLOutputType getScalar(EDataType eDataType) {
-        GraphQLOutputType type = null;
-
-        if (EcorePackage.eINSTANCE.getEBigDecimal().equals(eDataType)) {
-            type = Scalars.GraphQLBigDecimal;
-        } else if (EcorePackage.eINSTANCE.getEBigInteger().equals(eDataType)) {
-            type = Scalars.GraphQLBigInteger;
-        } else if (EcorePackage.eINSTANCE.getEBoolean().equals(eDataType)) {
-            type = Scalars.GraphQLBoolean;
-        } else if (EcorePackage.eINSTANCE.getEByte().equals(eDataType)) {
-            type = Scalars.GraphQLByte;
-        } else if (EcorePackage.eINSTANCE.getEChar().equals(eDataType)) {
-            type = Scalars.GraphQLChar;
-        } else if (EcorePackage.eINSTANCE.getEFloat().equals(eDataType)) {
-            type = Scalars.GraphQLFloat;
-        } else if (EcorePackage.eINSTANCE.getEInt().equals(eDataType)) {
-            type = Scalars.GraphQLInt;
-        } else if (EcorePackage.eINSTANCE.getELong().equals(eDataType)) {
-            type = Scalars.GraphQLLong;
-        } else if (EcorePackage.eINSTANCE.getEShort().equals(eDataType)) {
-            type = Scalars.GraphQLShort;
-        } else if (EcorePackage.eINSTANCE.getEString().equals(eDataType)) {
-            type = Scalars.GraphQLString;
-        } else {
-            type = this.eDataTypeToOutputTypeCache.computeIfAbsent(eDataType, (dataType) -> {
-                GraphQLOutputType graphQLOutputType = null;
-                if (dataType instanceof EEnum) {
-                    EEnum eEnum = (EEnum) dataType;
-                    graphQLOutputType = new EEnumTypeBuilder(eEnum).getType();
-                } else if (dataType.isSerializable()) {
-                    graphQLOutputType = new EStructuralFeatureScalarTypeBuilder(eDataType).getType();
-                }
-                return graphQLOutputType;
-            });
-        }
-
-        return type;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/INameProvider.java b/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/INameProvider.java
deleted file mode 100644
index b7e65cb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.emf/src/org/eclipse/sirius/services/graphql/emf/internal/schema/INameProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.emf.internal.schema;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * Interface used to compute the name of the type created for the given EClass.
- * 
- * @author sbegaudeau
- */
-public interface INameProvider {
-    /**
-     * Indicates if we are considering the EClass for the name of a type or the name of an interface.
-     * 
-     * @author sbegaudeau
-     */
-    enum NameKind {
-    /**
-     * Indicates that we are looking for the name of a type.
-     */
-    TYPE,
-    /**
-     * Indicates that we are looking for the name of an interface.
-     */
-    INTERFACE
-    }
-
-    /**
-     * Returns the name to use for the given EClass.
-     * 
-     * @param eClass
-     *            The EClass
-     * @param nameKind
-     *            The kind of name that we are looking for
-     * @return The name of the GraphQL type
-     */
-    String getName(EClass eClass, NameKind nameKind);
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.checkstyle b/plugins/org.eclipse.sirius.services.graphql.workspace/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.classpath b/plugins/org.eclipse.sirius.services.graphql.workspace/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.project b/plugins/org.eclipse.sirius.services.graphql.workspace/.project
deleted file mode 100644
index ae72461..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.graphql.workspace</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.graphql.workspace/META-INF/MANIFEST.MF
deleted file mode 100644
index cb98cb5..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.graphql.workspace;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.services.graphql.workspace
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.services.graphql.workspace.api;version="7.0.0",
- org.eclipse.sirius.services.graphql.workspace.internal;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.workspace.internal.schema;version="7.0.0";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
- org.eclipse.core.resources;bundle-version="3.0.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.sirius.services.graphql.common;bundle-version="7.0.0"
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.services.graphql.workspace.internal.SiriusGraphQLWorkspacePlugin$Implementation
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/about.html b/plugins/org.eclipse.sirius.services.graphql.workspace/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/build.properties b/plugins/org.eclipse.sirius.services.graphql.workspace/build.properties
deleted file mode 100644
index 9110b91..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.properties b/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.properties
deleted file mode 100644
index 1ac1d67..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL Workspace API
-providerName = Eclipse Modeling Project
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.xml b/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.xml
deleted file mode 100644
index 02e4707..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.sirius.services.graphql.common.siriusGraphqlSchemaCustomizer">
-      <descriptor
-            class="org.eclipse.sirius.services.graphql.workspace.internal.schema.WorkspaceSchemaCustomizer"
-            id="org.eclipse.sirius.services.graphql.workspace.graphqlSchemaCustomizer">
-      </descriptor>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/pom.xml b/plugins/org.eclipse.sirius.services.graphql.workspace/pom.xml
deleted file mode 100644
index e89cfb1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2019 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.graphql.workspace</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/api/WorkspaceSchemaConstants.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/api/WorkspaceSchemaConstants.java
deleted file mode 100644
index e5f1d0a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/api/WorkspaceSchemaConstants.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.api;
-
-/**
- * Constants from the workspace schema.
- * 
- * @author sbegaudeau
- */
-public final class WorkspaceSchemaConstants {
-
-    /**
-     * The identifier of the schema.
-     */
-    public static final String IDENTIFIER = "org.eclipse.sirius.services.graphql.workspace"; //$NON-NLS-1$
-
-    /**
-     * The name of the Project type.
-     */
-    public static final String PROJECT_TYPE = "Project"; //$NON-NLS-1$
-
-    /**
-     * The name of the Folder type.
-     */
-    public static final String FOLDER_TYPE = "Folder"; //$NON-NLS-1$
-
-    /**
-     * The name of the File type.
-     */
-    public static final String FILE_TYPE = "File"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private WorkspaceSchemaConstants() {
-        // Prevent instantiation
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/SiriusGraphQLWorkspacePlugin.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/SiriusGraphQLWorkspacePlugin.java
deleted file mode 100644
index a3facb5..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/SiriusGraphQLWorkspacePlugin.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius services GraphQL workspace plugin.
- *
- * @author sbegaudeau
- */
-public final class SiriusGraphQLWorkspacePlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.services.graphql.workspace"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusGraphQLWorkspacePlugin INSTANCE = new SiriusGraphQLWorkspacePlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLWorkspacePlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusGraphQLWorkspacePlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerResourcesField.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerResourcesField.java
deleted file mode 100644
index 4dc1b5b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerResourcesField.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.workspace.internal.SiriusGraphQLWorkspacePlugin;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the resources field of the container.
- *
- * @author sbegaudeau
- */
-public final class ContainerResourcesField {
-
-    /**
-     * The name of the resources field.
-     */
-    private static final String RESOURCES_FIELD = "resources"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of a resource.
-     */
-    private static final int COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private ContainerResourcesField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the resources field.
-     *
-     * @return The resources field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(RESOURCES_FIELD)
-                .type(new GraphQLTypeReference(ContainerTypesProvider.CONTAINER_RESOURCE_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .dataFetcher(ContainerResourcesField.getResourcesDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the resources data fetcher.
-     *
-     * @return The resources data fetcher
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getResourcesDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            return Optional.of(environment.getSource())
-                    .filter(IContainer.class::isInstance)
-                    .map(IContainer.class::cast)
-                    .map(ContainerResourcesField::getResources)
-                    .map(Arrays::asList)
-                    .orElseGet(ArrayList::new);
-        }, ContainerResourcesField::computeCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Computes the cursor of the given resource.
-     * 
-     * @param resource
-     *            The resource
-     * @return The cursor of the resource
-     */
-    private static String computeCursor(IResource resource) {
-        String unEncodedCursor = resource.getName();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-
-    /**
-     * Returns the resources of the given container.
-     *
-     * @param iContainer
-     *            The container
-     * @return The resources of the given container
-     */
-    private static IResource[] getResources(IContainer iContainer) {
-        try {
-            return iContainer.members();
-        } catch (CoreException exception) {
-            IStatus status = new Status(IStatus.ERROR, SiriusGraphQLWorkspacePlugin.PLUGIN_ID, exception.getMessage(), exception);
-            SiriusGraphQLWorkspacePlugin.getPlugin().log(status);
-        }
-        return new IResource[0];
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerTypesProvider.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerTypesProvider.java
deleted file mode 100644
index 860ef9e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ContainerTypesProvider.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider.CONNECTION_SUFFIX;
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider.EDGE_SUFFIX;
-import static org.eclipse.sirius.services.graphql.workspace.internal.schema.ResourceTypeProvider.RESOURCE_TYPE;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypesProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLInterfaceType.Builder;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the Container interface of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class ContainerTypesProvider implements ISiriusGraphQLTypesProvider {
-    /**
-     * The name of the Container type.
-     */
-    public static final String CONTAINER_TYPE = "Container"; //$NON-NLS-1$
-
-    /**
-     * The name of the Container to Resource connection type.
-     */
-    public static final String CONTAINER_RESOURCE_CONNECTION_TYPE = CONTAINER_TYPE + RESOURCE_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the Container to Resource edge type.
-     */
-    public static final String CONTAINER_RESOURCE_EDGE_TYPE = CONTAINER_TYPE + RESOURCE_TYPE + EDGE_SUFFIX;
-
-    @Override
-    public Set<GraphQLType> getTypes(ISiriusGraphQLTypeCustomizer customizer) {
-        GraphQLObjectType resourceEdge = new SiriusGraphQLEdgeTypeProvider(CONTAINER_RESOURCE_EDGE_TYPE, RESOURCE_TYPE).getType(customizer);
-        GraphQLObjectType resourceConnection = new SiriusGraphQLConnectionTypeProvider(CONTAINER_RESOURCE_CONNECTION_TYPE, CONTAINER_RESOURCE_EDGE_TYPE).getType(customizer);
-
-        // @formatter:off
-        Builder containerBuilder = GraphQLInterfaceType.newInterface()
-                .name(CONTAINER_TYPE)
-                .field(ContainerResourcesField.build())
-                .typeResolver(ResourceTypeResolver.build());
-        // @formatter:on
-
-        Builder customizedContainerBuilder = customizer.customize(CONTAINER_TYPE, containerBuilder);
-
-        Set<GraphQLType> types = new LinkedHashSet<>();
-        types.add(customizedContainerBuilder.build());
-        types.add(resourceEdge);
-        types.add(resourceConnection);
-        return types;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FileTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FileTypeProvider.java
deleted file mode 100644
index 0d704e2..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FileTypeProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the File object of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class FileTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(WorkspaceSchemaConstants.FILE_TYPE)
-                .field(ResourceNameField.build())
-                .field(ResourcePathField.build())
-                .field(ResourceContainerField.build())
-                .field(ResourceProjectField.build())
-                .withInterface(new GraphQLTypeReference(ResourceTypeProvider.RESOURCE_TYPE));
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(WorkspaceSchemaConstants.FILE_TYPE, builder);
-        return customizedBuilder.build();
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FolderTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FolderTypeProvider.java
deleted file mode 100644
index 1a7a953..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/FolderTypeProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the Folder object of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class FolderTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(WorkspaceSchemaConstants.FOLDER_TYPE)
-                .field(ResourceNameField.build())
-                .field(ResourcePathField.build())
-                .field(ResourceContainerField.build())
-                .field(ResourceProjectField.build())
-                .field(ContainerResourcesField.build())
-                .withInterface(new GraphQLTypeReference(ResourceTypeProvider.RESOURCE_TYPE))
-                .withInterface(new GraphQLTypeReference(ContainerTypesProvider.CONTAINER_TYPE));
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(WorkspaceSchemaConstants.FOLDER_TYPE, builder);
-        return customizedBuilder.build();
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectNameArgument.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectNameArgument.java
deleted file mode 100644
index fe34686..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectNameArgument.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the projectName argument.
- *
- * @author sbegaudeau
- */
-public final class ProjectNameArgument {
-    /**
-     * The name of the projectName argument.
-     */
-    public static final String PROJECT_NAME_ARG = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ProjectNameArgument() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the projectName field.
-     *
-     * @return The projectName field
-     */
-    public static GraphQLArgument build() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PROJECT_NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectTypeProvider.java
deleted file mode 100644
index 83a5519..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ProjectTypeProvider.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-import org.eclipse.sirius.services.graphql.workspace.internal.SiriusGraphQLWorkspacePlugin;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the Project type of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class ProjectTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the description field.
-     */
-    private static final String DESCRIPTION_FIELD = "description"; //$NON-NLS-1$
-
-    /**
-     * The name of the resourceByPath field.
-     */
-    private static final String RESOURCE_BY_PATH_FIELD = "resourceByPath"; //$NON-NLS-1$
-
-    /**
-     * The name of the path argument.
-     */
-    private static final String PATH_ARG = "path"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(WorkspaceSchemaConstants.PROJECT_TYPE)
-                .field(ResourceNameField.build())
-                .field(ResourcePathField.build())
-                .field(ResourceContainerField.build())
-                .field(ResourceProjectField.build())
-                .field(ContainerResourcesField.build())
-                .field(this.getDescriptionField())
-                .field(this.getResourceByPathField())
-                .withInterface(new GraphQLTypeReference(ResourceTypeProvider.RESOURCE_TYPE))
-                .withInterface(new GraphQLTypeReference(ContainerTypesProvider.CONTAINER_TYPE));
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(WorkspaceSchemaConstants.PROJECT_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the description field.
-     *
-     * @return The description field
-     */
-    private GraphQLFieldDefinition getDescriptionField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(DESCRIPTION_FIELD)
-                .type(Scalars.GraphQLString)
-                .dataFetcher(this.getDescriptionDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the data fetcher for the description.
-     *
-     * @return The data fetcher for the description
-     */
-    private DataFetcher<String> getDescriptionDataFetcher() {
-        return environment -> {
-            String description = null;
-
-            Object source = environment.getSource();
-            if (source instanceof IProject) {
-                IProject iProject = (IProject) source;
-                try {
-                    IProjectDescription projectDescription = iProject.getDescription();
-                    description = projectDescription.getComment();
-                } catch (CoreException exception) {
-                    IStatus status = new Status(IStatus.ERROR, SiriusGraphQLWorkspacePlugin.PLUGIN_ID, exception.getMessage(), exception);
-                    SiriusGraphQLWorkspacePlugin.getPlugin().log(status);
-                }
-            }
-            return description;
-        };
-    }
-
-    /**
-     * Returns the resource by path field.
-     *
-     * @return The resource by path field
-     */
-    private GraphQLFieldDefinition getResourceByPathField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(RESOURCE_BY_PATH_FIELD)
-                .argument(this.getResourceByPathPathArg())
-                .type(new GraphQLTypeReference(ResourceTypeProvider.RESOURCE_TYPE))
-                .dataFetcher(this.getResourcebyPathDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the resource by path path argument.
-     *
-     * @return The resource by path path argument
-     */
-    private GraphQLArgument getResourceByPathPathArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PATH_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the resource by path data fetcher.
-     *
-     * @return The resource by path data fetcher.
-     */
-    private DataFetcher<IResource> getResourcebyPathDataFetcher() {
-        return environment -> {
-            Object source = environment.getSource();
-            Object pathArg = environment.getArgument(PATH_ARG);
-            if (source instanceof IProject && pathArg instanceof String) {
-                IProject iProject = (IProject) source;
-                String path = (String) pathArg;
-
-                return iProject.findMember(path);
-            }
-            return null;
-        };
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceContainerField.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceContainerField.java
deleted file mode 100644
index d95ddab..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceContainerField.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The container field of the resources.
- *
- * @author sbegaudeau
- */
-public final class ResourceContainerField {
-    /**
-     * The name of the container field.
-     */
-    private static final String CONTAINER_FIELD = "container"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ResourceContainerField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the container field.
-     *
-     * @return The container field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CONTAINER_FIELD)
-                .type(new GraphQLTypeReference(ContainerTypesProvider.CONTAINER_TYPE))
-                .dataFetcher(ResourceContainerField.getContainerDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the container data fetcher.
-     *
-     * @return The container data fetcher
-     */
-    private static DataFetcher<IContainer> getContainerDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(IResource.class::isInstance)
-                .map(IResource.class::cast)
-                .map(iResource -> {
-                    if (iResource instanceof IProject) {
-                        return null; // Do not expose the WorkspaceRoot to the API
-                    }
-                    return iResource.getParent();
-                })
-                .orElse(null);
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceNameField.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceNameField.java
deleted file mode 100644
index d60b5c3..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceNameField.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * The name field of the resources.
- *
- * @author sbegaudeau
- */
-public final class ResourceNameField {
-
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ResourceNameField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the name field.
-     * 
-     * @return The name field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourcePathField.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourcePathField.java
deleted file mode 100644
index 0962197..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourcePathField.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * The path field of the resources.
- *
- * @author sbegaudeau
- */
-public final class ResourcePathField {
-
-    /**
-     * The name of the path field.
-     */
-    private static final String PATH_FIELD = "path"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ResourcePathField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the path field.
-     *
-     * @return The path field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(PATH_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .dataFetcher(ResourcePathField.getPathDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the path data fetcher.
-     *
-     * @return The path data fetcher
-     */
-    private static DataFetcher<String> getPathDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getSource())
-                .filter(IResource.class::isInstance)
-                .map(IResource.class::cast)
-                .map(IResource::getProjectRelativePath)
-                .map(IPath::toString)
-                .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceProjectField.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceProjectField.java
deleted file mode 100644
index 00d5528..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceProjectField.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the project field of the resource.
- *
- * @author sbegaudeau
- */
-public final class ResourceProjectField {
-    /**
-     * The name of the project field.
-     */
-    private static final String PROJECT_FIELD = "project"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ResourceProjectField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the project field.
-     *
-     * @return The project field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(PROJECT_FIELD)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE)))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeProvider.java
deleted file mode 100644
index c1f26ac..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLInterfaceType.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the Resource interface of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class ResourceTypeProvider implements ISiriusGraphQLTypeProvider {
-    /**
-     * The name of the Resource type.
-     */
-    public static final String RESOURCE_TYPE = "Resource"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInterfaceType.newInterface()
-                .name(RESOURCE_TYPE)
-                .field(ResourceNameField.build())
-                .field(ResourcePathField.build())
-                .field(ResourceContainerField.build())
-                .field(ResourceProjectField.build())
-                .typeResolver(ResourceTypeResolver.build());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(RESOURCE_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeResolver.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeResolver.java
deleted file mode 100644
index fb92e62..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/ResourceTypeResolver.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.TypeResolver;
-
-/**
- * Used to resolve the type of the resources.
- *
- * @author sbegaudeau
- */
-public final class ResourceTypeResolver {
-    /**
-     * The constructor.
-     */
-    private ResourceTypeResolver() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the type resolver.
-     *
-     * @return The type resolver
-     */
-    public static TypeResolver build() {
-        return environment -> {
-            GraphQLObjectType type = null;
-            Object object = environment.getObject();
-            if (object instanceof IProject) {
-                type = environment.getSchema().getObjectType(WorkspaceSchemaConstants.PROJECT_TYPE);
-            } else if (object instanceof IFolder) {
-                type = environment.getSchema().getObjectType(WorkspaceSchemaConstants.FOLDER_TYPE);
-            } else if (object instanceof IFile) {
-                type = environment.getSchema().getObjectType(WorkspaceSchemaConstants.FILE_TYPE);
-            }
-            return type;
-        };
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/WorkspaceSchemaCustomizer.java b/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/WorkspaceSchemaCustomizer.java
deleted file mode 100644
index 18c4638..0000000
--- a/plugins/org.eclipse.sirius.services.graphql.workspace/src/org/eclipse/sirius/services/graphql/workspace/internal/schema/WorkspaceSchemaCustomizer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.workspace.internal.schema;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.common.api.pagination.PageInfoTypeProvider;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Contributes the GraphQL Workspace schema into the GraphQL schema registry.
- * 
- * @author sbegaudeau
- */
-public class WorkspaceSchemaCustomizer implements ISiriusGraphQLSchemaCustomizer {
-
-    @Override
-    public String getIdentifier() {
-        return WorkspaceSchemaConstants.IDENTIFIER;
-    }
-
-    @Override
-    public Builder customize(Builder graphQLSchemaBuilder, Function<GraphQLType, SiriusGraphQLFilterStatus> typeFilter, ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer) {
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        types.add(new ResourceTypeProvider().getType(graphQLTypeCustomizer));
-        types.addAll(new ContainerTypesProvider().getTypes(graphQLTypeCustomizer));
-        types.add(new ProjectTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new FolderTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new FileTypeProvider().getType(graphQLTypeCustomizer));
-        types.add(new PageInfoTypeProvider().getType(graphQLTypeCustomizer));
-
-        types.removeIf(graphQLType -> SiriusGraphQLFilterStatus.REJECT.equals(typeFilter.apply(graphQLType)));
-
-        return graphQLSchemaBuilder.additionalTypes(types);
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/.checkstyle b/plugins/org.eclipse.sirius.services.graphql/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.services.graphql/.classpath b/plugins/org.eclipse.sirius.services.graphql/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.services.graphql/.project b/plugins/org.eclipse.sirius.services.graphql/.project
deleted file mode 100644
index 5dfa527..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.services.graphql</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.services.graphql/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.services.graphql/META-INF/MANIFEST.MF
deleted file mode 100644
index b557e13..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,34 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.services.graphql
-Bundle-Version: 7.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.services.graphql.api;version="7.0.0",
- org.eclipse.sirius.services.graphql.internal;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.internal.entities;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.internal.schema;version="7.0.0";x-friends:="org.eclipse.sirius.tests.services.graphql",
- org.eclipse.sirius.services.graphql.internal.schema.mutation;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.internal.schema.query;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.internal.schema.query.user;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.services.graphql.internal.schema.mutation;version="7.0.0";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
- org.eclipse.core.resources;bundle-version="3.8.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.emf.ecore;bundle-version="2.8.0",
- org.eclipse.emf.transaction;bundle-version="1.5.0",
- org.eclipse.sirius;bundle-version="7.0.0",
- org.eclipse.sirius.ext.base;bundle-version="7.0.0",
- org.eclipse.sirius.services.common;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.common;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.core;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.emf;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.workspace;bundle-version="7.0.0"
-Automatic-Module-Name: org.eclipse.sirius.services.graphql
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.sirius.services.graphql.internal.SiriusGraphQLPlugin$Implementation
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.language;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
diff --git a/plugins/org.eclipse.sirius.services.graphql/about.html b/plugins/org.eclipse.sirius.services.graphql/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql/build.properties b/plugins/org.eclipse.sirius.services.graphql/build.properties
deleted file mode 100644
index aab2639..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018, 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.services.graphql/plugin.properties b/plugins/org.eclipse.sirius.services.graphql/plugin.properties
deleted file mode 100644
index 476fd87..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/plugin.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018, 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL API
-providerName = Eclipse Modeling Project
-
-SiriusGraphQLInterpreter_wrongPropertyTypeWarning=The value of the property {0} is not an integer. The default value, {1} will be used instead."
-SiriusGraphQLUserEPackagesField_defaultMetamodels=http://www.w3.org/XML/1998/namespace,\
-http://www.eclipse.org/emf/2002/Ecore,\
-http://www.eclipse.org/emf/2003/Change,\
-http://www.eclipse.org/emf/2002/Tree,\
-http://www.eclipse.org/emf/2003/XMLType,\
-http://www.eclipse.org/emf/2009/Validation,\
-http://www.eclipse.org/gmf/runtime/1.0.2/notation,\
-http:///org/eclipse/emf/ecore/util/DateConversionDelegateAnnotation,\
-http:///org/eclipse/emf/ecore/util/EcoreAnnotation,\
-http:///org/eclipse/emf/ecore/util/ExtendedMetaData,\
-http://www.eclipse.org/sirius/1.1.0,\
-http://www.eclipse.org/sirius/description/1.1.0,\
-http://www.eclipse.org/sirius/description/audit/1.1.0,\
-http://www.eclipse.org/sirius/description/style/1.1.0,\
-http://www.eclipse.org/sirius/description/tool/1.1.0,\
-http://www.eclipse.org/sirius/description/validation/1.1.0,\
-http://www.eclipse.org/sirius/diagram/1.1.0,\
-http://www.eclipse.org/sirius/diagram/description/1.1.0,\
-http://www.eclipse.org/sirius/diagram/description/concern/1.1.0,\
-http://www.eclipse.org/sirius/diagram/description/filter/1.1.0,\
-http://www.eclipse.org/sirius/diagram/description/style/1.1.0,\
-http://www.eclipse.org/sirius/diagram/description/tool/1.1.0,\
-http://www.eclipse.org/sirius/table/1.1.0,\
-http://www.eclipse.org/sirius/table/description/1.1.0,\
-http://www.eclipse.org/sirius/tree/1.0.0,\
-http://www.eclipse.org/sirius/tree/description/1.0.0,\
-http://www.eclipse.org/sirius/workflow/1.0.0
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.services.graphql/pom.xml b/plugins/org.eclipse.sirius.services.graphql/pom.xml
deleted file mode 100644
index c09243b..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.services.graphql</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/ISiriusGraphQLQueryResult.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/ISiriusGraphQLQueryResult.java
deleted file mode 100644
index cd292eb..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/ISiriusGraphQLQueryResult.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.api;
-
-import java.util.Map;
-
-/**
- * Interface of the execution result.
- *
- * @author sbegaudeau
- */
-public interface ISiriusGraphQLQueryResult {
-    /**
-     * Retrieve the data of the result.
-     * 
-     * @return The data of the result
-     */
-    Map<String, Object> getData();
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/SiriusGraphQLInterpreter.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/SiriusGraphQLInterpreter.java
deleted file mode 100644
index 0027ffc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/api/SiriusGraphQLInterpreter.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.api;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLContext;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLMessages;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLPlugin;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.internal.schema.SiriusGraphQLSchemaProvider;
-
-import graphql.ExecutionInput;
-import graphql.ExecutionResult;
-import graphql.GraphQL;
-import graphql.schema.GraphQLSchema;
-
-/**
- * The GraphQL interpreter.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLInterpreter {
-
-    /**
-     * The constant used to set a custom value for the max cost allowed in a GraphQL query.
-     */
-    private static final String MAX_COST = "org.eclipse.sirius.services.graphql.cost"; //$NON-NLS-1$
-
-    /**
-     * The maximal cost allowed for a GraphQL query.
-     */
-    private static final int DEFAULT_MAX_COST = 100;
-
-    /**
-     * The schema.
-     */
-    private GraphQLSchema schema;
-
-    /**
-     * The constructor.
-     */
-    public SiriusGraphQLInterpreter() {
-        this(new SiriusGraphQLSchemaProvider().getSchema());
-    }
-
-    /**
-     * The constructor.
-     * 
-     * @param schema
-     *            The GraphQL schema to use
-     */
-    public SiriusGraphQLInterpreter(GraphQLSchema schema) {
-        this.schema = schema;
-    }
-
-    /**
-     * Executes the given query.
-     *
-     * @param query
-     *            The query
-     * @param variables
-     *            The variables
-     * @param operationName
-     *            The name of the operation
-     * @param context
-     *            The context of the execution
-     * @return The result of the execution
-     */
-    public ISiriusGraphQLQueryResult execute(String query, Map<String, Object> variables, String operationName, Object context) {
-        // @formatter:off
-        ExecutionInput executionInput = ExecutionInput.newExecutionInput()
-                .query(query)
-                .variables(variables)
-                .operationName(operationName)
-                .context(new SiriusGraphQLContext(this.getMaxCost()))
-                .build();
-
-        GraphQL graphQL = GraphQL.newGraphQL(this.schema)
-                .build();
-        // @formatter:on
-
-        ExecutionResult executionResult = graphQL.execute(executionInput);
-
-        return new SiriusGraphQLQueryResult(executionResult);
-    }
-
-    /**
-     * Returns the maximum cost of a GraphQL query.
-     * 
-     * @return The maximum cost of a GraphQL query
-     */
-    private int getMaxCost() {
-        int value = DEFAULT_MAX_COST;
-        String propertyValue = System.getProperty(MAX_COST);
-        if (propertyValue != null && propertyValue.length() > 0) {
-            try {
-                value = Integer.parseInt(propertyValue);
-            } catch (NumberFormatException exception) {
-                String message = String.format(SiriusGraphQLMessages.SiriusGraphQLInterpreter_wrongPropertyTypeWarning, propertyValue, DEFAULT_MAX_COST);
-                IStatus status = new Status(IStatus.ERROR, SiriusGraphQLPlugin.PLUGIN_ID, message, exception);
-                SiriusGraphQLPlugin.getPlugin().getLog().log(status);
-            }
-        }
-        return value;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLMessages.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLMessages.java
deleted file mode 100644
index 18d6400..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLMessages.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Utility class containing the messages.
- * 
- * @author sbegaudeau
- */
-public final class SiriusGraphQLMessages {
-
-    static {
-        I18N.initializeMessages(SiriusGraphQLMessages.class, SiriusGraphQLPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-
-    @TranslatableMessage
-    public static String SiriusGraphQLPaginationDataFetcher_invalidArguments;
-
-    @TranslatableMessage
-    public static String SiriusGraphQLContext_requestTooExpensive;
-
-    @TranslatableMessage
-    public static String SiriusGraphQLInterpreter_wrongPropertyTypeWarning;
-
-    @TranslatableMessage
-    public static String SiriusGraphQLUserEPackagesField_defaultMetamodels;
-
-    // CHECKSTYLE:ON
-
-    private SiriusGraphQLMessages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLPlugin.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLPlugin.java
deleted file mode 100644
index a77790c..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLPlugin.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the Sirius services GraphQL plugin.
- *
- * @author sbegaudeau
- */
-public final class SiriusGraphQLPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.services.graphql"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusGraphQLPlugin INSTANCE = new SiriusGraphQLPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusGraphQLPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLQueryResult.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLQueryResult.java
deleted file mode 100644
index 79c6f86..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/SiriusGraphQLQueryResult.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal;
-
-import java.util.Map;
-
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-
-import graphql.ExecutionResult;
-
-/**
- * The execution result.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLQueryResult implements ISiriusGraphQLQueryResult {
-
-    /**
-     * The execution result.
-     */
-    private ExecutionResult executionResult;
-
-    /**
-     * The constructor.
-     *
-     * @param executionResult
-     *            The execution result
-     */
-    public SiriusGraphQLQueryResult(ExecutionResult executionResult) {
-        this.executionResult = executionResult;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @see org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult#getData()
-     */
-    @Override
-    public Map<String, Object> getData() {
-        return this.executionResult.toSpecification();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/entities/SiriusGraphQLUser.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/entities/SiriusGraphQLUser.java
deleted file mode 100644
index 7d24919..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/entities/SiriusGraphQLUser.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.entities;
-
-/**
- * An user of the GraphQL API.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLUser {
-    // Do nothing on purpose :)
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SchemaConstants.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SchemaConstants.java
deleted file mode 100644
index 3895b88..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SchemaConstants.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema;
-
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider.CONNECTION_SUFFIX;
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider.EDGE_SUFFIX;
-import static org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE;
-import static org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants.REPRESENTATION_TYPE;
-import static org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants.VIEWPOINT_TYPE;
-import static org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants.EOBJECT_TYPE;
-import static org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants.EPACKAGE_TYPE;
-import static org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants.FILE_TYPE;
-import static org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants.PROJECT_TYPE;
-
-/**
- * Constants for the Core GraphQL schema.
- * 
- * @author sbegaudeau
- */
-public final class SchemaConstants {
-    /**
-     * The name of the RepresentationDescription to EPackage connection type.
-     */
-    public static final String REPRESENTATION_DESCRIPTION_EPACKAGE_CONNECTION_TYPE = REPRESENTATION_DESCRIPTION_TYPE + EPACKAGE_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the RepresentationDescription to EPackage edge type.
-     */
-    public static final String REPRESENTATION_DESCRIPTION_EPACKAGE_EDGE_TYPE = REPRESENTATION_DESCRIPTION_TYPE + EPACKAGE_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The name of the Project to Viewpoint connection type.
-     */
-    public static final String PROJECT_VIEWPOINT_CONNECTION_TYPE = PROJECT_TYPE + VIEWPOINT_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the Project to Viewpoint edge type.
-     */
-    public static final String PROJECT_VIEWPOINT_EDGE_TYPE = PROJECT_TYPE + VIEWPOINT_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The name of the File to Representation connection type.
-     */
-    public static final String FILE_REPRESENTATION_CONNECTION_TYPE = FILE_TYPE + REPRESENTATION_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the File to Representation edge type.
-     */
-    public static final String FILE_REPRESENTATION_EDGE_TYPE = FILE_TYPE + REPRESENTATION_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The name of the File to EObject connection type.
-     */
-    public static final String FILE_EOBJECT_CONNECTION_TYPE = FILE_TYPE + EOBJECT_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the File to EObject edge type.
-     */
-    public static final String FILE_EOBJECT_EDGE_TYPE = FILE_TYPE + EOBJECT_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The constructor.
-     */
-    private SchemaConstants() {
-        // Prevent instantiation
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLArguments.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLArguments.java
deleted file mode 100644
index 30e44f6..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLArguments.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-
-/**
- * Used to create arguments.
- *
- * @author sbegaudeau
- */
-public final class SiriusGraphQLArguments {
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLArguments() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Creates a new string-based argument.
-     * 
-     * @param name
-     *            The name of the argument
-     * @return A new string-based argument
-     */
-    public static GraphQLArgument newString(String name) {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(name)
-                .type(Scalars.GraphQLString)
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLSchemaProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLSchemaProvider.java
deleted file mode 100644
index 4991c80..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLSchemaProvider.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema;
-
-import java.util.Collection;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLSchemaCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLCommonPlugin;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.common.api.pagination.PageInfoTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-import org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants;
-import org.eclipse.sirius.services.graphql.internal.schema.mutation.FileCreationDescriptionTypeProvider;
-import org.eclipse.sirius.services.graphql.internal.schema.mutation.MutationTypeProvider;
-import org.eclipse.sirius.services.graphql.internal.schema.mutation.ProjectCreationDescriptionTypeProvider;
-import org.eclipse.sirius.services.graphql.internal.schema.mutation.RepresentationCreationDescriptionTypesProvider;
-import org.eclipse.sirius.services.graphql.internal.schema.query.QueryTypeProvider;
-import org.eclipse.sirius.services.graphql.internal.schema.query.user.UserTypesProvider;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLSchema;
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class SiriusGraphQLSchemaProvider {
-
-    /**
-     * Creates the GraphQL schema.
-     *
-     * @return The GraphQL schema
-     */
-    public GraphQLSchema getSchema() {
-        ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer = new SiriusGraphQLTypeCustomizer();
-        Builder builder = this.initializeSchema(graphQLTypeCustomizer);
-
-        // @formatter:off
-        Function<GraphQLType, SiriusGraphQLFilterStatus> pageInfoTypeFilter = graphQLType -> {
-            if (PageInfoTypeProvider.PAGE_INFO_TYPE.equals(graphQLType.getName())) {
-                return SiriusGraphQLFilterStatus.REJECT;
-            }
-            return SiriusGraphQLFilterStatus.KEEP;
-        };
-        // @formatter:on
-
-        Collection<ISiriusGraphQLSchemaCustomizer> customizers = SiriusGraphQLCommonPlugin.getPlugin().getGraphQLSchemaCustomizers();
-        customizers.forEach(customizer -> customizer.customize(builder, pageInfoTypeFilter, graphQLTypeCustomizer));
-
-        return builder.build();
-    }
-
-    /**
-     * Initializes the schema.
-     * 
-     * @param graphQLTypeCustomizer
-     *            The GraphQL type customizer
-     * @return The builder of the initialized schema
-     */
-    private Builder initializeSchema(ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer) {
-        GraphQLObjectType query = new QueryTypeProvider().getType(graphQLTypeCustomizer);
-        GraphQLObjectType mutation = new MutationTypeProvider().getType(graphQLTypeCustomizer);
-
-        Set<GraphQLType> userTypes = new UserTypesProvider().getTypes(graphQLTypeCustomizer);
-        GraphQLType pageInfoType = new PageInfoTypeProvider().getType(graphQLTypeCustomizer);
-        GraphQLType projectCreationDescriptionType = new ProjectCreationDescriptionTypeProvider().getType(graphQLTypeCustomizer);
-        GraphQLType fileCreationDescriptionType = new FileCreationDescriptionTypeProvider().getType(graphQLTypeCustomizer);
-        GraphQLType representationCreationDescriptionType = new RepresentationCreationDescriptionTypesProvider().getType(graphQLTypeCustomizer);
-
-        GraphQLObjectType representationDescriptionEPackageEdge = new SiriusGraphQLEdgeTypeProvider(SchemaConstants.REPRESENTATION_DESCRIPTION_EPACKAGE_EDGE_TYPE, EMFSchemaConstants.EPACKAGE_TYPE)
-                .getType(graphQLTypeCustomizer);
-        GraphQLObjectType representationDescriptionEPackageConnection = new SiriusGraphQLConnectionTypeProvider(SchemaConstants.REPRESENTATION_DESCRIPTION_EPACKAGE_CONNECTION_TYPE,
-                SchemaConstants.REPRESENTATION_DESCRIPTION_EPACKAGE_EDGE_TYPE).getType(graphQLTypeCustomizer);
-
-        GraphQLObjectType projectActivatedViewpointsEdge = new SiriusGraphQLEdgeTypeProvider(SchemaConstants.PROJECT_VIEWPOINT_EDGE_TYPE, CoreSchemaConstants.VIEWPOINT_TYPE)
-                .getType(graphQLTypeCustomizer);
-        GraphQLObjectType projectActivatedViewpointsConnection = new SiriusGraphQLConnectionTypeProvider(SchemaConstants.PROJECT_VIEWPOINT_CONNECTION_TYPE, SchemaConstants.PROJECT_VIEWPOINT_EDGE_TYPE)
-                .getType(graphQLTypeCustomizer);
-
-        GraphQLObjectType fileEObjectsEdge = new SiriusGraphQLEdgeTypeProvider(SchemaConstants.FILE_EOBJECT_EDGE_TYPE, EMFSchemaConstants.EOBJECT_TYPE).getType(graphQLTypeCustomizer);
-        GraphQLObjectType fileEObjectsConnection = new SiriusGraphQLConnectionTypeProvider(SchemaConstants.FILE_EOBJECT_CONNECTION_TYPE, SchemaConstants.FILE_EOBJECT_EDGE_TYPE)
-                .getType(graphQLTypeCustomizer);
-
-        GraphQLObjectType fileRepresentationsEdge = new SiriusGraphQLEdgeTypeProvider(SchemaConstants.FILE_REPRESENTATION_EDGE_TYPE, CoreSchemaConstants.REPRESENTATION_TYPE)
-                .getType(graphQLTypeCustomizer);
-        GraphQLObjectType fileRepresentationsConnection = new SiriusGraphQLConnectionTypeProvider(SchemaConstants.FILE_REPRESENTATION_CONNECTION_TYPE, SchemaConstants.FILE_REPRESENTATION_EDGE_TYPE)
-                .getType(graphQLTypeCustomizer);
-
-        // @formatter:off
-        Builder builder = GraphQLSchema.newSchema()
-                .query(query)
-                .mutation(mutation)
-                .additionalTypes(userTypes)
-                .additionalType(pageInfoType)
-                .additionalType(projectCreationDescriptionType)
-                .additionalType(fileCreationDescriptionType)
-                .additionalType(representationCreationDescriptionType)
-                .additionalType(representationDescriptionEPackageEdge)
-                .additionalType(representationDescriptionEPackageConnection)
-                .additionalType(projectActivatedViewpointsEdge)
-                .additionalType(projectActivatedViewpointsConnection)
-                .additionalType(fileEObjectsEdge)
-                .additionalType(fileEObjectsConnection)
-                .additionalType(fileRepresentationsEdge)
-                .additionalType(fileRepresentationsConnection);
-        // @formatter:on
-
-        return builder;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLTypeCustomizer.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLTypeCustomizer.java
deleted file mode 100644
index cb7f866..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/SiriusGraphQLTypeCustomizer.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-import org.eclipse.sirius.services.graphql.internal.schema.query.ActivatedViewpointsField;
-import org.eclipse.sirius.services.graphql.internal.schema.query.FileEObjectsField;
-import org.eclipse.sirius.services.graphql.internal.schema.query.FileRepresentationsField;
-import org.eclipse.sirius.services.graphql.internal.schema.query.RepresentationDescriptionEPackagesField;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.GraphQLInterfaceType;
-import graphql.schema.GraphQLObjectType;
-
-/**
- * Implementation of the {@link ISiriusGraphQLTypeCustomizer}.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLTypeCustomizer implements ISiriusGraphQLTypeCustomizer {
-
-    @Override
-    public GraphQLInterfaceType.Builder customize(String name, GraphQLInterfaceType.Builder interfaceTypeBuilder) {
-        GraphQLInterfaceType.Builder customizedInterfaceTypeBuilder = interfaceTypeBuilder;
-        if (CoreSchemaConstants.REPRESENTATION_DESCRIPTION_TYPE.equals(name)) {
-            customizedInterfaceTypeBuilder = this.customizeRepresentationDescription(interfaceTypeBuilder);
-        }
-        return customizedInterfaceTypeBuilder;
-    }
-
-    /**
-     * Customize the representation description type.
-     * 
-     * @param objectTypeBuilder
-     *            The builder
-     * @return The given builder customized
-     */
-    private GraphQLInterfaceType.Builder customizeRepresentationDescription(GraphQLInterfaceType.Builder interfaceTypeBuilder) {
-        return interfaceTypeBuilder.field(RepresentationDescriptionEPackagesField.build());
-    }
-
-    @Override
-    public GraphQLObjectType.Builder customize(String name, GraphQLObjectType.Builder objectTypeBuilder) {
-        GraphQLObjectType.Builder customizedObjectTypeBuilder = objectTypeBuilder;
-        if (WorkspaceSchemaConstants.FILE_TYPE.equals(name)) {
-            customizedObjectTypeBuilder = this.customizeFile(objectTypeBuilder);
-        } else if (WorkspaceSchemaConstants.PROJECT_TYPE.equals(name)) {
-            customizedObjectTypeBuilder = this.customizeProject(objectTypeBuilder);
-        } else if (CoreSchemaConstants.DIAGRAM_DESCRIPTION_TYPE.equals(name)) {
-            customizedObjectTypeBuilder = this.customizeDiagramDescription(objectTypeBuilder);
-        }
-        return customizedObjectTypeBuilder;
-    }
-
-    /**
-     * Customize the diagram description type.
-     * 
-     * @param objectTypeBuilder
-     *            The builder
-     * @return The given builder customized
-     */
-    private GraphQLObjectType.Builder customizeDiagramDescription(GraphQLObjectType.Builder objectTypeBuilder) {
-        return objectTypeBuilder.field(RepresentationDescriptionEPackagesField.build());
-    }
-
-    /**
-     * Customize the file type.
-     * 
-     * @param objectTypeBuilder
-     *            The builder
-     * @return The given builder customized
-     */
-    private GraphQLObjectType.Builder customizeFile(GraphQLObjectType.Builder objectTypeBuilder) {
-        return objectTypeBuilder.field(FileRepresentationsField.build()).field(FileEObjectsField.build());
-    }
-
-    /**
-     * Customize the project type.
-     * 
-     * @param objectTypeBuilder
-     *            The builder
-     * @return The given builder customized
-     */
-    private GraphQLObjectType.Builder customizeProject(GraphQLObjectType.Builder objectTypeBuilder) {
-        return objectTypeBuilder.field(ActivatedViewpointsField.build());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ActivateViewpointField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ActivateViewpointField.java
deleted file mode 100644
index 3e93ec1..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ActivateViewpointField.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.sirius.business.api.componentization.ViewpointRegistry;
-import org.eclipse.sirius.business.api.helper.SiriusResourceHelper;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.ViewpointSelector;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the activateViewpoint field.
- * 
- * @author sbegaudeau
- */
-public final class ActivateViewpointField {
-
-    /**
-     * The name of the activateViewpoint field.
-     */
-    private static final String ACTIVATE_VIEWPOINT_FIELD = "activateViewpoint"; //$NON-NLS-1$
-
-    /**
-     * The name of the projectName argument.
-     */
-    private static final String PROJECT_NAME_ARG = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the viewpoint identifier argument.
-     */
-    private static final String VIEWPOINT_IDENTIFIER_ARG = "viewpointIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ActivateViewpointField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the activateViewpoint field.
-     * 
-     * @return The activateViewpoint field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(ACTIVATE_VIEWPOINT_FIELD)
-                .argument(ActivateViewpointField.getProjectNameArgument())
-                .argument(ActivateViewpointField.getViewpointIdentifierArgument())
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE))
-                .dataFetcher(ActivateViewpointField.getActivateViewpointDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the projectName argument.
-     * 
-     * @return The projectName argument
-     */
-    private static GraphQLArgument getProjectNameArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PROJECT_NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewpointIdentifier argument.
-     * 
-     * @return The viewpointIdentifier argument
-     */
-    private static GraphQLArgument getViewpointIdentifierArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(VIEWPOINT_IDENTIFIER_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the activateViewpoint data fetcher.
-     * 
-     * @return The activateViewpoint data fetcher
-     */
-    private static DataFetcher<IProject> getActivateViewpointDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<String> optionalProjectName = Optional.of(environment.getArgument(PROJECT_NAME_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<IProject> optionalProject = optionalProjectName.map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-            Optional<Session> optionalSession = optionalProject.flatMap(SiriusServicesCommonOptionalUtils::toSession);
-            
-            Optional<String> optionalViewpointIdentifier = Optional.of(environment.getArgument(VIEWPOINT_IDENTIFIER_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<Viewpoint> optionalViewpoint = optionalViewpointIdentifier.flatMap(viewpointIdentifier -> {
-                return ViewpointRegistry.getInstance().getViewpoints().stream()
-                        .filter(viewpoint -> viewpointIdentifier.equals(viewpoint.getName()))
-                        .findFirst();
-            });
-            
-            optionalSession.ifPresent(session -> {
-                optionalViewpoint.ifPresent(viewpoint -> {
-                    RecordingCommand command = new RecordingCommand(session.getTransactionalEditingDomain()) {
-                        @Override
-                        protected void doExecute() {
-                            new ViewpointSelector(session).selectViewpoint(SiriusResourceHelper.getCorrespondingViewpoint(session, viewpoint), false, new NullProgressMonitor());
-                        }
-                    };
-                    session.getTransactionalEditingDomain().getCommandStack().execute(command);
-                });
-            });
-            
-            return optionalProject.orElse(null);
-        };
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ContainerPathArgument.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ContainerPathArgument.java
deleted file mode 100644
index 9bd4534..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ContainerPathArgument.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the containerPath argument.
- *
- * @author sbegaudeau
- */
-public final class ContainerPathArgument {
-    /**
-     * The name of the containerPath argument.
-     */
-    public static final String CONTAINER_PATH_ARG = "containerPath"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ContainerPathArgument() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the containerPath field.
-     *
-     * @return The containerPath field
-     */
-    public static GraphQLArgument build() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(CONTAINER_PATH_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFileField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFileField.java
deleted file mode 100644
index 9c51111..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFileField.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.io.ByteArrayInputStream;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLPlugin;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the createTextFile field.
- * 
- * @author sbegaudeau
- */
-public final class CreateFileField {
-    /**
-     * The name of the createFile field.
-     */
-    private static final String CREATE_FILE_FIELD = "createFile"; //$NON-NLS-1$
-
-    /**
-     * The name of the description argument.
-     */
-    private static final String DESCRIPTION_ARG = "description"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private CreateFileField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the createTextFile field.
-     *
-     * @return The createTextFile field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CREATE_FILE_FIELD)
-                .argument(ProjectNameArgument.build())
-                .argument(ContainerPathArgument.build())
-                .argument(CreateFileField.getDescriptionArgument())
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.FILE_TYPE))
-                .dataFetcher(CreateFileField.getCreateTextFileDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the description argument.
-     * 
-     * @return The description argument
-     */
-    private static GraphQLArgument getDescriptionArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(DESCRIPTION_ARG)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(FileCreationDescriptionTypeProvider.FILE_CREATION_DESCRIPTION_TYPE)))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the createTextFile data fetcher.
-     *
-     * @return The createTextFile data fetcher
-     */
-    private static DataFetcher<IFile> getCreateTextFileDataFetcher() {
-        return environment -> {
-            Optional<IFile> optionalFile = FileCreationHelper.getFile(environment);
-            if (optionalFile.isPresent()) {
-                IFile iFile = optionalFile.get();
-                if (!iFile.exists()) {
-                    try {
-                        iFile.create(new ByteArrayInputStream("".getBytes()), false, new NullProgressMonitor()); //$NON-NLS-1$
-                    } catch (CoreException exception) {
-                        IStatus status = new Status(IStatus.ERROR, SiriusGraphQLPlugin.PLUGIN_ID, exception.getMessage(), exception);
-                        SiriusGraphQLPlugin.getPlugin().log(status);
-                    }
-                    return iFile;
-                }
-            }
-
-            return null;
-        };
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFolderField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFolderField.java
deleted file mode 100644
index 160fd6c..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateFolderField.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLPlugin;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the createFolder field.
- *
- * @author sbegaudeau
- */
-public final class CreateFolderField {
-
-    /**
-     * The name of the createFolder mutation.
-     */
-    private static final String CREATE_FOLDER_FIELD = "createFolder"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private CreateFolderField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the createFolder field.
-     *
-     * @return The createFolder field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CREATE_FOLDER_FIELD)
-                .argument(ProjectNameArgument.build())
-                .argument(ContainerPathArgument.build())
-                .argument(NameArgument.build())
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.FOLDER_TYPE))
-                .dataFetcher(CreateFolderField.getCreateFolderDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the createFolder data fetcher.
-     *
-     * @return The createFolder data fetcher.
-     */
-    private static DataFetcher<IFolder> getCreateFolderDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<IProject> optionalProject = WorkspaceOptionalUtils.projectFromName(environment.getArgument(ProjectNameArgument.PROJECT_NAME_ARG));
-            Optional<String> optionalContainerPath = Optional.of(environment.getArgument(ContainerPathArgument.CONTAINER_PATH_ARG));
-            Optional<String> optionalName = Optional.of(environment.getArgument(NameArgument.NAME_ARG));
-
-            if (optionalProject.isPresent() && optionalContainerPath.isPresent() && optionalName.isPresent()) {
-                String containerPath = optionalContainerPath.get();
-                Optional<IContainer> optionalContainer = optionalProject.map(iProject -> iProject.findMember(containerPath))
-                        .filter(IContainer.class::isInstance)
-                        .map(IContainer.class::cast);
-
-
-                if (optionalContainer.isPresent()) {
-                    IContainer iContainer = optionalContainer.get();
-                    String name = optionalName.get();
-
-                    IFolder iFolder = iContainer.getFolder(new Path(name));
-                    if (!iFolder.exists()) {
-                        try {
-                            iFolder.create(false, true, new NullProgressMonitor());
-                        } catch (CoreException exception) {
-                            IStatus status = new Status(IStatus.ERROR, SiriusGraphQLPlugin.PLUGIN_ID, exception.getMessage(), exception);
-                            SiriusGraphQLPlugin.getPlugin().log(status);
-                        }
-                        return iFolder;
-                    }
-                }
-            }
-
-            return null;
-        };
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateProjectField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateProjectField.java
deleted file mode 100644
index 33a181d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateProjectField.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLPlugin;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the createProject field.
- *
- * @author sbegaudeau
- */
-public final class CreateProjectField {
-
-    /**
-     * The name of the createProject field.
-     */
-    private static final String CREATE_PROJECT_FIELD = "createProject"; //$NON-NLS-1$
-
-    /**
-     * The name of the description argument.
-     */
-    private static final String DESCRIPTION_ARG = "description"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private CreateProjectField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the createProject field.
-     *
-     * @return The createProject field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CREATE_PROJECT_FIELD)
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE))
-                .argument(CreateProjectField.getProjectDescriptionArgument())
-                .dataFetcher(CreateProjectField.getCreateProjectDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the description argument.
-     * 
-     * @return The description argument
-     */
-    private static GraphQLArgument getProjectDescriptionArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(DESCRIPTION_ARG)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(ProjectCreationDescriptionTypeProvider.PROJECT_CREATION_DESCRIPTION_TYPE)))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the createProject data fetcher.
-     *
-     * @return The createProject data fetcher
-     */
-    private static DataFetcher<IProject> getCreateProjectDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.<Map<String, String>>getArgument(DESCRIPTION_ARG))
-                .map(description -> {
-                    String name = description.get(ProjectCreationDescriptionTypeProvider.NAME_FIELD);
-                    IProject iProject = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-                    if (!iProject.exists()) {
-                        try {
-                            IProjectDescription projectDescription = ResourcesPlugin.getWorkspace().newProjectDescription(name);
-                            projectDescription.setNatureIds(new String[] { });
-                            iProject.create(projectDescription, new NullProgressMonitor());
-                            iProject.open(new NullProgressMonitor());                            
-                            iProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
-                        } catch (CoreException exception) {
-                            IStatus status = new Status(IStatus.ERROR, SiriusGraphQLPlugin.PLUGIN_ID, exception.getMessage(), exception);
-                            SiriusGraphQLPlugin.getPlugin().log(status);
-                        }
-                        return iProject;
-                    }
-                    return null;
-                })
-                .orElse(null);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateRepresentationField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateRepresentationField.java
deleted file mode 100644
index 9b7fa70..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/CreateRepresentationField.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.sirius.business.api.dialect.DialectManager;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the creatRepresentation field.
- * 
- * @author sbegaudeau
- */
-public final class CreateRepresentationField {
-
-    /**
-     * The name of the createRepresentation field.
-     */
-    private static final String CREATE_REPRESENTATION_FIELD = "createRepresentation"; //$NON-NLS-1$
-
-    /**
-     * The name of the resourcePath argument.
-     */
-    private static final String RESOURCE_PATH_ARG = "resourcePath"; //$NON-NLS-1$
-
-    /**
-     * The name of the description argument.
-     */
-    private static final String DESCRIPTION_ARG = "description"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private CreateRepresentationField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the createRepresentation field.
-     * 
-     * @return The createRepresentation field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(CREATE_REPRESENTATION_FIELD)
-                .argument(ProjectNameArgument.build())
-                .argument(CreateRepresentationField.getResourcePathArgument())
-                .argument(CreateRepresentationField.getDescriptionArgument())
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE))
-                .dataFetcher(CreateRepresentationField.getCreateRepresentationDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the resourcePath argument.
-     * 
-     * @return The resourcePath argument
-     */
-    private static GraphQLArgument getResourcePathArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(RESOURCE_PATH_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the description argument.
-     * 
-     * @return The description argument
-     */
-    private static GraphQLArgument getDescriptionArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(DESCRIPTION_ARG)
-                .type(new GraphQLNonNull(new GraphQLTypeReference(RepresentationCreationDescriptionTypesProvider.REPRESENTATION_CREATION_DESCRIPTION_TYPE)))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the createRepresentation data fetcher.
-     * 
-     * @return The createRepresentation data fetcher
-     */
-    private static DataFetcher<IProject> getCreateRepresentationDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<String> optionalProjectName = Optional.of(environment.getArgument(ProjectNameArgument.PROJECT_NAME_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<IProject> optionalProject = optionalProjectName.map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-            Optional<Session> optionalSession = optionalProject.flatMap(SiriusServicesCommonOptionalUtils::toSession);
-            
-            Function<IProject, Optional<IFile>> getFile = iProject -> Optional.of(environment.getArgument(RESOURCE_PATH_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast)
-                    .map(Path::new)
-                    .map(iProject::getFile);
-            
-            Optional<IFile> optionalFile = optionalProject.flatMap(getFile);
-            
-            Optional<Resource> optionalResource = optionalFile.flatMap(iFile -> {
-                return optionalSession.flatMap(session -> SiriusServicesCommonOptionalUtils.toResource(session, iFile));
-            });
-            
-            Map<String, String> description = environment.<Map<String, String>>getArgument(DESCRIPTION_ARG);
-            String viewpointIdentifier = description.get(RepresentationCreationDescriptionTypesProvider.VIEWPOINT_IDENTIFIER_FIELD);
-            String representationIdentifier = description.get(RepresentationCreationDescriptionTypesProvider.REPRESENTATION_IDENTIFIER_FIELD);
-            String eObjectFragment = description.get(RepresentationCreationDescriptionTypesProvider.EOBJECT_FRAGMENT_FIELD);
-            String name = description.get(RepresentationCreationDescriptionTypesProvider.NAME_FIELD);
-            
-            Optional<Viewpoint> optionalViewpoint = optionalSession.flatMap(session -> {
-                return session.getSelectedViewpoints(false).stream()
-                        .filter(viewpoint -> viewpointIdentifier.equals(viewpoint.getName()))
-                        .findFirst();
-            });
-
-            Optional<RepresentationDescription> optionalRepresentationDescription = optionalViewpoint.flatMap(viewpoint -> {
-                return viewpoint.getOwnedRepresentations().stream()
-                        .filter(representationDescription -> representationIdentifier.equals(representationDescription.getName()))
-                        .findFirst();
-            });
-            
-            Optional<EObject> optionalEObject = optionalResource.map(resource -> resource.getEObject(eObjectFragment));
-            
-            optionalSession.ifPresent(session -> {
-                optionalRepresentationDescription.ifPresent(representationDescription -> {
-                    optionalEObject.ifPresent(eObject -> {
-                        boolean canCreate = DialectManager.INSTANCE.canCreate(eObject, representationDescription, true);
-                        if (canCreate) {
-                            CreateRepresentationField.createRepresentation(session, representationDescription, name, eObject);
-                        }
-                    });
-                });
-            });
-            
-            return optionalProject.orElse(null);
-        };
-        // @formatter:on
-    }
-
-    /**
-     * Creates the representation using a recording command.
-     * 
-     * @param session
-     *            The session
-     * @param representationDescription
-     *            The description of the representation
-     * @param name
-     *            The name of the representation
-     * @param eObject
-     *            The EObject used as the root of the representation
-     */
-    private static void createRepresentation(Session session, RepresentationDescription representationDescription, String name, EObject eObject) {
-        RecordingCommand command = new RecordingCommand(session.getTransactionalEditingDomain()) {
-            @Override
-            protected void doExecute() {
-                DialectManager.INSTANCE.createRepresentation(name, eObject, representationDescription, session, new NullProgressMonitor());
-            }
-        };
-        session.getTransactionalEditingDomain().getCommandStack().execute(command);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/DeactivateViewpointField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/DeactivateViewpointField.java
deleted file mode 100644
index 87beb54..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/DeactivateViewpointField.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.sirius.business.api.componentization.ViewpointRegistry;
-import org.eclipse.sirius.business.api.helper.SiriusResourceHelper;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.ViewpointSelector;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the deactivateViewpoint field.
- * 
- * @author sbegaudeau
- */
-public final class DeactivateViewpointField {
-
-    /**
-     * The name of the activateViewpoint field.
-     */
-    private static final String DEACTIVATE_VIEWPOINT_FIELD = "deactivateViewpoint"; //$NON-NLS-1$
-
-    /**
-     * The name of the projectName argument.
-     */
-    private static final String PROJECT_NAME_ARG = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the viewpoint identifier argument.
-     */
-    private static final String VIEWPOINT_IDENTIFIER_ARG = "viewpointIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private DeactivateViewpointField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the deactivateViewpoint field.
-     * 
-     * @return The deactivateViewpoint field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(DEACTIVATE_VIEWPOINT_FIELD)
-                .argument(DeactivateViewpointField.getProjectNameArgument())
-                .argument(DeactivateViewpointField.getViewpointIdentifierArgument())
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE))
-                .dataFetcher(DeactivateViewpointField.getActivateViewpointDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the projectName argument.
-     * 
-     * @return The projectName argument
-     */
-    private static GraphQLArgument getProjectNameArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PROJECT_NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewpointIdentifier argument.
-     * 
-     * @return The viewpointIdentifier argument
-     */
-    private static GraphQLArgument getViewpointIdentifierArgument() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(VIEWPOINT_IDENTIFIER_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the activateViewpoint data fetcher.
-     * 
-     * @return The activateViewpoint data fetcher
-     */
-    private static DataFetcher<IProject> getActivateViewpointDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<String> optionalProjectName = Optional.of(environment.getArgument(PROJECT_NAME_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<IProject> optionalProject = optionalProjectName.map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-            Optional<Session> optionalSession = optionalProject.flatMap(SiriusServicesCommonOptionalUtils::toSession);
-            
-            Optional<String> optionalViewpointIdentifier = Optional.of(environment.getArgument(VIEWPOINT_IDENTIFIER_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<Viewpoint> optionalViewpoint = optionalViewpointIdentifier.flatMap(viewpointIdentifier -> {
-                return ViewpointRegistry.getInstance().getViewpoints().stream()
-                        .filter(viewpoint -> viewpointIdentifier.equals(viewpoint.getName()))
-                        .findFirst();
-            });
-            
-            optionalSession.ifPresent(session -> {
-                optionalViewpoint.ifPresent(viewpoint -> {
-                    RecordingCommand command = new RecordingCommand(session.getTransactionalEditingDomain()) {
-                        @Override
-                        protected void doExecute() {
-                            Viewpoint sessionViewpoint = SiriusResourceHelper.getCorrespondingViewpoint(session, viewpoint);
-                            new ViewpointSelector(session).deselectViewpoint(sessionViewpoint, new NullProgressMonitor());
-                        }
-                    };
-                    session.getTransactionalEditingDomain().getCommandStack().execute(command);
-                });
-            });
-            
-            return optionalProject.orElse(null);
-        };
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationDescriptionTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationDescriptionTypeProvider.java
deleted file mode 100644
index a091c33..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationDescriptionTypeProvider.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLInputObjectField;
-import graphql.schema.GraphQLInputObjectType;
-import graphql.schema.GraphQLInputObjectType.Builder;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the TextFileCreationDescription input type.
- * 
- * @author sbegaudeau
- */
-public class FileCreationDescriptionTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the FileCreationDescription type.
-     */
-    public static final String FILE_CREATION_DESCRIPTION_TYPE = "FileCreationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the name field.
-     */
-    public static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    /**
-     * The name of the kind field.
-     */
-    public static final String KIND_FIELD = "kind"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInputObjectType.newInputObject()
-                .name(FILE_CREATION_DESCRIPTION_TYPE)
-                .field(this.getKindField())
-                .field(this.getNameField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(FILE_CREATION_DESCRIPTION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the field kind.
-     * 
-     * @return The field kind
-     */
-    private GraphQLInputObjectField getKindField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(KIND_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the field name.
-     * 
-     * @return The field name
-     */
-    private GraphQLInputObjectField getNameField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationHelper.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationHelper.java
deleted file mode 100644
index 29410ff..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/FileCreationHelper.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Path;
-
-import graphql.schema.DataFetchingEnvironment;
-
-/**
- * Utility methods to help the creation of files.
- * 
- * @author sbegaudeau
- */
-public final class FileCreationHelper {
-    /**
-     * The name of the description argument.
-     */
-    private static final String DESCRIPTION_ARG = "description"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private FileCreationHelper() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the file to create from the given environment.
-     *
-     * @param environment
-     *            The environment
-     * @return The file to create from the given environment
-     */
-    public static Optional<IFile> getFile(DataFetchingEnvironment environment) {
-        Map<String, String> description = environment.<Map<String, String>> getArgument(DESCRIPTION_ARG);
-        String name = description.get(FileCreationDescriptionTypeProvider.NAME_FIELD);
-
-        Optional<IContainer> optionalContainer = FileCreationHelper.getContainer(environment);
-        return optionalContainer.map(iContainer -> iContainer.getFile(new Path(name)));
-    }
-
-    /**
-     * Returns the container in which the file should be created.
-     *
-     * @param environment
-     *            The environment
-     * @return The container in which the file should be created
-     */
-    private static Optional<IContainer> getContainer(DataFetchingEnvironment environment) {
-        Optional<IProject> optionalProject = WorkspaceOptionalUtils.projectFromName(environment.getArgument(ProjectNameArgument.PROJECT_NAME_ARG));
-        Optional<String> optionalContainerPath = Optional.of(environment.getArgument(ContainerPathArgument.CONTAINER_PATH_ARG));
-
-       // @formatter:off
-       return optionalContainerPath.flatMap(containerPath -> {
-           return optionalProject.map(iProject -> iProject.findMember(containerPath))
-                   .filter(IContainer.class::isInstance)
-                   .map(IContainer.class::cast);
-       });
-       // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/MutationTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/MutationTypeProvider.java
deleted file mode 100644
index c779c36..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/MutationTypeProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-
-/**
- * Used to create the mutation type.
- *
- * @author sbegaudeau
- */
-public class MutationTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the mutation type.
-     */
-    public static final String MUTATION_TYPE = "Mutation"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLObjectType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(MUTATION_TYPE)
-                .field(CreateProjectField.build())
-                .field(CreateFolderField.build())
-                .field(CreateFileField.build())
-                .field(ActivateViewpointField.build())
-                .field(DeactivateViewpointField.build())
-                .field(CreateRepresentationField.build());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(MUTATION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/NameArgument.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/NameArgument.java
deleted file mode 100644
index 224c70e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/NameArgument.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the name argument.
- *
- * @author sbegaudeau
- */
-public final class NameArgument {
-    /**
-     * The name of the name argument.
-     */
-    public static final String NAME_ARG = "name"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private NameArgument() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the name field.
-     *
-     * @return The name field
-     */
-    public static GraphQLArgument build() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectCreationDescriptionTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectCreationDescriptionTypeProvider.java
deleted file mode 100644
index de8672d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectCreationDescriptionTypeProvider.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLInputObjectField;
-import graphql.schema.GraphQLInputObjectType;
-import graphql.schema.GraphQLInputObjectType.Builder;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the ProjectCreationDescription input type.
- * 
- * @author sbegaudeau
- */
-public class ProjectCreationDescriptionTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the ProjectCreationDescription type.
-     */
-    public static final String PROJECT_CREATION_DESCRIPTION_TYPE = "ProjectCreationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the kind field.
-     */
-    public static final String KIND_FIELD = "kind"; //$NON-NLS-1$
-
-    /**
-     * The name of the name field.
-     */
-    public static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInputObjectType.newInputObject()
-                .name(PROJECT_CREATION_DESCRIPTION_TYPE)
-                .field(this.getKindField())
-                .field(this.getNameField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(PROJECT_CREATION_DESCRIPTION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the field kind.
-     * 
-     * @return The field kind
-     */
-    private GraphQLInputObjectField getKindField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(KIND_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the field name.
-     * 
-     * @return The field name
-     */
-    private GraphQLInputObjectField getNameField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectNameArgument.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectNameArgument.java
deleted file mode 100644
index 7b3f6fe..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/ProjectNameArgument.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLNonNull;
-
-/**
- * Used to create the projectName argument.
- *
- * @author sbegaudeau
- */
-public final class ProjectNameArgument {
-    /**
-     * The name of the projectName argument.
-     */
-    public static final String PROJECT_NAME_ARG = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private ProjectNameArgument() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the projectName field.
-     *
-     * @return The projectName field
-     */
-    public static GraphQLArgument build() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PROJECT_NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/RepresentationCreationDescriptionTypesProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/RepresentationCreationDescriptionTypesProvider.java
deleted file mode 100644
index 303c4e3..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/RepresentationCreationDescriptionTypesProvider.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-
-import graphql.Scalars;
-import graphql.schema.GraphQLInputObjectField;
-import graphql.schema.GraphQLInputObjectType;
-import graphql.schema.GraphQLInputObjectType.Builder;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the RepresentationCreationDescription input type.
- * 
- * @author sbegaudeau
- */
-public class RepresentationCreationDescriptionTypesProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the RepresentationCreationDescription type.
-     */
-    public static final String REPRESENTATION_CREATION_DESCRIPTION_TYPE = "RepresentationCreationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the viewpointIdentifier field.
-     */
-    public static final String VIEWPOINT_IDENTIFIER_FIELD = "viewpointIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the representationIdentifier field.
-     */
-    public static final String REPRESENTATION_IDENTIFIER_FIELD = "representationIdentifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the eObjectFragment field.
-     */
-    public static final String EOBJECT_FRAGMENT_FIELD = "eObjectFragment"; //$NON-NLS-1$
-
-    /**
-     * The name of the name field.
-     */
-    public static final String NAME_FIELD = "name"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLInputObjectType.newInputObject()
-                .name(REPRESENTATION_CREATION_DESCRIPTION_TYPE)
-                .field(this.getViewpointIdentifierField())
-                .field(this.getRepresentationIdentifierField())
-                .field(this.getEObjectFragmentField())
-                .field(this.getNameField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(REPRESENTATION_CREATION_DESCRIPTION_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the viewpointIdentifier field.
-     * 
-     * @return The viewpointIdentifier field
-     */
-    private GraphQLInputObjectField getViewpointIdentifierField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(VIEWPOINT_IDENTIFIER_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the representationIdentifier field.
-     * 
-     * @return The representationIdentifier field
-     */
-    private GraphQLInputObjectField getRepresentationIdentifierField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(REPRESENTATION_IDENTIFIER_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the eObjectFragment field.
-     * 
-     * @return The eObjectFragment field
-     */
-    private GraphQLInputObjectField getEObjectFragmentField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(EOBJECT_FRAGMENT_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the name field.
-     * 
-     * @return The name field
-     */
-    private GraphQLInputObjectField getNameField() {
-        // @formatter:off
-        return GraphQLInputObjectField.newInputObjectField()
-                .name(NAME_FIELD)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/WorkspaceOptionalUtils.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/WorkspaceOptionalUtils.java
deleted file mode 100644
index d43cb1e..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/mutation/WorkspaceOptionalUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.mutation;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-/**
- * Utility functions to manipulate optionals.
- * 
- * @author sbegaudeau
- */
-public final class WorkspaceOptionalUtils {
-    /**
-     * The constructor.
-     */
-    private WorkspaceOptionalUtils() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns an optional containing the project computed from the given object or an empty optional if it could not be
-     * found.
-     * 
-     * @param object
-     *            The name of the project as an Object
-     * @return An optional with the project found or an empty optional
-     */
-    public static Optional<IProject> projectFromName(Object object) {
-        // @formatter:off
-        return Optional.ofNullable(object)
-                .filter(String.class::isInstance)
-                .map(String.class::cast)
-                .map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/ActivatedViewpointsField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/ActivatedViewpointsField.java
deleted file mode 100644
index 47b6257..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/ActivatedViewpointsField.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.internal.schema.SchemaConstants;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the activatedViewpoints field of the project.
- * 
- * @author sbegaudeau
- */
-public final class ActivatedViewpointsField {
-
-    /**
-     * The name of the activatedViewpoints field.
-     */
-    private static final String ACTIVATED_VIEWPOINTS = "activatedViewpoints"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of an activated viewpoint.
-     */
-    private static final int ACTIVATED_VIEWPOINTS_COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private ActivatedViewpointsField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the activated viewpoints field.
-     * 
-     * @return The activated viewpoints field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(ACTIVATED_VIEWPOINTS)
-                .type(new GraphQLTypeReference(SchemaConstants.PROJECT_VIEWPOINT_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(ACTIVATED_VIEWPOINTS_COMPLEXITY, multipliers).build())
-                .dataFetcher(ActivatedViewpointsField.getActivatedViewpointsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the activated viewpoints data fetcher.
-     *
-     * @return The activated viewpoints data fetcher.
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getActivatedViewpointsDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            Optional<IProject> optionalProject = Optional.of(environment.getSource())
-                    .filter(IProject.class::isInstance)
-                    .map(IProject.class::cast);
-            
-            return optionalProject.flatMap(SiriusServicesCommonOptionalUtils::toSession)
-                    .map(session -> {
-                        List<Viewpoint> viewpoints = new ArrayList<>(session.getSelectedViewpoints(true));
-                        return viewpoints;
-                    })
-                    .orElseGet(ArrayList::new);
-        }, ActivatedViewpointsField::computeViewpointCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given EPackage.
-     * 
-     * @param ePackage
-     *            The EPackage
-     * @return The cursor of the given EPackage
-     */
-    private static String computeViewpointCursor(Viewpoint viewpoint) {
-        String unEncodedCursor = EcoreUtil.getURI(viewpoint).toString();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileEObjectsField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileEObjectsField.java
deleted file mode 100644
index 91c3441..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileEObjectsField.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.internal.schema.SchemaConstants;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the eObjects field of the file.
- * 
- * @author sbegaudeau
- */
-public final class FileEObjectsField {
-    /**
-     * The name of the eObjects field.
-     */
-    private static final String EOBJECTS = "eObjects"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of an eObject.
-     */
-    private static final int EOBJECTS_COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private FileEObjectsField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the eObjects field.
-     * 
-     * @return The eObjects field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(EOBJECTS)
-                .type(new GraphQLTypeReference(SchemaConstants.FILE_EOBJECT_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(EOBJECTS_COMPLEXITY, multipliers).build())
-                .dataFetcher(FileEObjectsField.getEObjectsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the eObjects data fetcher.
-     * 
-     * @return The eObjects data fetcher
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getEObjectsDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            Optional<IFile> optionalFile = Optional.of(environment.getSource())
-                    .filter(IFile.class::isInstance)
-                    .map(IFile.class::cast);
-            
-            Optional<Session> optionalSession = optionalFile.map(IFile::getProject)
-                    .flatMap(SiriusServicesCommonOptionalUtils::toSession);
-            
-            Optional<Resource> optionalResource = optionalFile.flatMap(iFile -> {
-                return optionalSession.flatMap(session -> SiriusServicesCommonOptionalUtils.toResource(session, iFile));
-            });
-            
-            return optionalResource.map(Resource::getContents).orElseGet(BasicEList::new);
-        }, FileEObjectsField::computeEObjectCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given eObject.
-     * 
-     * @param eObject
-     *            The eObject
-     * @return The cursor of the given eObject
-     */
-    private static String computeEObjectCursor(EObject eObject) {
-        String unEncodedCursor = EcoreUtil.getURI(eObject).toString();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileRepresentationsField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileRepresentationsField.java
deleted file mode 100644
index b3589ed..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/FileRepresentationsField.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.dialect.DialectManager;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.services.common.api.SiriusServicesCommonOptionalUtils;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.internal.schema.SchemaConstants;
-import org.eclipse.sirius.viewpoint.DRepresentation;
-import org.eclipse.sirius.viewpoint.DRepresentationDescriptor;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the representations field of the file.
- * 
- * @author sbegaudeau
- */
-public final class FileRepresentationsField {
-
-    /**
-     * The name of the representations field.
-     */
-    private static final String REPRESENTATIONS = "representations"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of a representation.
-     */
-    private static final int REPRESENTATIONS_COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private FileRepresentationsField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the representations field.
-     *
-     * @return The representations field.
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(REPRESENTATIONS)
-                .type(new GraphQLTypeReference(SchemaConstants.FILE_REPRESENTATION_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(REPRESENTATIONS_COMPLEXITY, multipliers).build())
-                .dataFetcher(FileRepresentationsField.getRepresentationsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the representations data fetcher.
-     *
-     * @return The representations data fetcher.
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getRepresentationsDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            Optional<IFile> optionalFile = Optional.of(environment.getSource())
-                    .filter(IFile.class::isInstance)
-                    .map(IFile.class::cast);
-            
-            Optional<Session> optionalSession = optionalFile.map(IFile::getProject)
-                    .flatMap(SiriusServicesCommonOptionalUtils::toSession);
-
-            List<DRepresentation> representations = new ArrayList<>();
-            if (optionalFile.isPresent() && optionalSession.isPresent()) {
-                IFile iFile = optionalFile.get();
-                Session session = optionalSession.get();
-
-                Collection<DRepresentationDescriptor> representationDescriptors = DialectManager.INSTANCE.getAllRepresentationDescriptors(session);
-                for (DRepresentationDescriptor representationDescriptor : representationDescriptors) {
-                    EObject eObject = representationDescriptor.getTarget();
-                    URI uri = eObject.eResource().getURI();
-                    URI fileUri = URI.createPlatformResourceURI(iFile.getFullPath().toString(), true);
-                    if (uri.equals(fileUri)) {
-                        representations.add(representationDescriptor.getRepresentation());
-                    }
-                }
-            }
-
-            return representations;
-        }, FileRepresentationsField::computeRepresentationCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given representation.
-     * 
-     * @param representation
-     *            The representation
-     * @return The cursor of the given representation
-     */
-    private static String computeRepresentationCursor(DRepresentation dRepresentation) {
-        String unEncodedCursor = EcoreUtil.getURI(dRepresentation).toString();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/QueryTypeProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/QueryTypeProvider.java
deleted file mode 100644
index 2d23ed7..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/QueryTypeProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeProvider;
-import org.eclipse.sirius.services.graphql.internal.entities.SiriusGraphQLUser;
-import org.eclipse.sirius.services.graphql.internal.schema.query.user.UserTypesProvider;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the Query type of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class QueryTypeProvider implements ISiriusGraphQLTypeProvider {
-
-    /**
-     * The name of the Query type.
-     */
-    public static final String QUERY_TYPE = "Query"; //$NON-NLS-1$
-
-    /**
-     * The name of the viewer field.
-     */
-    private static final String VIEWER_FIELD = "viewer"; //$NON-NLS-1$
-
-    @Override
-    public GraphQLObjectType getType(ISiriusGraphQLTypeCustomizer customizer) {
-        // @formatter:off
-        Builder builder = GraphQLObjectType.newObject()
-                .name(QUERY_TYPE)
-                .field(this.getViewerField());
-        // @formatter:on
-
-        Builder customizedBuilder = customizer.customize(QUERY_TYPE, builder);
-        return customizedBuilder.build();
-    }
-
-    /**
-     * Returns the viewer field.
-     *
-     * @return The viewer field
-     */
-    private GraphQLFieldDefinition getViewerField() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(VIEWER_FIELD)
-                .type(new GraphQLTypeReference(UserTypesProvider.USER_TYPE))
-                .dataFetcher(this.getViewerDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewer data fetcher.
-     *
-     * @return The viewer data fetcher
-     */
-    private DataFetcher<SiriusGraphQLUser> getViewerDataFetcher() {
-        return environment -> new SiriusGraphQLUser();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/RepresentationDescriptionEPackagesField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/RepresentationDescriptionEPackagesField.java
deleted file mode 100644
index f94c9ee..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/RepresentationDescriptionEPackagesField.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.internal.schema.SchemaConstants;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * Used to create the ePackages field of the representation description.
- *
- * @author sbegaudeau
- */
-public final class RepresentationDescriptionEPackagesField {
-    /**
-     * The name of the ePackages field.
-     */
-    private static final String EPACKAGES_FIELD = "ePackages"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of an EPackage.
-     */
-    private static final int COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private RepresentationDescriptionEPackagesField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the resources field.
-     *
-     * @return The resources field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(EPACKAGES_FIELD)
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .type(new GraphQLTypeReference(SchemaConstants.REPRESENTATION_DESCRIPTION_EPACKAGE_CONNECTION_TYPE))
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .dataFetcher(RepresentationDescriptionEPackagesField.getEPackagesDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the resources data fetcher.
-     *
-     * @return The resources data fetcher
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getEPackagesDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            return Optional.of(environment.getSource())
-                    .filter(RepresentationDescription.class::isInstance)
-                    .map(RepresentationDescription.class::cast)
-                    .map(representationDescription -> {
-                        List<EPackage> p = representationDescription.getMetamodel();
-                        return p;
-                    })
-                    .orElseGet(ArrayList::new);
-        }, RepresentationDescriptionEPackagesField::computeEPackageCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given EPackage.
-     * 
-     * @param ePackage
-     *            The EPackage
-     * @return The cursor of the given EPackage
-     */
-    private static String computeEPackageCursor(EPackage ePackage) {
-        String unEncodedCursor = ePackage.getNsURI();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackageField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackageField.java
deleted file mode 100644
index 876a2e4..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackageField.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.Optional;
-
-import org.eclipse.emf.ecore.EPackage;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The ePackage field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserEPackageField {
-
-    /**
-     * The name of the type of the field.
-     */
-    private static final String EPACKAGE_TYPE = "EPackage"; //$NON-NLS-1$
-
-    /**
-     * The name of the ePackage field.
-     */
-    private static final String EPACKAGE_FIELD = "ePackage"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument nsURI of the ePackage field.
-     */
-    private static final String EPACKAGE_NSURI_ARG = "nsURI"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private UserEPackageField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the ePackage field.
-     *
-     * @return The ePackage field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(EPACKAGE_FIELD)
-                .type(new GraphQLTypeReference(EPACKAGE_TYPE))
-                .argument(UserEPackageField.getEPackageFieldNsURIArg())
-                .dataFetcher(UserEPackageField.getEPackageDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the nsURI argument of the ePackage field.
-     *
-     * @return The nsURI argument of the ePackage field.
-     */
-    private static GraphQLArgument getEPackageFieldNsURIArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(EPACKAGE_NSURI_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the ePackage data fetcher.
-     *
-     * @return The ePackage data fetcher.
-     */
-    private static DataFetcher<EPackage> getEPackageDataFetcher() {
-        // @formatter:off
-        return environment -> Optional.of(environment.getArgument(EPACKAGE_NSURI_ARG))
-                .filter(String.class::isInstance)
-                .map(String.class::cast)
-                .map(EPackage.Registry.INSTANCE::getEPackage)
-                .orElse(null);
-        // @formatter:on
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackagesField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackagesField.java
deleted file mode 100644
index b5f372a..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserEPackagesField.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.services.graphql.internal.SiriusGraphQLMessages;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.DataFetchingEnvironment;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The ePackages field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserEPackagesField {
-    /**
-     * The name of the field ePackages.
-     */
-    private static final String EPACKAGES_FIELD = "ePackages"; //$NON-NLS-1$
-
-    /**
-     * The name of the includeDefaultEPackages argument.
-     */
-    private static final String INCLUDE_DEFAULT_EPACKAGES_ARG = "includeDefaultEPackages"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of an EPackage.
-     */
-    private static final int COMPLEXITY = 1;
-
-    /**
-     * The separator used by the default EPackages.
-     */
-    private static final String DEFAULT_METAMODELS_SEPARATOR = ","; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private UserEPackagesField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the ePackages field.
-     *
-     * @return The ePackages field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(EPACKAGES_FIELD)
-                .type(new GraphQLTypeReference(UserTypesProvider.USER_EPACKAGE_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .argument(UserEPackagesField.getIncludeDefaultEPackagesArg())
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .dataFetcher(UserEPackagesField.getEPackagesDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the includeDefaultEPackages argument.
-     *
-     * @return The includeDefaultEPackages argument
-     */
-    private static GraphQLArgument getIncludeDefaultEPackagesArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(INCLUDE_DEFAULT_EPACKAGES_ARG)
-                .type(Scalars.GraphQLBoolean)
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the ePackages data fetcher.
-     *
-     * @return The ePackages data fetcher.
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getEPackagesDataFetcher() {
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            // @formatter:off
-            return EPackage.Registry.INSTANCE.values().stream()
-                    .map(object -> {
-                        EPackage ePackage = null;
-                        if (object instanceof EPackage) {
-                            ePackage = (EPackage) object;
-                        } else if (object instanceof EPackage.Descriptor) {
-                            ePackage = ((EPackage.Descriptor) object).getEPackage();
-                        }
-                        return ePackage;
-                    })
-                    .filter(ePackage -> UserEPackagesField.filter(environment, ePackage))
-                    .collect(Collectors.toList());
-            // @formatter:on
-        }, UserEPackagesField::computeEPackageCursor);
-    }
-
-    /**
-     * Returns the cursor of the given EPackage.
-     * 
-     * @param ePackage
-     *            The EPackage
-     * @return The cursor of the given EPackage
-     */
-    private static String computeEPackageCursor(EPackage ePackage) {
-        String unEncodedCursor = ePackage.getNsURI();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-
-    /**
-     * Indicates if the given EPackage should be filtered.
-     *
-     * @param environment
-     *            The data fetching environment
-     * @param ePackage
-     *            The EPackage to filter
-     * @return <code>true</code> if the given EPackage should be kept, <code>false</code> otherwise
-     */
-    private static boolean filter(DataFetchingEnvironment environment, EPackage ePackage) {
-        // @formatter:off
-        boolean includeDefaultEPackages = Optional.ofNullable(environment.getArgument(INCLUDE_DEFAULT_EPACKAGES_ARG))
-                .filter(Boolean.class::isInstance)
-                .map(Boolean.class::cast)
-                .orElse(Boolean.FALSE)
-                .booleanValue();
-        // @formatter:on
-
-        String[] defaultMetamodels = SiriusGraphQLMessages.SiriusGraphQLUserEPackagesField_defaultMetamodels.split(DEFAULT_METAMODELS_SEPARATOR);
-        return includeDefaultEPackages || !Arrays.asList(defaultMetamodels).contains(ePackage.getNsURI());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectField.java
deleted file mode 100644
index 4f3787c..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectField.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.Optional;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The project field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserProjectField {
-    /**
-     * The name of the project field.
-     */
-    private static final String PROJECT_FIELD = "project"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument name of the field project.
-     */
-    private static final String PROJECT_NAME_ARG = "name"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private UserProjectField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the project field.
-     *
-     * @return The project field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(PROJECT_FIELD)
-                .type(new GraphQLTypeReference(WorkspaceSchemaConstants.PROJECT_TYPE))
-                .argument(UserProjectField.getProjectFieldNameArg())
-                .dataFetcher(UserProjectField.getProjectDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the name argument of the project field.
-     *
-     * @return The name argument of the project field
-     */
-    private static GraphQLArgument getProjectFieldNameArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(PROJECT_NAME_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the project data fetcher.
-     *
-     * @return The project data fetcher
-     */
-    private static DataFetcher<IProject> getProjectDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<String> optionalProjectName = Optional.of(environment.getArgument(PROJECT_NAME_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<IProject> optionalProject = optionalProjectName.map(ResourcesPlugin.getWorkspace().getRoot()::getProject);
-            return optionalProject.orElse(null);
-        };
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectsField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectsField.java
deleted file mode 100644
index 1b11625..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserProjectsField.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The projects field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserProjectsField {
-    /**
-     * The name of the field projects.
-     */
-    private static final String PROJECTS_FIELD = "projects"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of a project.
-     */
-    private static final int COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private UserProjectsField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the projects field.
-     *
-     * @return The projects field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(PROJECTS_FIELD)
-                .type(new GraphQLTypeReference(UserTypesProvider.USER_PROJECT_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .dataFetcher(UserProjectsField.getProjectsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the projects data fetcher.
-     *
-     * @return The projects data fetcher.
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getProjectsDataFetcher() {
-        // @formatter:off
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            return Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects());
-        }, UserProjectsField::computeProjectCursor);
-        // @formatter:on
-    }
-
-    /**
-     * Returns the cursor of the given project.
-     * 
-     * @param project
-     *            The project
-     * @return The cursor of the given project
-     */
-    private static String computeProjectCursor(IProject project) {
-        String unEncodedCursor = project.getName();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserTypesProvider.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserTypesProvider.java
deleted file mode 100644
index 96f88fc..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserTypesProvider.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider.CONNECTION_SUFFIX;
-import static org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider.EDGE_SUFFIX;
-import static org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants.VIEWPOINT_TYPE;
-import static org.eclipse.sirius.services.graphql.emf.api.EMFSchemaConstants.EPACKAGE_TYPE;
-import static org.eclipse.sirius.services.graphql.workspace.api.WorkspaceSchemaConstants.PROJECT_TYPE;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypesProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnectionTypeProvider;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLEdgeTypeProvider;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLObjectType.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Used to create the User type of the GraphQL schema.
- *
- * @author sbegaudeau
- */
-public class UserTypesProvider implements ISiriusGraphQLTypesProvider {
-    /**
-     * The name of the User type.
-     */
-    public static final String USER_TYPE = "User"; //$NON-NLS-1$
-
-    /**
-     * The name of the User to Project connection type.
-     */
-    public static final String USER_PROJECT_CONNECTION_TYPE = USER_TYPE + PROJECT_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the User to Project edge type.
-     */
-    public static final String USER_PROJECT_EDGE_TYPE = USER_TYPE + PROJECT_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The name of the User to Viewpoint connection type.
-     */
-    public static final String USER_VIEWPOINT_CONNECTION_TYPE = USER_TYPE + VIEWPOINT_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the User to Viewpoint edge type.
-     */
-    public static final String USER_VIEWPOINT_EDGE_TYPE = USER_TYPE + VIEWPOINT_TYPE + EDGE_SUFFIX;
-
-    /**
-     * The name of the User to EPackage connection type.
-     */
-    public static final String USER_EPACKAGE_CONNECTION_TYPE = USER_TYPE + EPACKAGE_TYPE + CONNECTION_SUFFIX;
-
-    /**
-     * The name of the User to EPackage edge type.
-     */
-    public static final String USER_EPACKAGE_EDGE_TYPE = USER_TYPE + EPACKAGE_TYPE + EDGE_SUFFIX;
-
-    @Override
-    public Set<GraphQLType> getTypes(ISiriusGraphQLTypeCustomizer customizer) {
-        GraphQLObjectType projectEdge = new SiriusGraphQLEdgeTypeProvider(USER_PROJECT_EDGE_TYPE, PROJECT_TYPE).getType(customizer);
-        GraphQLObjectType projectConnection = new SiriusGraphQLConnectionTypeProvider(USER_PROJECT_CONNECTION_TYPE, USER_PROJECT_EDGE_TYPE).getType(customizer);
-
-        GraphQLObjectType viewpointEdge = new SiriusGraphQLEdgeTypeProvider(USER_VIEWPOINT_EDGE_TYPE, VIEWPOINT_TYPE).getType(customizer);
-        GraphQLObjectType viewpointConnection = new SiriusGraphQLConnectionTypeProvider(USER_VIEWPOINT_CONNECTION_TYPE, USER_VIEWPOINT_EDGE_TYPE).getType(customizer);
-
-        GraphQLObjectType ePackageEdge = new SiriusGraphQLEdgeTypeProvider(USER_EPACKAGE_EDGE_TYPE, EPACKAGE_TYPE).getType(customizer);
-        GraphQLObjectType ePackageConnection = new SiriusGraphQLConnectionTypeProvider(USER_EPACKAGE_CONNECTION_TYPE, USER_EPACKAGE_EDGE_TYPE).getType(customizer);
-
-        // @formatter:off
-        Builder userBuilder = GraphQLObjectType.newObject()
-                .name(USER_TYPE)
-                .field(UserProjectField.build())
-                .field(UserProjectsField.build())
-                .field(UserEPackageField.build())
-                .field(UserEPackagesField.build())
-                .field(UserViewpointField.build())
-                .field(UserViewpointsField.build());
-        // @formatter:on
-
-        Builder customizedUserBuilder = customizer.customize(USER_TYPE, userBuilder);
-
-        Set<GraphQLType> types = new LinkedHashSet<>();
-
-        types.add(customizedUserBuilder.build());
-        types.add(projectEdge);
-        types.add(projectConnection);
-        types.add(viewpointEdge);
-        types.add(viewpointConnection);
-        types.add(ePackageEdge);
-        types.add(ePackageConnection);
-
-        return types;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointField.java
deleted file mode 100644
index 4ed2b51..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointField.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.Optional;
-
-import org.eclipse.sirius.business.api.componentization.ViewpointRegistry;
-import org.eclipse.sirius.services.graphql.core.api.CoreSchemaConstants;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.Scalars;
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLArgument;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLNonNull;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The viewpoint field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserViewpointField {
-
-    /**
-     * The name of the viewpoint field.
-     */
-    private static final String VIEWPOINT_FIELD = "viewpoint"; //$NON-NLS-1$
-
-    /**
-     * The name of the argument identifier of the field viewpoint.
-     */
-    private static final String VIEWPOINT_IDENTIFIER_ARG = "identifier"; //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private UserViewpointField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the project field.
-     *
-     * @return The project field
-     */
-    public static GraphQLFieldDefinition build() {
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(VIEWPOINT_FIELD)
-                .type(new GraphQLTypeReference(CoreSchemaConstants.VIEWPOINT_TYPE))
-                .argument(UserViewpointField.getViewpointFieldIdentifierArg())
-                .dataFetcher(UserViewpointField.getViewpointDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the identifier argument of the viewpoint field.
-     *
-     * @return The identifier argument of the viewpoint field
-     */
-    private static GraphQLArgument getViewpointFieldIdentifierArg() {
-        // @formatter:off
-        return GraphQLArgument.newArgument()
-                .name(VIEWPOINT_IDENTIFIER_ARG)
-                .type(new GraphQLNonNull(Scalars.GraphQLString))
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewpoint data fetcher.
-     *
-     * @return The viewpoint data fetcher
-     */
-    private static DataFetcher<Viewpoint> getViewpointDataFetcher() {
-        // @formatter:off
-        return environment -> {
-            Optional<String> optionalViewpointIdentifier = Optional.of(environment.getArgument(VIEWPOINT_IDENTIFIER_ARG))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast);
-            
-            Optional<Viewpoint> optionalViewpoint = optionalViewpointIdentifier.flatMap(viewpointIdentifier -> {
-                return ViewpointRegistry.getInstance().getViewpoints().stream()
-                        .filter(viewpoint -> viewpointIdentifier.equals(viewpoint.getName()))
-                        .findFirst();
-            });
-            
-            return optionalViewpoint.orElse(null);
-        }; 
-        // @formatter:on
-    }
-}
diff --git a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointsField.java b/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointsField.java
deleted file mode 100644
index d29d60d..0000000
--- a/plugins/org.eclipse.sirius.services.graphql/src/org/eclipse/sirius/services/graphql/internal/schema/query/user/UserViewpointsField.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.services.graphql.internal.schema.query.user;
-
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.sirius.business.api.componentization.ViewpointRegistry;
-import org.eclipse.sirius.services.graphql.common.api.directives.SiriusGraphQLCostDirective;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLConnection;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationArguments;
-import org.eclipse.sirius.services.graphql.common.api.pagination.SiriusGraphQLPaginationDataFetcher;
-import org.eclipse.sirius.viewpoint.description.Viewpoint;
-
-import graphql.schema.DataFetcher;
-import graphql.schema.GraphQLFieldDefinition;
-import graphql.schema.GraphQLTypeReference;
-
-/**
- * The viewpoints field of the user.
- *
- * @author sbegaudeau
- */
-public final class UserViewpointsField {
-
-    /**
-     * The name of the field viewpoints.
-     */
-    private static final String VIEWPOINTS_FIELD = "viewpoints"; //$NON-NLS-1$
-
-    /**
-     * The complexity of the retrieval of a viewpoint.
-     */
-    private static final int COMPLEXITY = 1;
-
-    /**
-     * The constructor.
-     */
-    private UserViewpointsField() {
-        // Prevent instantiation
-    }
-
-    /**
-     * Returns the viewpoints field.
-     *
-     * @return The viewpoints field
-     */
-    public static GraphQLFieldDefinition build() {
-        List<String> multipliers = new ArrayList<>();
-        multipliers.add(SiriusGraphQLPaginationArguments.FIRST_ARG);
-        multipliers.add(SiriusGraphQLPaginationArguments.LAST_ARG);
-
-        // @formatter:off
-        return GraphQLFieldDefinition.newFieldDefinition()
-                .name(VIEWPOINTS_FIELD)
-                .type(new GraphQLTypeReference(UserTypesProvider.USER_VIEWPOINT_CONNECTION_TYPE))
-                .argument(SiriusGraphQLPaginationArguments.build())
-                .withDirective(new SiriusGraphQLCostDirective(COMPLEXITY, multipliers).build())
-                .dataFetcher(UserViewpointsField.getViewpointsDataFetcher())
-                .build();
-        // @formatter:on
-    }
-
-    /**
-     * Returns the viewpoints data fetcher.
-     *
-     * @return The viewpoints data fetcher
-     */
-    private static DataFetcher<SiriusGraphQLConnection> getViewpointsDataFetcher() {
-        return SiriusGraphQLPaginationDataFetcher.build(environment -> {
-            Set<Viewpoint> viewpointSet = ViewpointRegistry.getInstance().getViewpoints();
-            List<Viewpoint> viewpoints = new ArrayList<>(viewpointSet);
-            viewpoints.sort((v1, v2) -> v1.getName().compareTo(v2.getName()));
-            return viewpoints;
-        }, UserViewpointsField::computeViewpointCursor);
-    }
-
-    /**
-     * Returns the cursor of the given project.
-     * 
-     * @param project
-     *            The project
-     * @return The cursor of the given project
-     */
-    private static String computeViewpointCursor(Viewpoint viewpoint) {
-        String unEncodedCursor = EcoreUtil.getURI(viewpoint).toString();
-        return Base64.getEncoder().encodeToString(unEncodedCursor.getBytes());
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.server/.checkstyle b/plugins/org.eclipse.sirius.tests.server/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.tests.server/.classpath b/plugins/org.eclipse.sirius.tests.server/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.tests.server/.project b/plugins/org.eclipse.sirius.tests.server/.project
deleted file mode 100644
index dd4b60c..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.tests.server</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9b804f..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,418 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index 3bb2352..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 11eae70..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,68 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Sirius
-formatter_settings_version=13
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=com;java;javax;org;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2018 Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License 2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors\:\n *    Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">e.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=false
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=false
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=false
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_redundant_type_arguments=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=false
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
-sp_cleanup.use_type_arguments=false
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 923c37f..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-resolve.requirebundle=false
diff --git a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12b4bcc..0000000
--- a/plugins/org.eclipse.sirius.tests.server/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=1
-compilers.p.build.java.compiler=1
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=1
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=0
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.tests.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.tests.server/META-INF/MANIFEST.MF
deleted file mode 100644
index 0c44354..0000000
--- a/plugins/org.eclipse.sirius.tests.server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Version: 7.0.0.qualifier
-Bundle-SymbolicName: org.eclipse.sirius.tests.server
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Require-Bundle: org.junit;bundle-version="4.12.0",
- org.eclipse.sirius.server;bundle-version="6.0.0"
-Export-Package: org.eclipse.sirius.tests.server.internal;version="6.0.0"
-Automatic-Module-Name: org.eclipse.sirius.tests.server
diff --git a/plugins/org.eclipse.sirius.tests.server/about.html b/plugins/org.eclipse.sirius.tests.server/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.tests.server/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.tests.server/build.properties b/plugins/org.eclipse.sirius.tests.server/build.properties
deleted file mode 100644
index 3652b49..0000000
--- a/plugins/org.eclipse.sirius.tests.server/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.tests.server/plugin.properties b/plugins/org.eclipse.sirius.tests.server/plugin.properties
deleted file mode 100644
index c223272..0000000
--- a/plugins/org.eclipse.sirius.tests.server/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Server Tests
-providerName = Eclipse Modeling Project
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.tests.server/pom.xml b/plugins/org.eclipse.sirius.tests.server/pom.xml
deleted file mode 100644
index 178d870..0000000
--- a/plugins/org.eclipse.sirius.tests.server/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <sonar.coverage.exclusions>src/**/*</sonar.coverage.exclusions>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.tests.server</artifactId>
-  <packaging>eclipse-test-plugin</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-surefire-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <configuration>
-          <skipTests>${tests.junit.skip}</skipTests>
-          <includes>
-            <include>${tests.junit.include}</include>
-          </includes>
-          <argLine>${tests.vmargs}</argLine>
-          <testFailureIgnore>${tests.ignoreFailures}</testFailureIgnore>
-          <testClass>org.eclipse.sirius.tests.server.internal.SiriusServerBackendTests</testClass>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerBackendTests.java b/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerBackendTests.java
deleted file mode 100644
index 23b3f01..0000000
--- a/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerBackendTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.server.internal;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * Test suite for the Sirius server backend.
- *
- * @author sbegaudeau
- */
-@RunWith(Suite.class)
-@SuiteClasses({ SiriusServerPathMatcherTests.class })
-public class SiriusServerBackendTests {
-	// Do nothing
-}
diff --git a/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerPathMatcherTests.java b/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerPathMatcherTests.java
deleted file mode 100644
index 286ffd9..0000000
--- a/plugins/org.eclipse.sirius.tests.server/src/org/eclipse/sirius/tests/server/internal/SiriusServerPathMatcherTests.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.server.internal;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Map;
-
-import org.eclipse.sirius.server.internal.SiriusServerMatchResult;
-import org.eclipse.sirius.server.internal.SiriusServerPathMatcher;
-import org.junit.Test;
-
-/**
- * Unit tests for the {@link SiriusServerPathMatcher}.
- *
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle:javadocmethod" })
-public class SiriusServerPathMatcherTests {
-
-    /** The path of the API. */
-    private static final String API_PATH = "/api"; //$NON-NLS-1$
-
-    /** The path of the projects API. */
-    private static final String PROJECTS_PATH = "/api/projects"; //$NON-NLS-1$
-
-    /** The path of the project API. */
-    private static final String PROJECT_PATH = "/api/projects/{projectName}"; //$NON-NLS-1$
-
-    /** The path of the representations API. */
-    private static final String REPRESENTATIONS_PATH = "/api/projects/{projectName}/representations"; //$NON-NLS-1$
-
-    /** The path of the representation API. */
-    private static final String REPRESENTATION_PATH = "/api/projects/{projectName}/representations/{representationName}"; //$NON-NLS-1$
-
-    /** The name of the variable used to capture the project name. */
-    private static final String PROJECT_NAME_VARIABLE = "projectName"; //$NON-NLS-1$
-
-    /** The name of the variable used to capture the representation name. */
-    private static final String REPRESENTATION_NAME_VARIABLE = "representationName"; //$NON-NLS-1$
-
-    /** The name of the test project. */
-    private static final String SAMPLE = "sample"; //$NON-NLS-1$
-
-    /** The name of the test representation. */
-    private static final String CLASS_DIAGRAM = "classDiagram"; //$NON-NLS-1$
-
-    @Test
-    public void testAPIPathValidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(API_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-    }
-
-    @Test
-    public void testAPIPathInvalidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(API_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/invalid"); //$NON-NLS-1$
-        assertFalse(matchResult.hasMatched());
-    }
-
-    @Test
-    public void testProjectsPathValidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(PROJECTS_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api/projects"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-    }
-
-    @Test
-    public void testProjectPathValidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(PROJECT_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api/projects/sample"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-
-        Map<String, String> variables = matchResult.getVariables();
-        assertEquals(variables.size(), 1);
-        assertEquals(variables.get(PROJECT_NAME_VARIABLE), SAMPLE);
-    }
-
-    @Test
-    public void testProjectPathValidRequestWithRemainingPart() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(PROJECT_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api/projects/sample/documentation"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-
-        Map<String, String> variables = matchResult.getVariables();
-        assertEquals(variables.size(), 1);
-        assertEquals(variables.get(PROJECT_NAME_VARIABLE), SAMPLE);
-
-        assertEquals("documentation", matchResult.getRemainingPart()); //$NON-NLS-1$
-    }
-
-    @Test
-    public void testRepresentationsPathValidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(REPRESENTATIONS_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api/projects/sample/representations"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-
-        Map<String, String> variables = matchResult.getVariables();
-        assertEquals(variables.size(), 1);
-        assertEquals(variables.get(PROJECT_NAME_VARIABLE), SAMPLE);
-    }
-
-    @Test
-    public void testRepresentationPathValidRequest() {
-        SiriusServerPathMatcher pathMatcher = new SiriusServerPathMatcher(REPRESENTATION_PATH);
-        SiriusServerMatchResult matchResult = pathMatcher.match("/api/projects/sample/representations/classDiagram"); //$NON-NLS-1$
-        assertTrue(matchResult.hasMatched());
-
-        Map<String, String> variables = matchResult.getVariables();
-        assertEquals(variables.size(), 2);
-        assertEquals(variables.get(PROJECT_NAME_VARIABLE), SAMPLE);
-        assertEquals(variables.get(REPRESENTATION_NAME_VARIABLE), CLASS_DIAGRAM);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.checkstyle b/plugins/org.eclipse.sirius.tests.services.graphql/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.classpath b/plugins/org.eclipse.sirius.tests.services.graphql/.classpath
deleted file mode 100644
index 9fbf09e..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" output="src-bin" path="src">
-		<attributes>
-			<attribute name="test" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.gitignore b/plugins/org.eclipse.sirius.tests.services.graphql/.gitignore
deleted file mode 100644
index 7d77c13..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/src-bin/
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.project b/plugins/org.eclipse.sirius.tests.services.graphql/.project
deleted file mode 100644
index 28e70a9..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.tests.services.graphql</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b595ac4..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index fd1556a..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Mar 20 10:33:05 CET 2011
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 160732e..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 6485053..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Sep 17 10:27:00 CEST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Ignore
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.tests.services.graphql/META-INF/MANIFEST.MF
deleted file mode 100644
index 8d18458..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.tests.services.graphql;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Automatic-Module-Name: org.eclipse.sirius.tests.services.graphql
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.tests.services.graphql.api;version="7.0.0",
- org.eclipse.sirius.tests.services.graphql.extlibrary;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.tests.services.graphql.extlibrary.impl;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.tests.services.graphql.extlibrary.util;version="7.0.0";x-internal:=true,
- org.eclipse.sirius.tests.services.graphql.internal;version="7.0.0";x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.0.0",
- org.eclipse.emf.ecore;bundle-version="2.8.0",
- org.eclipse.core.resources;bundle-version="3.8.0",
- org.eclipse.emf.common;bundle-version="2.8.0",
- org.eclipse.sirius.ext.base;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.common;bundle-version="7.0.0",
- org.eclipse.sirius.services.graphql.emf;bundle-version="7.0.0",
- org.junit;bundle-version="4.0.0",
- com.google.gson;bundle-version="2.0.0"
-Bundle-ActivationPolicy: lazy
-Import-Package: graphql;version="[11.0.0,11.0.1)",
- graphql.schema;version="[11.0.0,11.0.1)"
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/about.html b/plugins/org.eclipse.sirius.tests.services.graphql/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/build.properties b/plugins/org.eclipse.sirius.tests.services.graphql/build.properties
deleted file mode 100644
index 856d3a0..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018, 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-source.. = src/,\
-           src-gen
-output.. = bin/,\
-           src-bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml
-javacProjectSettings = true
-javacDefaultEncoding.. = US-ASCII
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/model/library.ecore b/plugins/org.eclipse.sirius.tests.services.graphql/model/library.ecore
deleted file mode 100644
index 4d63743..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/model/library.ecore
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="extlibrary" nsURI="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"
-    nsPrefix="extlib">
-  <eClassifiers xsi:type="ecore:EClass" name="Book" eSuperTypes="#//CirculatingItem">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
-        defaultValueLiteral="100"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory"
-        unsettable="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
-        eType="#//Writer" eOpposite="#//Writer/books"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Addressable">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1"
-        eType="#//Writer" volatile="true" transient="true" derived="true" containment="true"
-        resolveProxies="false">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#people"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="employees" upperBound="-1"
-        eType="#//Employee" volatile="true" transient="true" derived="true" containment="true"
-        resolveProxies="false">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#people"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" upperBound="-1"
-        eType="#//Borrower" volatile="true" transient="true" derived="true" containment="true"
-        resolveProxies="false">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#people"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stock" ordered="false"
-        upperBound="-1" eType="#//Item" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="books" ordered="false"
-        upperBound="-1" eType="#//Book" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="branches" upperBound="-1"
-        eType="#//Library" containment="true" eOpposite="#//Library/parentBranch"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parentBranch" eType="#//Library"
-        eOpposite="#//Library/branches"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="people" upperBound="-1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Writer" eSuperTypes="#//Person">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
-        volatile="true" transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
-        eType="#//Book" eOpposite="#//Book/author"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
-    <eLiterals name="Mystery"/>
-    <eLiterals name="ScienceFiction" value="1"/>
-    <eLiterals name="Biography" value="2"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Item" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Lendable" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="copies" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" ordered="false"
-        upperBound="-1" eType="#//Borrower" eOpposite="#//Borrower/borrowed"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CirculatingItem" abstract="true" eSuperTypes="#//Item #//Lendable"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Periodical" abstract="true" eSuperTypes="#//Item">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="issuesPerYear" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AudioVisualItem" abstract="true" eSuperTypes="#//CirculatingItem">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minutesLength" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="damaged" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BookOnTape" eSuperTypes="#//AudioVisualItem">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="reader" eType="#//Person"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="VideoCassette" eSuperTypes="#//AudioVisualItem">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cast" upperBound="-1" eType="#//Person"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Borrower" eSuperTypes="#//Person">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="borrowed" upperBound="-1"
-        eType="#//Lendable" eOpposite="#//Lendable/borrowers"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//Addressable">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Employee" eSuperTypes="#//Person">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="manager" eType="#//Employee"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Addressable" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/model/library.genmodel b/plugins/org.eclipse.sirius.tests.services.graphql/model/library.genmodel
deleted file mode 100644
index 9b94c9a..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/model/library.genmodel
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText=" Copyright (c) 2019 Obeo.&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License v1.0&#xA; which accompanies this distribution, and is available at&#xA; http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA; Contributors:&#xA;    Obeo - initial API and implementation"
-    modelDirectory="/org.eclipse.sirius.tests.services.graphql/src-gen" modelPluginID="org.eclipse.sirius.tests.services.graphql"
-    modelName="Library" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
-    runtimeVersion="2.8" operationReflection="true" importOrganizing="true">
-  <foreignModel>library.ecore</foreignModel>
-  <genPackages prefix="Extlibrary" basePackage="org.eclipse.sirius.tests.services.graphql"
-      resource="XML" disposableProviderFactory="true" ecorePackage="library.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="library.ecore#//BookCategory">
-      <genEnumLiterals ecoreEnumLiteral="library.ecore#//BookCategory/Mystery"/>
-      <genEnumLiterals ecoreEnumLiteral="library.ecore#//BookCategory/ScienceFiction"/>
-      <genEnumLiterals ecoreEnumLiteral="library.ecore#//BookCategory/Biography"/>
-    </genEnums>
-    <genClasses ecoreClass="library.ecore#//Book">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Book/title"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Book/pages"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Book/category"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Book/author"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//Library">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Library/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference library.ecore#//Library/writers"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference library.ecore#//Library/employees"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference library.ecore#//Library/borrowers"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference library.ecore#//Library/stock"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Library/books"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference library.ecore#//Library/branches"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference library.ecore#//Library/parentBranch"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute library.ecore#//Library/people"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//Writer">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Writer/name"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Writer/books"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="library.ecore#//Item">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Item/publicationDate"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="library.ecore#//Lendable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Lendable/copies"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Lendable/borrowers"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="library.ecore#//CirculatingItem"/>
-    <genClasses image="false" ecoreClass="library.ecore#//Periodical">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Periodical/title"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Periodical/issuesPerYear"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="library.ecore#//AudioVisualItem">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//AudioVisualItem/title"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//AudioVisualItem/minutesLength"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//AudioVisualItem/damaged"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//BookOnTape">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//BookOnTape/reader"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//BookOnTape/author"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//VideoCassette">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//VideoCassette/cast"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//Borrower">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Borrower/borrowed"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//Person">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Person/firstName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Person/lastName"/>
-    </genClasses>
-    <genClasses ecoreClass="library.ecore#//Employee">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference library.ecore#//Employee/manager"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="library.ecore#//Addressable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute library.ecore#//Addressable/address"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/plugin.properties b/plugins/org.eclipse.sirius.tests.services.graphql/plugin.properties
deleted file mode 100644
index dc70c47..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/plugin.properties
+++ /dev/null
@@ -1,592 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018, 2019 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-pluginName = Sirius Services - GraphQL API Tests
-providerName = Eclipse Modeling Project
-
-introspectionQuery=query {\n\
-  __schema {\n\
-    queryType { name }\n\
-    mutationType { name } \n\
-    subscriptionType { name } \n\
-    types {\n\
-      ...typeDetails\n\
-    }\n\
-  }\n\
-}\n\
-\n\
-fragment typeDetails on __Type {\n\
-  kind\n\
-  name\n\
-  description\n\
-  fields(includeDeprecated: true) {\n\
-    name\n\
-    description\n\
-    args {\n\
-      ...inputValueDetails\n\
-    }\n\
-    type {\n\
-      ...typeReferenceDetails\n\
-    }\n\
-    isDeprecated\n\
-    deprecationReason\n\
-  }\n\
-  inputFields {\n\
-    ...inputValueDetails\n\
-  }\n\
-  interfaces {\n\
-    ...typeReferenceDetails\n\
-  }\n\
-  enumValues(includeDeprecated: true) {\n\
-    name\n\
-    description\n\
-    isDeprecated\n\
-    deprecationReason\n\
-  }\n\
-  possibleTypes {\n\
-    ...typeReferenceDetails\n\
-  }\n\
-}\n\
-\n\
-fragment inputValueDetails on __InputValue {\n\
-  name\n\
-  description\n\
-  defaultValue\n\
-  type {\n\
-    ...typeReferenceDetails\n\
-  }\n\
-}\n\
-\n\
-fragment typeReferenceDetails on __Type {\n\
-  kind\n\
-  name\n\
-  ofType {\n\
-    kind\n\
-    name\n\
-    ofType {\n\
-      kind\n\
-      name\n\
-      ofType {\n\
-        kind\n\
-        name\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-# ====================================================================
-#
-# Project test queries and results
-#
-# ====================================================================
-
-findProjectNameByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-    }\n\
-  }\n\
-}
-
-findProjectNameByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample"\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectPathByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      path\n\
-    }\n\
-  }\n\
-}
-
-findProjectPathByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "path": ""\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectContainerByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      container {\n\
-        ... on Project {\n\
-          name\n\
-        }\n\
-        ... on Folder {\n\
-          name\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectContainerByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample"\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectProjectByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      project {\n\
-        name\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectProjectByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "project": {\n\
-          "name": "org.eclipse.sirius.sample"\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectResourcesByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      resources(first: 10, after: null) {\n\
-        totalCount\n\
-        pageInfo {\n\
-          hasNextPage\n\
-          hasPreviousPage\n\
-        }\n\
-        edges {\n\
-          node {\n\
-            name\n\
-          }\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectResourcesByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "resources": {\n\
-          "totalCount": 1,\n\
-          "pageInfo": {\n\
-            "hasNextPage": false,\n\
-            "hasPreviousPage": false\n\
-          },\n\
-          "edges": [\n\
-            {\n\
-              "node": {\n\
-                "name": ".project"\n\
-              }\n\
-            }\n\
-          ]\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectDescriptionByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      description\n\
-    }\n\
-  }\n\
-}
-
-findProjectDescriptionByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "description": "SampleDescription"\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectResourceByPathByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      resourceByPath(path: ".project") {\n\
-        name\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectResourceByPathByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "resourceByPath": {\n\
-          "name": ".project"\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectActivatedViewpointsByName=query findProject($projectName: String!) {\n\
-  viewer {\n\
-    project(name: $projectName) {\n\
-      name\n\
-      activatedViewpoints(first: 10, after: null) {\n\
-        totalCount\n\
-        pageInfo {\n\
-          hasNextPage\n\
-          hasPreviousPage\n\
-        }\n\
-        edges {\n\
-          node {\n\
-            identifier\n\
-            name\n\
-          }\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-findProjectActivatedViewpointsByName_resultSample = {\n\
-  "data": {\n\
-    "viewer": {\n\
-      "project": {\n\
-        "name": "org.eclipse.sirius.sample",\n\
-        "activatedViewpoints": {\n\
-          "totalCount": 0,\n\
-          "pageInfo": {\n\
-            "hasNextPage": false,\n\
-            "hasPreviousPage": false\n\
-          },\n\
-          "edges": []\n\
-        }\n\
-      }\n\
-    }\n\
-  }\n\
-}
-
-# ====================================================================
-#
-# Query
-#
-# ====================================================================
-
-query=type Query {\n\
-  viewer: User\n\
-}
-
-user=type User {\n\
-  project(name: String!): Project\n\
-  projects(first: Int, after: String, last: Int, before: String): UserProjectConnection\n\
-  ePackage(nsURI: String!): EPackage\n\
-  ePackages(first: Int, after: String, last: Int, before: String, includeDefaultEPackages: Boolean): UserEPackageConnection\n\
-  viewpoint(identifier: String!): Viewpoint\n\
-  viewpoints(first: Int, after: String, last: Int, before: String): UserViewpointConnection\n\
-}
-
-pageInfo=type PageInfo {\n\
-  hasPreviousPage: Boolean!\n\
-  hasNextPage: Boolean!\n\
-}
-
-# ====================================================================
-#
-# Mutation
-#
-# ====================================================================
-
-mutation=type Mutation {\n\
-  createProject(description: ProjectCreationDescription!): Project\n\
-  createFolder(projectName: String!, containerPath: String!, name: String!): Folder\n\
-  createFile(projectName: String!, containerPath: String!, description: FileCreationDescription!): File\n\
-  activateViewpoint(projectName: String!, viewpointIdentifier: String!): Project\n\
-  deactivateViewpoint(projectName: String!, viewpointIdentifier: String!): Project\n\
-  createRepresentation(projectName: String!, resourcePath: String!, description: RepresentationCreationDescription!): Project\n\
-}
-
-fileCreationDescription=input FileCreationDescription {\n\
-  kind: String!\n\
-  name: String!\n\
-}
-
-representationCreationDescription=input RepresentationCreationDescription {\n\
-  viewpointIdentifier: String!\n\
-  representationIdentifier: String!\n\
-  eObjectFragment: String!\n\
-  name: String!\n\
-}
-
-# ====================================================================
-#
-# Workspace Domain
-#
-# ====================================================================
-
-resource=interface Resource {\n\
-  name: String!\n\
-  path: String!\n\
-  container: Container\n\
-  project: Project!\n\
-}
-
-container=interface Container {\n\
-  resources(first: Int, after: String, last: Int, before: String): ContainerResourceConnection\n\
-}
-
-project=type Project implements Resource, Container {\n\
-  name: String!\n\
-  path: String!\n\
-  container: Container\n\
-  project: Project!\n\
-  resources(first: Int, after: String, last: Int, before: String): ContainerResourceConnection\n\
-  description: String\n\
-  resourceByPath(path: String!): Resource\n\
-  activatedViewpoints(first: Int, after: String, last: Int, before: String): ProjectViewpointConnection\n\
-}
-
-folder=type Folder implements Resource, Container {\n\
-  name: String!\n\
-  path: String!\n\
-  container: Container\n\
-  project: Project!\n\
-  resources(first: Int, after: String, last: Int, before: String): ContainerResourceConnection\n\
-}
-
-file=type File implements Resource {\n\
-  name: String!\n\
-  path: String!\n\
-  container: Container\n\
-  project: Project!\n\
-  representations(first: Int, after: String, last: Int, before: String): FileRepresentationConnection\n\
-  eObjects(first: Int, after: String, last: Int, before: String): FileEObjectConnection\n\
-}
-
-# ====================================================================
-#
-# Sirius Domain
-#
-# ====================================================================
-
-viewpoint=type Viewpoint {\n\
-  identifier: String!\n\
-  name: String!\n\
-  representationDescriptions(first: Int, after: String, last: Int, before: String): ViewpointRepresentationDescriptionConnection\n\
-}
-
-representationDescription=interface RepresentationDescription {\n\
-  identifier: String!\n\
-  name: String!\n\
-  viewpoint: Viewpoint!\n\
-  ePackages(first: Int, after: String, last: Int, before: String): RepresentationDescriptionEPackageConnection\n\
-}
-
-diagramDescription=type DiagramDescription implements RepresentationDescription {\n\
-  identifier: String!\n\
-  name: String!\n\
-  viewpoint: Viewpoint!\n\
-  ePackages(first: Int, after: String, last: Int, before: String): RepresentationDescriptionEPackageConnection\n\
-}
-
-representation=interface Representation {\n\
-  name: String!\n\
-}
-
-diagram=type Diagram implements Representation {\n\
-  name: String!\n\
-  description: DiagramDescription!\n\
-}
-
-# ====================================================================
-#
-# EMF Domain
-#
-# ====================================================================
-
-eObject=interface EObject {\n\
-}
-
-eModelElement=interface EModelElement {\n\
-  eAnnotations: [EAnnotation!]!\n\
-}
-
-eNamedElement=interface ENamedElement {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-}
-
-eClassifier=interface EClassifier {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  instanceClassName: String\n\
-  instanceTypeName: String\n\
-  ePackage: EPackage\n\
-  eTypeParameters: [ETypeParameter!]!\n\
-}
-
-eClass=type EClass implements EClassifier, ENamedElement, EModelElement, EObject {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  instanceClassName: String\n\
-  instanceTypeName: String\n\
-  ePackage: EPackage\n\
-  eTypeParameters: [ETypeParameter!]!\n\
-  abstract: Boolean!\n\
-  interface: Boolean!\n\
-  eSuperTypes: [EClass!]!\n\
-  eOperations: [EOperation!]!\n\
-  eAllAttributes: [EAttribute!]!\n\
-  eAllReferences: [EReference!]!\n\
-  eReferences: [EReference!]!\n\
-  eAttributes: [EAttribute!]!\n\
-  eAllContainments: [EReference!]!\n\
-  eAllOperations: [EOperation!]!\n\
-  eAllStructuralFeatures: [EStructuralFeature!]!\n\
-  eAllSuperTypes: [EClass!]!\n\
-  eIDAttribute: EAttribute\n\
-  eStructuralFeatures: [EStructuralFeature!]!\n\
-  eGenericSuperTypes: [EGenericType!]!\n\
-  eAllGenericSuperTypes: [EGenericType!]!\n\
-}
-
-eTypedElement=interface ETypedElement {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  ordered: Boolean!\n\
-  unique: Boolean!\n\
-  lowerBound: Int!\n\
-  upperBound: Int!\n\
-  many: Boolean!\n\
-  required: Boolean!\n\
-  eType: EClassifier\n\
-  eGenericType: EGenericType\n\
-}
-
-eStructuralFeature=interface EStructuralFeature {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  ordered: Boolean!\n\
-  unique: Boolean!\n\
-  lowerBound: Int!\n\
-  upperBound: Int!\n\
-  many: Boolean!\n\
-  required: Boolean!\n\
-  eType: EClassifier\n\
-  eGenericType: EGenericType\n\
-  changeable: Boolean!\n\
-  volatile: Boolean!\n\
-  transient: Boolean!\n\
-  defaultValueLiteral: String\n\
-  unsettable: Boolean!\n\
-  derived: Boolean!\n\
-  eContainingClass: EClass\n\
-}
-
-eAttribute=type EAttribute implements EStructuralFeature, ETypedElement, ENamedElement, EModelElement, EObject {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  ordered: Boolean!\n\
-  unique: Boolean!\n\
-  lowerBound: Int!\n\
-  upperBound: Int!\n\
-  many: Boolean!\n\
-  required: Boolean!\n\
-  eType: EClassifier\n\
-  eGenericType: EGenericType\n\
-  changeable: Boolean!\n\
-  volatile: Boolean!\n\
-  transient: Boolean!\n\
-  defaultValueLiteral: String\n\
-  unsettable: Boolean!\n\
-  derived: Boolean!\n\
-  eContainingClass: EClass\n\
-  iD: Boolean!\n\
-  eAttributeType: EDataType\n\
-}
-
-eReference=type EReference implements EStructuralFeature, ETypedElement, ENamedElement, EModelElement, EObject {\n\
-  eAnnotations: [EAnnotation!]!\n\
-  name: String\n\
-  ordered: Boolean!\n\
-  unique: Boolean!\n\
-  lowerBound: Int!\n\
-  upperBound: Int!\n\
-  many: Boolean!\n\
-  required: Boolean!\n\
-  eType: EClassifier\n\
-  eGenericType: EGenericType\n\
-  changeable: Boolean!\n\
-  volatile: Boolean!\n\
-  transient: Boolean!\n\
-  defaultValueLiteral: String\n\
-  unsettable: Boolean!\n\
-  derived: Boolean!\n\
-  eContainingClass: EClass\n\
-  containment: Boolean!\n\
-  container: Boolean!\n\
-  resolveProxies: Boolean!\n\
-  eOpposite: EReference\n\
-  eReferenceType: EClass\n\
-  eKeys: [EAttribute!]!\n\
-}
-
-library=type Library implements Addressable, EObject {\n\
-  address: String\n\
-  name: String\n\
-  writers: [Writer!]!\n\
-  employees: [Employee!]!\n\
-  borrowers: [Borrower!]!\n\
-  stock: [Item!]!\n\
-  books: [Book!]!\n\
-  branches: [Library!]!\n\
-  parentBranch: Library\n\
-}
-
-book=type Book implements CirculatingItem, Lendable, Item, EObject {\n\
-  publicationDate: EDate\n\
-  copies: Int!\n\
-  borrowers: [Borrower!]!\n\
-  title: String\n\
-  pages: Int!\n\
-  category: BookCategory\n\
-  author: Writer\n\
-}
-
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/plugin.xml b/plugins/org.eclipse.sirius.tests.services.graphql/plugin.xml
deleted file mode 100644
index 7661fde..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/plugin.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-  Copyright (c) 2018 Obeo.
-  All rights reserved. This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License v1.0
-  which accompanies this distribution, and is available at
-  http://www.eclipse.org/legal/epl-v10.html
- 
-  Contributors:
-     Obeo - initial API and implementation
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated library -->
-      <package
-            uri="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"
-            class="org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage"
-            genModel="model/library.genmodel"/>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/pom.xml b/plugins/org.eclipse.sirius.tests.services.graphql/pom.xml
deleted file mode 100644
index 0028885..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2018 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <properties>
-    <sonar.coverage.exclusions>src/**/*</sonar.coverage.exclusions>
-  </properties>
-
-  <artifactId>org.eclipse.sirius.tests.services.graphql</artifactId>
-  <packaging>eclipse-test-plugin</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>tycho-surefire-plugin</artifactId>
-        <version>${tycho-version}</version>
-        <configuration>
-          <skipTests>${tests.junit.skip}</skipTests>
-          <includes>
-            <include>${tests.junit.include}</include>
-          </includes>
-          <argLine>${tests.vmargs}</argLine>
-          <testFailureIgnore>${tests.ignoreFailures}</testFailureIgnore>
-          <testClass>org.eclipse.sirius.tests.services.graphql.api.AllSiriusGraphQLTests</testClass>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Addressable.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Addressable.java
deleted file mode 100644
index 97b5807..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Addressable.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Addressable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable#getAddress <em>Address</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAddressable()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Addressable extends EObject {
-    /**
-     * Returns the value of the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Address</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Address</em>' attribute.
-     * @see #setAddress(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAddressable_Address()
-     * @model
-     * @generated
-     */
-    String getAddress();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable#getAddress <em>Address</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Address</em>' attribute.
-     * @see #getAddress()
-     * @generated
-     */
-    void setAddress(String value);
-
-} // Addressable
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/AudioVisualItem.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/AudioVisualItem.java
deleted file mode 100644
index d2f836c..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/AudioVisualItem.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Audio Visual Item</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAudioVisualItem()
- * @model abstract="true"
- * @generated
- */
-public interface AudioVisualItem extends CirculatingItem {
-    /**
-     * Returns the value of the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Title</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Title</em>' attribute.
-     * @see #setTitle(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAudioVisualItem_Title()
-     * @model
-     * @generated
-     */
-    String getTitle();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getTitle <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Title</em>' attribute.
-     * @see #getTitle()
-     * @generated
-     */
-    void setTitle(String value);
-
-    /**
-     * Returns the value of the '<em><b>Minutes Length</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Minutes Length</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Minutes Length</em>' attribute.
-     * @see #setMinutesLength(int)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAudioVisualItem_MinutesLength()
-     * @model required="true"
-     * @generated
-     */
-    int getMinutesLength();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Minutes Length</em>' attribute.
-     * @see #getMinutesLength()
-     * @generated
-     */
-    void setMinutesLength(int value);
-
-    /**
-     * Returns the value of the '<em><b>Damaged</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Damaged</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Damaged</em>' attribute.
-     * @see #setDamaged(boolean)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getAudioVisualItem_Damaged()
-     * @model
-     * @generated
-     */
-    boolean isDamaged();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Damaged</em>' attribute.
-     * @see #isDamaged()
-     * @generated
-     */
-    void setDamaged(boolean value);
-
-} // AudioVisualItem
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Book.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Book.java
deleted file mode 100644
index 0e4196a..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Book.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Book</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getPages <em>Pages</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory <em>Category</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor <em>Author</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBook()
- * @model
- * @generated
- */
-public interface Book extends CirculatingItem {
-    /**
-     * Returns the value of the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Title</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Title</em>' attribute.
-     * @see #setTitle(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBook_Title()
-     * @model
-     * @generated
-     */
-    String getTitle();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getTitle <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Title</em>' attribute.
-     * @see #getTitle()
-     * @generated
-     */
-    void setTitle(String value);
-
-    /**
-     * Returns the value of the '<em><b>Pages</b></em>' attribute.
-     * The default value is <code>"100"</code>.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Pages</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Pages</em>' attribute.
-     * @see #setPages(int)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBook_Pages()
-     * @model default="100"
-     * @generated
-     */
-    int getPages();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getPages <em>Pages</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Pages</em>' attribute.
-     * @see #getPages()
-     * @generated
-     */
-    void setPages(int value);
-
-    /**
-     * Returns the value of the '<em><b>Category</b></em>' attribute.
-     * The literals are from the enumeration {@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Category</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Category</em>' attribute.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory
-     * @see #isSetCategory()
-     * @see #unsetCategory()
-     * @see #setCategory(BookCategory)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBook_Category()
-     * @model unsettable="true"
-     * @generated
-     */
-    BookCategory getCategory();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory <em>Category</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Category</em>' attribute.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory
-     * @see #isSetCategory()
-     * @see #unsetCategory()
-     * @see #getCategory()
-     * @generated
-     */
-    void setCategory(BookCategory value);
-
-    /**
-     * Unsets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory <em>Category</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isSetCategory()
-     * @see #getCategory()
-     * @see #setCategory(BookCategory)
-     * @generated
-     */
-    void unsetCategory();
-
-    /**
-     * Returns whether the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory <em>Category</em>}' attribute is set.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return whether the value of the '<em>Category</em>' attribute is set.
-     * @see #unsetCategory()
-     * @see #getCategory()
-     * @see #setCategory(BookCategory)
-     * @generated
-     */
-    boolean isSetCategory();
-
-    /**
-     * Returns the value of the '<em><b>Author</b></em>' reference.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getBooks <em>Books</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Author</em>' reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Author</em>' reference.
-     * @see #setAuthor(Writer)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBook_Author()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getBooks
-     * @model opposite="books" required="true"
-     * @generated
-     */
-    Writer getAuthor();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor <em>Author</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Author</em>' reference.
-     * @see #getAuthor()
-     * @generated
-     */
-    void setAuthor(Writer value);
-
-} // Book
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookCategory.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookCategory.java
deleted file mode 100644
index 28f3a2f..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookCategory.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Book Category</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBookCategory()
- * @model
- * @generated
- */
-public enum BookCategory implements Enumerator {
-    /**
-     * The '<em><b>Mystery</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #MYSTERY_VALUE
-     * @generated
-     * @ordered
-     */
-    MYSTERY(0, "Mystery", "Mystery"), //$NON-NLS-1$ //$NON-NLS-2$
-
-    /**
-     * The '<em><b>Science Fiction</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #SCIENCE_FICTION_VALUE
-     * @generated
-     * @ordered
-     */
-    SCIENCE_FICTION(1, "ScienceFiction", "ScienceFiction"), //$NON-NLS-1$ //$NON-NLS-2$
-
-    /**
-     * The '<em><b>Biography</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #BIOGRAPHY_VALUE
-     * @generated
-     * @ordered
-     */
-    BIOGRAPHY(2, "Biography", "Biography"); //$NON-NLS-1$ //$NON-NLS-2$
-
-    /**
-     * The '<em><b>Mystery</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of '<em><b>Mystery</b></em>' literal object isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @see #MYSTERY
-     * @model name="Mystery"
-     * @generated
-     * @ordered
-     */
-    public static final int MYSTERY_VALUE = 0;
-
-    /**
-     * The '<em><b>Science Fiction</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of '<em><b>Science Fiction</b></em>' literal object isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @see #SCIENCE_FICTION
-     * @model name="ScienceFiction"
-     * @generated
-     * @ordered
-     */
-    public static final int SCIENCE_FICTION_VALUE = 1;
-
-    /**
-     * The '<em><b>Biography</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of '<em><b>Biography</b></em>' literal object isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @see #BIOGRAPHY
-     * @model name="Biography"
-     * @generated
-     * @ordered
-     */
-    public static final int BIOGRAPHY_VALUE = 2;
-
-    /**
-     * An array of all the '<em><b>Book Category</b></em>' enumerators.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private static final BookCategory[] VALUES_ARRAY =
-        new BookCategory[] {
-            MYSTERY,
-            SCIENCE_FICTION,
-            BIOGRAPHY,
-        };
-
-    /**
-     * A public read-only list of all the '<em><b>Book Category</b></em>' enumerators.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public static final List<BookCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-    /**
-     * Returns the '<em><b>Book Category</b></em>' literal with the specified literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param literal the literal.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static BookCategory get(String literal) {
-        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-            BookCategory result = VALUES_ARRAY[i];
-            if (result.toString().equals(literal)) {
-                return result;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the '<em><b>Book Category</b></em>' literal with the specified name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param name the name.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static BookCategory getByName(String name) {
-        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-            BookCategory result = VALUES_ARRAY[i];
-            if (result.getName().equals(name)) {
-                return result;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the '<em><b>Book Category</b></em>' literal with the specified integer value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the integer value.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static BookCategory get(int value) {
-        switch (value) {
-            case MYSTERY_VALUE: return MYSTERY;
-            case SCIENCE_FICTION_VALUE: return SCIENCE_FICTION;
-            case BIOGRAPHY_VALUE: return BIOGRAPHY;
-        }
-        return null;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final int value;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final String name;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final String literal;
-
-    /**
-     * Only this class can construct instances.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private BookCategory(int value, String name, String literal) {
-        this.value = value;
-        this.name = name;
-        this.literal = literal;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getValue() {
-      return value;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getName() {
-      return name;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getLiteral() {
-      return literal;
-    }
-
-    /**
-     * Returns the literal value of the enumerator, which is its string representation.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        return literal;
-    }
-    
-} //BookCategory
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookOnTape.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookOnTape.java
deleted file mode 100644
index cf6aa2f..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/BookOnTape.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Book On Tape</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getReader <em>Reader</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getAuthor <em>Author</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBookOnTape()
- * @model
- * @generated
- */
-public interface BookOnTape extends AudioVisualItem {
-    /**
-     * Returns the value of the '<em><b>Reader</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Reader</em>' reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Reader</em>' reference.
-     * @see #setReader(Person)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBookOnTape_Reader()
-     * @model
-     * @generated
-     */
-    Person getReader();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getReader <em>Reader</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Reader</em>' reference.
-     * @see #getReader()
-     * @generated
-     */
-    void setReader(Person value);
-
-    /**
-     * Returns the value of the '<em><b>Author</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Author</em>' reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Author</em>' reference.
-     * @see #setAuthor(Writer)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBookOnTape_Author()
-     * @model
-     * @generated
-     */
-    Writer getAuthor();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getAuthor <em>Author</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Author</em>' reference.
-     * @see #getAuthor()
-     * @generated
-     */
-    void setAuthor(Writer value);
-
-} // BookOnTape
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Borrower.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Borrower.java
deleted file mode 100644
index b8ffc18..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Borrower.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Borrower</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBorrower()
- * @model
- * @generated
- */
-public interface Borrower extends Person {
-    /**
-     * Returns the value of the '<em><b>Borrowed</b></em>' reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable}.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Borrowed</em>' reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Borrowed</em>' reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getBorrower_Borrowed()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getBorrowers
-     * @model opposite="borrowers"
-     * @generated
-     */
-    EList<Lendable> getBorrowed();
-
-} // Borrower
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/CirculatingItem.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/CirculatingItem.java
deleted file mode 100644
index 8662993..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/CirculatingItem.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Circulating Item</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getCirculatingItem()
- * @model abstract="true"
- * @generated
- */
-public interface CirculatingItem extends Item, Lendable {
-} // CirculatingItem
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Employee.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Employee.java
deleted file mode 100644
index ef779fd..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Employee.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Employee</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee#getManager <em>Manager</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getEmployee()
- * @model
- * @generated
- */
-public interface Employee extends Person {
-    /**
-     * Returns the value of the '<em><b>Manager</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Manager</em>' reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Manager</em>' reference.
-     * @see #setManager(Employee)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getEmployee_Manager()
-     * @model
-     * @generated
-     */
-    Employee getManager();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee#getManager <em>Manager</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Manager</em>' reference.
-     * @see #getManager()
-     * @generated
-     */
-    void setManager(Employee value);
-
-} // Employee
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryFactory.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryFactory.java
deleted file mode 100644
index 5ee84c6..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryFactory.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage
- * @generated
- */
-public interface ExtlibraryFactory extends EFactory {
-    /**
-     * The singleton instance of the factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    ExtlibraryFactory eINSTANCE = org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryFactoryImpl.init();
-
-    /**
-     * Returns a new object of class '<em>Book</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Book</em>'.
-     * @generated
-     */
-    Book createBook();
-
-    /**
-     * Returns a new object of class '<em>Library</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Library</em>'.
-     * @generated
-     */
-    Library createLibrary();
-
-    /**
-     * Returns a new object of class '<em>Writer</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Writer</em>'.
-     * @generated
-     */
-    Writer createWriter();
-
-    /**
-     * Returns a new object of class '<em>Book On Tape</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Book On Tape</em>'.
-     * @generated
-     */
-    BookOnTape createBookOnTape();
-
-    /**
-     * Returns a new object of class '<em>Video Cassette</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Video Cassette</em>'.
-     * @generated
-     */
-    VideoCassette createVideoCassette();
-
-    /**
-     * Returns a new object of class '<em>Borrower</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Borrower</em>'.
-     * @generated
-     */
-    Borrower createBorrower();
-
-    /**
-     * Returns a new object of class '<em>Person</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Person</em>'.
-     * @generated
-     */
-    Person createPerson();
-
-    /**
-     * Returns a new object of class '<em>Employee</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Employee</em>'.
-     * @generated
-     */
-    Employee createEmployee();
-
-    /**
-     * Returns the package supported by this factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the package supported by this factory.
-     * @generated
-     */
-    ExtlibraryPackage getExtlibraryPackage();
-
-} //ExtlibraryFactory
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryPackage.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryPackage.java
deleted file mode 100644
index 1c5d4b3..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/ExtlibraryPackage.java
+++ /dev/null
@@ -1,1961 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each operation of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryFactory
- * @model kind="package"
- * @generated
- */
-public interface ExtlibraryPackage extends EPackage {
-    /**
-     * The package name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNAME = "extlibrary"; //$NON-NLS-1$
-
-    /**
-     * The package namespace URI.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNS_URI = "http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"; //$NON-NLS-1$
-
-    /**
-     * The package namespace name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNS_PREFIX = "extlib"; //$NON-NLS-1$
-
-    /**
-     * The singleton instance of the package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    ExtlibraryPackage eINSTANCE = org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl.init();
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ItemImpl <em>Item</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ItemImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getItem()
-     * @generated
-     */
-    int ITEM = 3;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ITEM__PUBLICATION_DATE = 0;
-
-    /**
-     * The number of structural features of the '<em>Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ITEM_FEATURE_COUNT = 1;
-
-    /**
-     * The number of operations of the '<em>Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ITEM_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getCirculatingItem()
-     * @generated
-     */
-    int CIRCULATING_ITEM = 5;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CIRCULATING_ITEM__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CIRCULATING_ITEM__COPIES = ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CIRCULATING_ITEM__BORROWERS = ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Circulating Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CIRCULATING_ITEM_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Circulating Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CIRCULATING_ITEM_OPERATION_COUNT = ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl <em>Book</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBook()
-     * @generated
-     */
-    int BOOK = 0;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__COPIES = CIRCULATING_ITEM__COPIES;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__BORROWERS = CIRCULATING_ITEM__BORROWERS;
-
-    /**
-     * The feature id for the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Pages</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__PAGES = CIRCULATING_ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Category</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__CATEGORY = CIRCULATING_ITEM_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Author</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK__AUTHOR = CIRCULATING_ITEM_FEATURE_COUNT + 3;
-
-    /**
-     * The number of structural features of the '<em>Book</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 4;
-
-    /**
-     * The number of operations of the '<em>Book</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_OPERATION_COUNT = CIRCULATING_ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable <em>Addressable</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getAddressable()
-     * @generated
-     */
-    int ADDRESSABLE = 13;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ADDRESSABLE__ADDRESS = 0;
-
-    /**
-     * The number of structural features of the '<em>Addressable</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ADDRESSABLE_FEATURE_COUNT = 1;
-
-    /**
-     * The number of operations of the '<em>Addressable</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ADDRESSABLE_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getLibrary()
-     * @generated
-     */
-    int LIBRARY = 1;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__ADDRESS = ADDRESSABLE__ADDRESS;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__NAME = ADDRESSABLE_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Writers</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__WRITERS = ADDRESSABLE_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Employees</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__EMPLOYEES = ADDRESSABLE_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__BORROWERS = ADDRESSABLE_FEATURE_COUNT + 3;
-
-    /**
-     * The feature id for the '<em><b>Stock</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__STOCK = ADDRESSABLE_FEATURE_COUNT + 4;
-
-    /**
-     * The feature id for the '<em><b>Books</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__BOOKS = ADDRESSABLE_FEATURE_COUNT + 5;
-
-    /**
-     * The feature id for the '<em><b>Branches</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__BRANCHES = ADDRESSABLE_FEATURE_COUNT + 6;
-
-    /**
-     * The feature id for the '<em><b>Parent Branch</b></em>' container reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__PARENT_BRANCH = ADDRESSABLE_FEATURE_COUNT + 7;
-
-    /**
-     * The feature id for the '<em><b>People</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY__PEOPLE = ADDRESSABLE_FEATURE_COUNT + 8;
-
-    /**
-     * The number of structural features of the '<em>Library</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 9;
-
-    /**
-     * The number of operations of the '<em>Library</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LIBRARY_OPERATION_COUNT = ADDRESSABLE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl <em>Person</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getPerson()
-     * @generated
-     */
-    int PERSON = 11;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERSON__ADDRESS = ADDRESSABLE__ADDRESS;
-
-    /**
-     * The feature id for the '<em><b>First Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERSON__FIRST_NAME = ADDRESSABLE_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Last Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERSON__LAST_NAME = ADDRESSABLE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Person</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERSON_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Person</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERSON_OPERATION_COUNT = ADDRESSABLE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl <em>Writer</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getWriter()
-     * @generated
-     */
-    int WRITER = 2;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER__ADDRESS = PERSON__ADDRESS;
-
-    /**
-     * The feature id for the '<em><b>First Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER__FIRST_NAME = PERSON__FIRST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Last Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER__LAST_NAME = PERSON__LAST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER__NAME = PERSON_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Books</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER__BOOKS = PERSON_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Writer</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Writer</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int WRITER_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable <em>Lendable</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getLendable()
-     * @generated
-     */
-    int LENDABLE = 4;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LENDABLE__COPIES = 0;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LENDABLE__BORROWERS = 1;
-
-    /**
-     * The number of structural features of the '<em>Lendable</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LENDABLE_FEATURE_COUNT = 2;
-
-    /**
-     * The number of operations of the '<em>Lendable</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LENDABLE_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl <em>Periodical</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getPeriodical()
-     * @generated
-     */
-    int PERIODICAL = 6;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERIODICAL__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERIODICAL__TITLE = ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Issues Per Year</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERIODICAL__ISSUES_PER_YEAR = ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Periodical</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERIODICAL_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Periodical</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int PERIODICAL_OPERATION_COUNT = ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getAudioVisualItem()
-     * @generated
-     */
-    int AUDIO_VISUAL_ITEM = 7;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__COPIES = CIRCULATING_ITEM__COPIES;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__BORROWERS = CIRCULATING_ITEM__BORROWERS;
-
-    /**
-     * The feature id for the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__MINUTES_LENGTH = CIRCULATING_ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Damaged</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM__DAMAGED = CIRCULATING_ITEM_FEATURE_COUNT + 2;
-
-    /**
-     * The number of structural features of the '<em>Audio Visual Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 3;
-
-    /**
-     * The number of operations of the '<em>Audio Visual Item</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int AUDIO_VISUAL_ITEM_OPERATION_COUNT = CIRCULATING_ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBookOnTape()
-     * @generated
-     */
-    int BOOK_ON_TAPE = 8;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
-
-    /**
-     * The feature id for the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
-
-    /**
-     * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
-
-    /**
-     * The feature id for the '<em><b>Damaged</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
-
-    /**
-     * The feature id for the '<em><b>Reader</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__READER = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Author</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE__AUTHOR = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Book On Tape</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Book On Tape</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BOOK_ON_TAPE_OPERATION_COUNT = AUDIO_VISUAL_ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.VideoCassetteImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getVideoCassette()
-     * @generated
-     */
-    int VIDEO_CASSETTE = 9;
-
-    /**
-     * The feature id for the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
-
-    /**
-     * The feature id for the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
-
-    /**
-     * The feature id for the '<em><b>Borrowers</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
-
-    /**
-     * The feature id for the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
-
-    /**
-     * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
-
-    /**
-     * The feature id for the '<em><b>Damaged</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
-
-    /**
-     * The feature id for the '<em><b>Cast</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE__CAST = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Video Cassette</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Video Cassette</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int VIDEO_CASSETTE_OPERATION_COUNT = AUDIO_VISUAL_ITEM_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BorrowerImpl <em>Borrower</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BorrowerImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBorrower()
-     * @generated
-     */
-    int BORROWER = 10;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER__ADDRESS = PERSON__ADDRESS;
-
-    /**
-     * The feature id for the '<em><b>First Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER__FIRST_NAME = PERSON__FIRST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Last Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER__LAST_NAME = PERSON__LAST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Borrowed</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER__BORROWED = PERSON_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Borrower</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Borrower</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int BORROWER_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.EmployeeImpl <em>Employee</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.EmployeeImpl
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getEmployee()
-     * @generated
-     */
-    int EMPLOYEE = 12;
-
-    /**
-     * The feature id for the '<em><b>Address</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE__ADDRESS = PERSON__ADDRESS;
-
-    /**
-     * The feature id for the '<em><b>First Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE__FIRST_NAME = PERSON__FIRST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Last Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE__LAST_NAME = PERSON__LAST_NAME;
-
-    /**
-     * The feature id for the '<em><b>Manager</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE__MANAGER = PERSON_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Employee</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Employee</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EMPLOYEE_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory <em>Book Category</em>}' enum.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBookCategory()
-     * @generated
-     */
-    int BOOK_CATEGORY = 14;
-
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book <em>Book</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Book</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book
-     * @generated
-     */
-    EClass getBook();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getTitle <em>Title</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Title</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getTitle()
-     * @see #getBook()
-     * @generated
-     */
-    EAttribute getBook_Title();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getPages <em>Pages</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Pages</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getPages()
-     * @see #getBook()
-     * @generated
-     */
-    EAttribute getBook_Pages();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory <em>Category</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Category</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getCategory()
-     * @see #getBook()
-     * @generated
-     */
-    EAttribute getBook_Category();
-
-    /**
-     * Returns the meta object for the reference '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor <em>Author</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Author</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor()
-     * @see #getBook()
-     * @generated
-     */
-    EReference getBook_Author();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library <em>Library</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Library</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library
-     * @generated
-     */
-    EClass getLibrary();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getName <em>Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Name</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getName()
-     * @see #getLibrary()
-     * @generated
-     */
-    EAttribute getLibrary_Name();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getWriters <em>Writers</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Writers</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getWriters()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Writers();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getEmployees <em>Employees</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Employees</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getEmployees()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Employees();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBorrowers <em>Borrowers</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Borrowers</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBorrowers()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Borrowers();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getStock <em>Stock</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Stock</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getStock()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Stock();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBooks <em>Books</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Books</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBooks()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Books();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBranches <em>Branches</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Branches</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBranches()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_Branches();
-
-    /**
-     * Returns the meta object for the container reference '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch <em>Parent Branch</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Parent Branch</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch()
-     * @see #getLibrary()
-     * @generated
-     */
-    EReference getLibrary_ParentBranch();
-
-    /**
-     * Returns the meta object for the attribute list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getPeople <em>People</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>People</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getPeople()
-     * @see #getLibrary()
-     * @generated
-     */
-    EAttribute getLibrary_People();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer <em>Writer</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Writer</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Writer
-     * @generated
-     */
-    EClass getWriter();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getName <em>Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Name</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getName()
-     * @see #getWriter()
-     * @generated
-     */
-    EAttribute getWriter_Name();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getBooks <em>Books</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Books</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getBooks()
-     * @see #getWriter()
-     * @generated
-     */
-    EReference getWriter_Books();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item <em>Item</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Item</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Item
-     * @generated
-     */
-    EClass getItem();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item#getPublicationDate <em>Publication Date</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Publication Date</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Item#getPublicationDate()
-     * @see #getItem()
-     * @generated
-     */
-    EAttribute getItem_PublicationDate();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable <em>Lendable</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Lendable</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable
-     * @generated
-     */
-    EClass getLendable();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getCopies <em>Copies</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Copies</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getCopies()
-     * @see #getLendable()
-     * @generated
-     */
-    EAttribute getLendable_Copies();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Borrowers</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getBorrowers()
-     * @see #getLendable()
-     * @generated
-     */
-    EReference getLendable_Borrowers();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem <em>Circulating Item</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Circulating Item</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem
-     * @generated
-     */
-    EClass getCirculatingItem();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical <em>Periodical</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Periodical</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical
-     * @generated
-     */
-    EClass getPeriodical();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getTitle <em>Title</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Title</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getTitle()
-     * @see #getPeriodical()
-     * @generated
-     */
-    EAttribute getPeriodical_Title();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Issues Per Year</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getIssuesPerYear()
-     * @see #getPeriodical()
-     * @generated
-     */
-    EAttribute getPeriodical_IssuesPerYear();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem <em>Audio Visual Item</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Audio Visual Item</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem
-     * @generated
-     */
-    EClass getAudioVisualItem();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getTitle <em>Title</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Title</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getTitle()
-     * @see #getAudioVisualItem()
-     * @generated
-     */
-    EAttribute getAudioVisualItem_Title();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Minutes Length</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#getMinutesLength()
-     * @see #getAudioVisualItem()
-     * @generated
-     */
-    EAttribute getAudioVisualItem_MinutesLength();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Damaged</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem#isDamaged()
-     * @see #getAudioVisualItem()
-     * @generated
-     */
-    EAttribute getAudioVisualItem_Damaged();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape <em>Book On Tape</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Book On Tape</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape
-     * @generated
-     */
-    EClass getBookOnTape();
-
-    /**
-     * Returns the meta object for the reference '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getReader <em>Reader</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Reader</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getReader()
-     * @see #getBookOnTape()
-     * @generated
-     */
-    EReference getBookOnTape_Reader();
-
-    /**
-     * Returns the meta object for the reference '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getAuthor <em>Author</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Author</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape#getAuthor()
-     * @see #getBookOnTape()
-     * @generated
-     */
-    EReference getBookOnTape_Author();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette <em>Video Cassette</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Video Cassette</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette
-     * @generated
-     */
-    EClass getVideoCassette();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette#getCast <em>Cast</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Cast</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette#getCast()
-     * @see #getVideoCassette()
-     * @generated
-     */
-    EReference getVideoCassette_Cast();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower <em>Borrower</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Borrower</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower
-     * @generated
-     */
-    EClass getBorrower();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Borrowed</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower#getBorrowed()
-     * @see #getBorrower()
-     * @generated
-     */
-    EReference getBorrower_Borrowed();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person <em>Person</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Person</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Person
-     * @generated
-     */
-    EClass getPerson();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getFirstName <em>First Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>First Name</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getFirstName()
-     * @see #getPerson()
-     * @generated
-     */
-    EAttribute getPerson_FirstName();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getLastName <em>Last Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Last Name</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getLastName()
-     * @see #getPerson()
-     * @generated
-     */
-    EAttribute getPerson_LastName();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee <em>Employee</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Employee</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Employee
-     * @generated
-     */
-    EClass getEmployee();
-
-    /**
-     * Returns the meta object for the reference '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee#getManager <em>Manager</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Manager</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Employee#getManager()
-     * @see #getEmployee()
-     * @generated
-     */
-    EReference getEmployee_Manager();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable <em>Addressable</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Addressable</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable
-     * @generated
-     */
-    EClass getAddressable();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable#getAddress <em>Address</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Address</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable#getAddress()
-     * @see #getAddressable()
-     * @generated
-     */
-    EAttribute getAddressable_Address();
-
-    /**
-     * Returns the meta object for enum '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory <em>Book Category</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for enum '<em>Book Category</em>'.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory
-     * @generated
-     */
-    EEnum getBookCategory();
-
-    /**
-     * Returns the factory that creates the instances of the model.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the factory that creates the instances of the model.
-     * @generated
-     */
-    ExtlibraryFactory getExtlibraryFactory();
-
-    /**
-     * <!-- begin-user-doc -->
-     * Defines literals for the meta objects that represent
-     * <ul>
-     *   <li>each class,</li>
-     *   <li>each feature of each class,</li>
-     *   <li>each operation of each class,</li>
-     *   <li>each enum,</li>
-     *   <li>and each data type</li>
-     * </ul>
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    interface Literals {
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl <em>Book</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBook()
-         * @generated
-         */
-        EClass BOOK = eINSTANCE.getBook();
-
-        /**
-         * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute BOOK__TITLE = eINSTANCE.getBook_Title();
-
-        /**
-         * The meta object literal for the '<em><b>Pages</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute BOOK__PAGES = eINSTANCE.getBook_Pages();
-
-        /**
-         * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute BOOK__CATEGORY = eINSTANCE.getBook_Category();
-
-        /**
-         * The meta object literal for the '<em><b>Author</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference BOOK__AUTHOR = eINSTANCE.getBook_Author();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getLibrary()
-         * @generated
-         */
-        EClass LIBRARY = eINSTANCE.getLibrary();
-
-        /**
-         * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute LIBRARY__NAME = eINSTANCE.getLibrary_Name();
-
-        /**
-         * The meta object literal for the '<em><b>Writers</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__WRITERS = eINSTANCE.getLibrary_Writers();
-
-        /**
-         * The meta object literal for the '<em><b>Employees</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__EMPLOYEES = eINSTANCE.getLibrary_Employees();
-
-        /**
-         * The meta object literal for the '<em><b>Borrowers</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__BORROWERS = eINSTANCE.getLibrary_Borrowers();
-
-        /**
-         * The meta object literal for the '<em><b>Stock</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__STOCK = eINSTANCE.getLibrary_Stock();
-
-        /**
-         * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__BOOKS = eINSTANCE.getLibrary_Books();
-
-        /**
-         * The meta object literal for the '<em><b>Branches</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__BRANCHES = eINSTANCE.getLibrary_Branches();
-
-        /**
-         * The meta object literal for the '<em><b>Parent Branch</b></em>' container reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LIBRARY__PARENT_BRANCH = eINSTANCE.getLibrary_ParentBranch();
-
-        /**
-         * The meta object literal for the '<em><b>People</b></em>' attribute list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute LIBRARY__PEOPLE = eINSTANCE.getLibrary_People();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl <em>Writer</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getWriter()
-         * @generated
-         */
-        EClass WRITER = eINSTANCE.getWriter();
-
-        /**
-         * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute WRITER__NAME = eINSTANCE.getWriter_Name();
-
-        /**
-         * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference WRITER__BOOKS = eINSTANCE.getWriter_Books();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ItemImpl <em>Item</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ItemImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getItem()
-         * @generated
-         */
-        EClass ITEM = eINSTANCE.getItem();
-
-        /**
-         * The meta object literal for the '<em><b>Publication Date</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute ITEM__PUBLICATION_DATE = eINSTANCE.getItem_PublicationDate();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable <em>Lendable</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getLendable()
-         * @generated
-         */
-        EClass LENDABLE = eINSTANCE.getLendable();
-
-        /**
-         * The meta object literal for the '<em><b>Copies</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute LENDABLE__COPIES = eINSTANCE.getLendable_Copies();
-
-        /**
-         * The meta object literal for the '<em><b>Borrowers</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference LENDABLE__BORROWERS = eINSTANCE.getLendable_Borrowers();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getCirculatingItem()
-         * @generated
-         */
-        EClass CIRCULATING_ITEM = eINSTANCE.getCirculatingItem();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl <em>Periodical</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getPeriodical()
-         * @generated
-         */
-        EClass PERIODICAL = eINSTANCE.getPeriodical();
-
-        /**
-         * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute PERIODICAL__TITLE = eINSTANCE.getPeriodical_Title();
-
-        /**
-         * The meta object literal for the '<em><b>Issues Per Year</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute PERIODICAL__ISSUES_PER_YEAR = eINSTANCE.getPeriodical_IssuesPerYear();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getAudioVisualItem()
-         * @generated
-         */
-        EClass AUDIO_VISUAL_ITEM = eINSTANCE.getAudioVisualItem();
-
-        /**
-         * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute AUDIO_VISUAL_ITEM__TITLE = eINSTANCE.getAudioVisualItem_Title();
-
-        /**
-         * The meta object literal for the '<em><b>Minutes Length</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute AUDIO_VISUAL_ITEM__MINUTES_LENGTH = eINSTANCE.getAudioVisualItem_MinutesLength();
-
-        /**
-         * The meta object literal for the '<em><b>Damaged</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute AUDIO_VISUAL_ITEM__DAMAGED = eINSTANCE.getAudioVisualItem_Damaged();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBookOnTape()
-         * @generated
-         */
-        EClass BOOK_ON_TAPE = eINSTANCE.getBookOnTape();
-
-        /**
-         * The meta object literal for the '<em><b>Reader</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference BOOK_ON_TAPE__READER = eINSTANCE.getBookOnTape_Reader();
-
-        /**
-         * The meta object literal for the '<em><b>Author</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference BOOK_ON_TAPE__AUTHOR = eINSTANCE.getBookOnTape_Author();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.VideoCassetteImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getVideoCassette()
-         * @generated
-         */
-        EClass VIDEO_CASSETTE = eINSTANCE.getVideoCassette();
-
-        /**
-         * The meta object literal for the '<em><b>Cast</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference VIDEO_CASSETTE__CAST = eINSTANCE.getVideoCassette_Cast();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BorrowerImpl <em>Borrower</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BorrowerImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBorrower()
-         * @generated
-         */
-        EClass BORROWER = eINSTANCE.getBorrower();
-
-        /**
-         * The meta object literal for the '<em><b>Borrowed</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference BORROWER__BORROWED = eINSTANCE.getBorrower_Borrowed();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl <em>Person</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getPerson()
-         * @generated
-         */
-        EClass PERSON = eINSTANCE.getPerson();
-
-        /**
-         * The meta object literal for the '<em><b>First Name</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute PERSON__FIRST_NAME = eINSTANCE.getPerson_FirstName();
-
-        /**
-         * The meta object literal for the '<em><b>Last Name</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute PERSON__LAST_NAME = eINSTANCE.getPerson_LastName();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.EmployeeImpl <em>Employee</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.EmployeeImpl
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getEmployee()
-         * @generated
-         */
-        EClass EMPLOYEE = eINSTANCE.getEmployee();
-
-        /**
-         * The meta object literal for the '<em><b>Manager</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference EMPLOYEE__MANAGER = eINSTANCE.getEmployee_Manager();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable <em>Addressable</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getAddressable()
-         * @generated
-         */
-        EClass ADDRESSABLE = eINSTANCE.getAddressable();
-
-        /**
-         * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute ADDRESSABLE__ADDRESS = eINSTANCE.getAddressable_Address();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory <em>Book Category</em>}' enum.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory
-         * @see org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ExtlibraryPackageImpl#getBookCategory()
-         * @generated
-         */
-        EEnum BOOK_CATEGORY = eINSTANCE.getBookCategory();
-
-    }
-
-} //ExtlibraryPackage
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Item.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Item.java
deleted file mode 100644
index 111ff35..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Item.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import java.util.Date;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Item</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item#getPublicationDate <em>Publication Date</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getItem()
- * @model abstract="true"
- * @generated
- */
-public interface Item extends EObject {
-    /**
-     * Returns the value of the '<em><b>Publication Date</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Publication Date</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Publication Date</em>' attribute.
-     * @see #setPublicationDate(Date)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getItem_PublicationDate()
-     * @model
-     * @generated
-     */
-    Date getPublicationDate();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item#getPublicationDate <em>Publication Date</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Publication Date</em>' attribute.
-     * @see #getPublicationDate()
-     * @generated
-     */
-    void setPublicationDate(Date value);
-
-} // Item
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Lendable.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Lendable.java
deleted file mode 100644
index 5c456f2..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Lendable.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Lendable</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getCopies <em>Copies</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLendable()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Lendable extends EObject {
-    /**
-     * Returns the value of the '<em><b>Copies</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Copies</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Copies</em>' attribute.
-     * @see #setCopies(int)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLendable_Copies()
-     * @model required="true"
-     * @generated
-     */
-    int getCopies();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable#getCopies <em>Copies</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Copies</em>' attribute.
-     * @see #getCopies()
-     * @generated
-     */
-    void setCopies(int value);
-
-    /**
-     * Returns the value of the '<em><b>Borrowers</b></em>' reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower}.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Borrowers</em>' reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Borrowers</em>' reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLendable_Borrowers()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower#getBorrowed
-     * @model opposite="borrowed" ordered="false"
-     * @generated
-     */
-    EList<Borrower> getBorrowers();
-
-} // Lendable
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Library.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Library.java
deleted file mode 100644
index 62558d9..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Library.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.util.FeatureMap;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Library</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getWriters <em>Writers</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getEmployees <em>Employees</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBorrowers <em>Borrowers</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getStock <em>Stock</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBooks <em>Books</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBranches <em>Branches</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch <em>Parent Branch</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getPeople <em>People</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary()
- * @model
- * @generated
- */
-public interface Library extends Addressable {
-    /**
-     * Returns the value of the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Name</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Name</em>' attribute.
-     * @see #setName(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Name()
-     * @model
-     * @generated
-     */
-    String getName();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getName <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Name</em>' attribute.
-     * @see #getName()
-     * @generated
-     */
-    void setName(String value);
-
-    /**
-     * Returns the value of the '<em><b>Writers</b></em>' containment reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Writers</em>' containment reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Writers</em>' containment reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Writers()
-     * @model containment="true" transient="true" volatile="true" derived="true"
-     *        extendedMetaData="group='#people'"
-     * @generated
-     */
-    EList<Writer> getWriters();
-
-    /**
-     * Returns the value of the '<em><b>Employees</b></em>' containment reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Employees</em>' containment reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Employees</em>' containment reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Employees()
-     * @model containment="true" transient="true" volatile="true" derived="true"
-     *        extendedMetaData="group='#people'"
-     * @generated
-     */
-    EList<Employee> getEmployees();
-
-    /**
-     * Returns the value of the '<em><b>Borrowers</b></em>' containment reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Borrowers</em>' containment reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Borrowers</em>' containment reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Borrowers()
-     * @model containment="true" transient="true" volatile="true" derived="true"
-     *        extendedMetaData="group='#people'"
-     * @generated
-     */
-    EList<Borrower> getBorrowers();
-
-    /**
-     * Returns the value of the '<em><b>Stock</b></em>' containment reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Stock</em>' containment reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Stock</em>' containment reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Stock()
-     * @model containment="true" ordered="false"
-     * @generated
-     */
-    EList<Item> getStock();
-
-    /**
-     * Returns the value of the '<em><b>Books</b></em>' reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Books</em>' reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Books</em>' reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Books()
-     * @model transient="true" derived="true" ordered="false"
-     * @generated
-     */
-    EList<Book> getBooks();
-
-    /**
-     * Returns the value of the '<em><b>Branches</b></em>' containment reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library}.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch <em>Parent Branch</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Branches</em>' containment reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Branches</em>' containment reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_Branches()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch
-     * @model opposite="parentBranch" containment="true"
-     * @generated
-     */
-    EList<Library> getBranches();
-
-    /**
-     * Returns the value of the '<em><b>Parent Branch</b></em>' container reference.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBranches <em>Branches</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Parent Branch</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Parent Branch</em>' container reference.
-     * @see #setParentBranch(Library)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_ParentBranch()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getBranches
-     * @model opposite="branches" transient="false"
-     * @generated
-     */
-    Library getParentBranch();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library#getParentBranch <em>Parent Branch</em>}' container reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Parent Branch</em>' container reference.
-     * @see #getParentBranch()
-     * @generated
-     */
-    void setParentBranch(Library value);
-
-    /**
-     * Returns the value of the '<em><b>People</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>People</em>' attribute list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>People</em>' attribute list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getLibrary_People()
-     * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getPeople();
-
-} // Library
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Periodical.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Periodical.java
deleted file mode 100644
index d711854..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Periodical.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Periodical</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPeriodical()
- * @model abstract="true"
- * @generated
- */
-public interface Periodical extends Item {
-    /**
-     * Returns the value of the '<em><b>Title</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Title</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Title</em>' attribute.
-     * @see #setTitle(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPeriodical_Title()
-     * @model
-     * @generated
-     */
-    String getTitle();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getTitle <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Title</em>' attribute.
-     * @see #getTitle()
-     * @generated
-     */
-    void setTitle(String value);
-
-    /**
-     * Returns the value of the '<em><b>Issues Per Year</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Issues Per Year</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Issues Per Year</em>' attribute.
-     * @see #setIssuesPerYear(int)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPeriodical_IssuesPerYear()
-     * @model required="true"
-     * @generated
-     */
-    int getIssuesPerYear();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Issues Per Year</em>' attribute.
-     * @see #getIssuesPerYear()
-     * @generated
-     */
-    void setIssuesPerYear(int value);
-
-} // Periodical
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Person.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Person.java
deleted file mode 100644
index 1aa9bd5..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Person.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Person</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getFirstName <em>First Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getLastName <em>Last Name</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPerson()
- * @model
- * @generated
- */
-public interface Person extends Addressable {
-    /**
-     * Returns the value of the '<em><b>First Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>First Name</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>First Name</em>' attribute.
-     * @see #setFirstName(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPerson_FirstName()
-     * @model required="true"
-     * @generated
-     */
-    String getFirstName();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getFirstName <em>First Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>First Name</em>' attribute.
-     * @see #getFirstName()
-     * @generated
-     */
-    void setFirstName(String value);
-
-    /**
-     * Returns the value of the '<em><b>Last Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Last Name</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Last Name</em>' attribute.
-     * @see #setLastName(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getPerson_LastName()
-     * @model required="true"
-     * @generated
-     */
-    String getLastName();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person#getLastName <em>Last Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Last Name</em>' attribute.
-     * @see #getLastName()
-     * @generated
-     */
-    void setLastName(String value);
-
-} // Person
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/VideoCassette.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/VideoCassette.java
deleted file mode 100644
index 97fe0d6..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/VideoCassette.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Video Cassette</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette#getCast <em>Cast</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getVideoCassette()
- * @model
- * @generated
- */
-public interface VideoCassette extends AudioVisualItem {
-    /**
-     * Returns the value of the '<em><b>Cast</b></em>' reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person}.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Cast</em>' reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Cast</em>' reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getVideoCassette_Cast()
-     * @model
-     * @generated
-     */
-    EList<Person> getCast();
-
-} // VideoCassette
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Writer.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Writer.java
deleted file mode 100644
index 19f5855..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/Writer.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Writer</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getBooks <em>Books</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getWriter()
- * @model
- * @generated
- */
-public interface Writer extends Person {
-    /**
-     * Returns the value of the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Name</em>' attribute isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Name</em>' attribute.
-     * @see #setName(String)
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getWriter_Name()
-     * @model transient="true" volatile="true"
-     * @generated
-     */
-    String getName();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer#getName <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Name</em>' attribute.
-     * @see #getName()
-     * @generated
-     */
-    void setName(String value);
-
-    /**
-     * Returns the value of the '<em><b>Books</b></em>' reference list.
-     * The list contents are of type {@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book}.
-     * It is bidirectional and its opposite is '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor <em>Author</em>}'.
-     * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Books</em>' reference list isn't clear,
-     * there really should be more of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Books</em>' reference list.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#getWriter_Books()
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book#getAuthor
-     * @model opposite="author"
-     * @generated
-     */
-    EList<Book> getBooks();
-
-} // Writer
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/AudioVisualItemImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/AudioVisualItemImpl.java
deleted file mode 100644
index b2d7171..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/AudioVisualItemImpl.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Audio Visual Item</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl#getMinutesLength <em>Minutes Length</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.AudioVisualItemImpl#isDamaged <em>Damaged</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class AudioVisualItemImpl extends CirculatingItemImpl implements AudioVisualItem {
-    /**
-     * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected static final String TITLE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected String title = TITLE_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getMinutesLength()
-     * @generated
-     * @ordered
-     */
-    protected static final int MINUTES_LENGTH_EDEFAULT = 0;
-
-    /**
-     * The cached value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getMinutesLength()
-     * @generated
-     * @ordered
-     */
-    protected int minutesLength = MINUTES_LENGTH_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isDamaged()
-     * @generated
-     * @ordered
-     */
-    protected static final boolean DAMAGED_EDEFAULT = false;
-
-    /**
-     * The cached value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isDamaged()
-     * @generated
-     * @ordered
-     */
-    protected boolean damaged = DAMAGED_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected AudioVisualItemImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.AUDIO_VISUAL_ITEM;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setTitle(String newTitle) {
-        String oldTitle = title;
-        title = newTitle;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.AUDIO_VISUAL_ITEM__TITLE, oldTitle, title));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getMinutesLength() {
-        return minutesLength;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setMinutesLength(int newMinutesLength) {
-        int oldMinutesLength = minutesLength;
-        minutesLength = newMinutesLength;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH, oldMinutesLength, minutesLength));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean isDamaged() {
-        return damaged;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setDamaged(boolean newDamaged) {
-        boolean oldDamaged = damaged;
-        damaged = newDamaged;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED, oldDamaged, damaged));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
-                return getTitle();
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
-                return getMinutesLength();
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
-                return isDamaged();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
-                setTitle((String)newValue);
-                return;
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
-                setMinutesLength((Integer)newValue);
-                return;
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
-                setDamaged((Boolean)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
-                setTitle(TITLE_EDEFAULT);
-                return;
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
-                setMinutesLength(MINUTES_LENGTH_EDEFAULT);
-                return;
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
-                setDamaged(DAMAGED_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
-                return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
-                return minutesLength != MINUTES_LENGTH_EDEFAULT;
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
-                return damaged != DAMAGED_EDEFAULT;
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (title: "); //$NON-NLS-1$
-        result.append(title);
-        result.append(", minutesLength: "); //$NON-NLS-1$
-        result.append(minutesLength);
-        result.append(", damaged: "); //$NON-NLS-1$
-        result.append(damaged);
-        result.append(')');
-        return result.toString();
-    }
-
-} //AudioVisualItemImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookImpl.java
deleted file mode 100644
index b194508..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookImpl.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Book;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Writer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Book</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl#getPages <em>Pages</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl#getCategory <em>Category</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookImpl#getAuthor <em>Author</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class BookImpl extends CirculatingItemImpl implements Book {
-    /**
-     * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected static final String TITLE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected String title = TITLE_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getPages() <em>Pages</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getPages()
-     * @generated
-     * @ordered
-     */
-    protected static final int PAGES_EDEFAULT = 100;
-
-    /**
-     * The cached value of the '{@link #getPages() <em>Pages</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getPages()
-     * @generated
-     * @ordered
-     */
-    protected int pages = PAGES_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCategory()
-     * @generated
-     * @ordered
-     */
-    protected static final BookCategory CATEGORY_EDEFAULT = BookCategory.MYSTERY;
-
-    /**
-     * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCategory()
-     * @generated
-     * @ordered
-     */
-    protected BookCategory category = CATEGORY_EDEFAULT;
-
-    /**
-     * This is true if the Category attribute has been set.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    protected boolean categoryESet;
-
-    /**
-     * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAuthor()
-     * @generated
-     * @ordered
-     */
-    protected Writer author;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected BookImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.BOOK;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setTitle(String newTitle) {
-        String oldTitle = title;
-        title = newTitle;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK__TITLE, oldTitle, title));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getPages() {
-        return pages;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setPages(int newPages) {
-        int oldPages = pages;
-        pages = newPages;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK__PAGES, oldPages, pages));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public BookCategory getCategory() {
-        return category;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setCategory(BookCategory newCategory) {
-        BookCategory oldCategory = category;
-        category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
-        boolean oldCategoryESet = categoryESet;
-        categoryESet = true;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK__CATEGORY, oldCategory, category, !oldCategoryESet));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void unsetCategory() {
-        BookCategory oldCategory = category;
-        boolean oldCategoryESet = categoryESet;
-        category = CATEGORY_EDEFAULT;
-        categoryESet = false;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.UNSET, ExtlibraryPackage.BOOK__CATEGORY, oldCategory, CATEGORY_EDEFAULT, oldCategoryESet));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean isSetCategory() {
-        return categoryESet;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Writer getAuthor() {
-        if (author != null && author.eIsProxy()) {
-            InternalEObject oldAuthor = (InternalEObject)author;
-            author = (Writer)eResolveProxy(oldAuthor);
-            if (author != oldAuthor) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtlibraryPackage.BOOK__AUTHOR, oldAuthor, author));
-            }
-        }
-        return author;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Writer basicGetAuthor() {
-        return author;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetAuthor(Writer newAuthor, NotificationChain msgs) {
-        Writer oldAuthor = author;
-        author = newAuthor;
-        if (eNotificationRequired()) {
-            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK__AUTHOR, oldAuthor, newAuthor);
-            if (msgs == null) msgs = notification; else msgs.add(notification);
-        }
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setAuthor(Writer newAuthor) {
-        if (newAuthor != author) {
-            NotificationChain msgs = null;
-            if (author != null)
-                msgs = ((InternalEObject)author).eInverseRemove(this, ExtlibraryPackage.WRITER__BOOKS, Writer.class, msgs);
-            if (newAuthor != null)
-                msgs = ((InternalEObject)newAuthor).eInverseAdd(this, ExtlibraryPackage.WRITER__BOOKS, Writer.class, msgs);
-            msgs = basicSetAuthor(newAuthor, msgs);
-            if (msgs != null) msgs.dispatch();
-        }
-        else if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK__AUTHOR, newAuthor, newAuthor));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                if (author != null)
-                    msgs = ((InternalEObject)author).eInverseRemove(this, ExtlibraryPackage.WRITER__BOOKS, Writer.class, msgs);
-                return basicSetAuthor((Writer)otherEnd, msgs);
-        }
-        return super.eInverseAdd(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                return basicSetAuthor(null, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__TITLE:
-                return getTitle();
-            case ExtlibraryPackage.BOOK__PAGES:
-                return getPages();
-            case ExtlibraryPackage.BOOK__CATEGORY:
-                return getCategory();
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                if (resolve) return getAuthor();
-                return basicGetAuthor();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__TITLE:
-                setTitle((String)newValue);
-                return;
-            case ExtlibraryPackage.BOOK__PAGES:
-                setPages((Integer)newValue);
-                return;
-            case ExtlibraryPackage.BOOK__CATEGORY:
-                setCategory((BookCategory)newValue);
-                return;
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                setAuthor((Writer)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__TITLE:
-                setTitle(TITLE_EDEFAULT);
-                return;
-            case ExtlibraryPackage.BOOK__PAGES:
-                setPages(PAGES_EDEFAULT);
-                return;
-            case ExtlibraryPackage.BOOK__CATEGORY:
-                unsetCategory();
-                return;
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                setAuthor((Writer)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK__TITLE:
-                return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
-            case ExtlibraryPackage.BOOK__PAGES:
-                return pages != PAGES_EDEFAULT;
-            case ExtlibraryPackage.BOOK__CATEGORY:
-                return isSetCategory();
-            case ExtlibraryPackage.BOOK__AUTHOR:
-                return author != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (title: "); //$NON-NLS-1$
-        result.append(title);
-        result.append(", pages: "); //$NON-NLS-1$
-        result.append(pages);
-        result.append(", category: "); //$NON-NLS-1$
-        if (categoryESet) result.append(category); else result.append("<unset>"); //$NON-NLS-1$
-        result.append(')');
-        return result.toString();
-    }
-
-} //BookImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookOnTapeImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookOnTapeImpl.java
deleted file mode 100644
index 402091c..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BookOnTapeImpl.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Person;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Writer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Book On Tape</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl#getReader <em>Reader</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BookOnTapeImpl#getAuthor <em>Author</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class BookOnTapeImpl extends AudioVisualItemImpl implements BookOnTape {
-    /**
-     * The cached value of the '{@link #getReader() <em>Reader</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getReader()
-     * @generated
-     * @ordered
-     */
-    protected Person reader;
-
-    /**
-     * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAuthor()
-     * @generated
-     * @ordered
-     */
-    protected Writer author;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected BookOnTapeImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.BOOK_ON_TAPE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Person getReader() {
-        if (reader != null && reader.eIsProxy()) {
-            InternalEObject oldReader = (InternalEObject)reader;
-            reader = (Person)eResolveProxy(oldReader);
-            if (reader != oldReader) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtlibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
-            }
-        }
-        return reader;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Person basicGetReader() {
-        return reader;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setReader(Person newReader) {
-        Person oldReader = reader;
-        reader = newReader;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Writer getAuthor() {
-        if (author != null && author.eIsProxy()) {
-            InternalEObject oldAuthor = (InternalEObject)author;
-            author = (Writer)eResolveProxy(oldAuthor);
-            if (author != oldAuthor) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
-            }
-        }
-        return author;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Writer basicGetAuthor() {
-        return author;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setAuthor(Writer newAuthor) {
-        Writer oldAuthor = author;
-        author = newAuthor;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK_ON_TAPE__READER:
-                if (resolve) return getReader();
-                return basicGetReader();
-            case ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR:
-                if (resolve) return getAuthor();
-                return basicGetAuthor();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK_ON_TAPE__READER:
-                setReader((Person)newValue);
-                return;
-            case ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR:
-                setAuthor((Writer)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK_ON_TAPE__READER:
-                setReader((Person)null);
-                return;
-            case ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR:
-                setAuthor((Writer)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BOOK_ON_TAPE__READER:
-                return reader != null;
-            case ExtlibraryPackage.BOOK_ON_TAPE__AUTHOR:
-                return author != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //BookOnTapeImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BorrowerImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BorrowerImpl.java
deleted file mode 100644
index c6ac75f..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/BorrowerImpl.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Borrower</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.BorrowerImpl#getBorrowed <em>Borrowed</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class BorrowerImpl extends PersonImpl implements Borrower {
-    /**
-     * The cached value of the '{@link #getBorrowed() <em>Borrowed</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getBorrowed()
-     * @generated
-     * @ordered
-     */
-    protected EList<Lendable> borrowed;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected BorrowerImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.BORROWER;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Lendable> getBorrowed() {
-        if (borrowed == null) {
-            borrowed = new EObjectWithInverseResolvingEList.ManyInverse<Lendable>(Lendable.class, this, ExtlibraryPackage.BORROWER__BORROWED, ExtlibraryPackage.LENDABLE__BORROWERS);
-        }
-        return borrowed;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowed()).basicAdd(otherEnd, msgs);
-        }
-        return super.eInverseAdd(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                return ((InternalEList<?>)getBorrowed()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                return getBorrowed();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                getBorrowed().clear();
-                getBorrowed().addAll((Collection<? extends Lendable>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                getBorrowed().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.BORROWER__BORROWED:
-                return borrowed != null && !borrowed.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //BorrowerImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/CirculatingItemImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/CirculatingItemImpl.java
deleted file mode 100644
index 8ccb6d3..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/CirculatingItemImpl.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Circulating Item</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl#getCopies <em>Copies</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.CirculatingItemImpl#getBorrowers <em>Borrowers</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class CirculatingItemImpl extends ItemImpl implements CirculatingItem {
-    /**
-     * The default value of the '{@link #getCopies() <em>Copies</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCopies()
-     * @generated
-     * @ordered
-     */
-    protected static final int COPIES_EDEFAULT = 0;
-
-    /**
-     * The cached value of the '{@link #getCopies() <em>Copies</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCopies()
-     * @generated
-     * @ordered
-     */
-    protected int copies = COPIES_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getBorrowers() <em>Borrowers</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getBorrowers()
-     * @generated
-     * @ordered
-     */
-    protected EList<Borrower> borrowers;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected CirculatingItemImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.CIRCULATING_ITEM;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getCopies() {
-        return copies;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setCopies(int newCopies) {
-        int oldCopies = copies;
-        copies = newCopies;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.CIRCULATING_ITEM__COPIES, oldCopies, copies));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Borrower> getBorrowers() {
-        if (borrowers == null) {
-            borrowers = new EObjectWithInverseResolvingEList.ManyInverse<Borrower>(Borrower.class, this, ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS, ExtlibraryPackage.BORROWER__BORROWED);
-        }
-        return borrowers;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowers()).basicAdd(otherEnd, msgs);
-        }
-        return super.eInverseAdd(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__COPIES:
-                return getCopies();
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                return getBorrowers();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__COPIES:
-                setCopies((Integer)newValue);
-                return;
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                getBorrowers().clear();
-                getBorrowers().addAll((Collection<? extends Borrower>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__COPIES:
-                setCopies(COPIES_EDEFAULT);
-                return;
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                getBorrowers().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.CIRCULATING_ITEM__COPIES:
-                return copies != COPIES_EDEFAULT;
-            case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS:
-                return borrowers != null && !borrowers.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-        if (baseClass == Lendable.class) {
-            switch (derivedFeatureID) {
-                case ExtlibraryPackage.CIRCULATING_ITEM__COPIES: return ExtlibraryPackage.LENDABLE__COPIES;
-                case ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS: return ExtlibraryPackage.LENDABLE__BORROWERS;
-                default: return -1;
-            }
-        }
-        return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-        if (baseClass == Lendable.class) {
-            switch (baseFeatureID) {
-                case ExtlibraryPackage.LENDABLE__COPIES: return ExtlibraryPackage.CIRCULATING_ITEM__COPIES;
-                case ExtlibraryPackage.LENDABLE__BORROWERS: return ExtlibraryPackage.CIRCULATING_ITEM__BORROWERS;
-                default: return -1;
-            }
-        }
-        return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (copies: "); //$NON-NLS-1$
-        result.append(copies);
-        result.append(')');
-        return result.toString();
-    }
-
-} //CirculatingItemImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/EmployeeImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/EmployeeImpl.java
deleted file mode 100644
index 77b0e73..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/EmployeeImpl.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Employee;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Employee</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.EmployeeImpl#getManager <em>Manager</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EmployeeImpl extends PersonImpl implements Employee {
-    /**
-     * The cached value of the '{@link #getManager() <em>Manager</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getManager()
-     * @generated
-     * @ordered
-     */
-    protected Employee manager;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected EmployeeImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.EMPLOYEE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Employee getManager() {
-        if (manager != null && manager.eIsProxy()) {
-            InternalEObject oldManager = (InternalEObject)manager;
-            manager = (Employee)eResolveProxy(oldManager);
-            if (manager != oldManager) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtlibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
-            }
-        }
-        return manager;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Employee basicGetManager() {
-        return manager;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setManager(Employee newManager) {
-        Employee oldManager = manager;
-        manager = newManager;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.EMPLOYEE__MANAGER:
-                if (resolve) return getManager();
-                return basicGetManager();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.EMPLOYEE__MANAGER:
-                setManager((Employee)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.EMPLOYEE__MANAGER:
-                setManager((Employee)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.EMPLOYEE__MANAGER:
-                return manager != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //EmployeeImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryFactoryImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryFactoryImpl.java
deleted file mode 100644
index 4934c49..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryFactoryImpl.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExtlibraryFactoryImpl extends EFactoryImpl implements ExtlibraryFactory {
-    /**
-     * Creates the default factory implementation.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public static ExtlibraryFactory init() {
-        try {
-            ExtlibraryFactory theExtlibraryFactory = (ExtlibraryFactory)EPackage.Registry.INSTANCE.getEFactory(ExtlibraryPackage.eNS_URI);
-            if (theExtlibraryFactory != null) {
-                return theExtlibraryFactory;
-            }
-        }
-        catch (Exception exception) {
-            EcorePlugin.INSTANCE.log(exception);
-        }
-        return new ExtlibraryFactoryImpl();
-    }
-
-    /**
-     * Creates an instance of the factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ExtlibraryFactoryImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EObject create(EClass eClass) {
-        switch (eClass.getClassifierID()) {
-            case ExtlibraryPackage.BOOK: return createBook();
-            case ExtlibraryPackage.LIBRARY: return createLibrary();
-            case ExtlibraryPackage.WRITER: return createWriter();
-            case ExtlibraryPackage.BOOK_ON_TAPE: return createBookOnTape();
-            case ExtlibraryPackage.VIDEO_CASSETTE: return createVideoCassette();
-            case ExtlibraryPackage.BORROWER: return createBorrower();
-            case ExtlibraryPackage.PERSON: return createPerson();
-            case ExtlibraryPackage.EMPLOYEE: return createEmployee();
-            default:
-                throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object createFromString(EDataType eDataType, String initialValue) {
-        switch (eDataType.getClassifierID()) {
-            case ExtlibraryPackage.BOOK_CATEGORY:
-                return createBookCategoryFromString(eDataType, initialValue);
-            default:
-                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String convertToString(EDataType eDataType, Object instanceValue) {
-        switch (eDataType.getClassifierID()) {
-            case ExtlibraryPackage.BOOK_CATEGORY:
-                return convertBookCategoryToString(eDataType, instanceValue);
-            default:
-                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Book createBook() {
-        BookImpl book = new BookImpl();
-        return book;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Library createLibrary() {
-        LibraryImpl library = new LibraryImpl();
-        return library;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Writer createWriter() {
-        WriterImpl writer = new WriterImpl();
-        return writer;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public BookOnTape createBookOnTape() {
-        BookOnTapeImpl bookOnTape = new BookOnTapeImpl();
-        return bookOnTape;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public VideoCassette createVideoCassette() {
-        VideoCassetteImpl videoCassette = new VideoCassetteImpl();
-        return videoCassette;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Borrower createBorrower() {
-        BorrowerImpl borrower = new BorrowerImpl();
-        return borrower;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Person createPerson() {
-        PersonImpl person = new PersonImpl();
-        return person;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Employee createEmployee() {
-        EmployeeImpl employee = new EmployeeImpl();
-        return employee;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public BookCategory createBookCategoryFromString(EDataType eDataType, String initialValue) {
-        BookCategory result = BookCategory.get(initialValue);
-        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertBookCategoryToString(EDataType eDataType, Object instanceValue) {
-        return instanceValue == null ? null : instanceValue.toString();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ExtlibraryPackage getExtlibraryPackage() {
-        return (ExtlibraryPackage)getEPackage();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @deprecated
-     * @generated
-     */
-    @Deprecated
-    public static ExtlibraryPackage getPackage() {
-        return ExtlibraryPackage.eINSTANCE;
-    }
-
-} //ExtlibraryFactoryImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryPackageImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryPackageImpl.java
deleted file mode 100644
index de98118..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ExtlibraryPackageImpl.java
+++ /dev/null
@@ -1,866 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Book;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.BookCategory;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Employee;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryFactory;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Item;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Library;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Person;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Writer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExtlibraryPackageImpl extends EPackageImpl implements ExtlibraryPackage {
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass bookEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass libraryEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass writerEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass itemEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass lendableEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass circulatingItemEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass periodicalEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass audioVisualItemEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass bookOnTapeEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass videoCassetteEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass borrowerEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass personEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass employeeEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass addressableEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EEnum bookCategoryEEnum = null;
-
-    /**
-     * Creates an instance of the model <b>Package</b>, registered with
-     * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-     * package URI value.
-     * <p>Note: the correct way to create the package is via the static
-     * factory method {@link #init init()}, which also performs
-     * initialization of the package, or returns the registered package,
-     * if one already exists.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.emf.ecore.EPackage.Registry
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage#eNS_URI
-     * @see #init()
-     * @generated
-     */
-    private ExtlibraryPackageImpl() {
-        super(eNS_URI, ExtlibraryFactory.eINSTANCE);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private static boolean isInited = false;
-
-    /**
-     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-     *
-     * <p>This method is used to initialize {@link ExtlibraryPackage#eINSTANCE} when that field is accessed.
-     * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #eNS_URI
-     * @see #createPackageContents()
-     * @see #initializePackageContents()
-     * @generated
-     */
-    public static ExtlibraryPackage init() {
-        if (isInited) return (ExtlibraryPackage)EPackage.Registry.INSTANCE.getEPackage(ExtlibraryPackage.eNS_URI);
-
-        // Obtain or create and register package
-        Object registeredExtlibraryPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
-        ExtlibraryPackageImpl theExtlibraryPackage = registeredExtlibraryPackage instanceof ExtlibraryPackageImpl ? (ExtlibraryPackageImpl)registeredExtlibraryPackage : new ExtlibraryPackageImpl();
-
-        isInited = true;
-
-        // Create package meta-data objects
-        theExtlibraryPackage.createPackageContents();
-
-        // Initialize created meta-data
-        theExtlibraryPackage.initializePackageContents();
-
-        // Mark meta-data to indicate it can't be changed
-        theExtlibraryPackage.freeze();
-
-        // Update the registry and return the package
-        EPackage.Registry.INSTANCE.put(ExtlibraryPackage.eNS_URI, theExtlibraryPackage);
-        return theExtlibraryPackage;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getBook() {
-        return bookEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getBook_Title() {
-        return (EAttribute)bookEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getBook_Pages() {
-        return (EAttribute)bookEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getBook_Category() {
-        return (EAttribute)bookEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getBook_Author() {
-        return (EReference)bookEClass.getEStructuralFeatures().get(3);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getLibrary() {
-        return libraryEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getLibrary_Name() {
-        return (EAttribute)libraryEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Writers() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Employees() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Borrowers() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(3);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Stock() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(4);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Books() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(5);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_Branches() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(6);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLibrary_ParentBranch() {
-        return (EReference)libraryEClass.getEStructuralFeatures().get(7);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getLibrary_People() {
-        return (EAttribute)libraryEClass.getEStructuralFeatures().get(8);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getWriter() {
-        return writerEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getWriter_Name() {
-        return (EAttribute)writerEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getWriter_Books() {
-        return (EReference)writerEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getItem() {
-        return itemEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getItem_PublicationDate() {
-        return (EAttribute)itemEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getLendable() {
-        return lendableEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getLendable_Copies() {
-        return (EAttribute)lendableEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getLendable_Borrowers() {
-        return (EReference)lendableEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getCirculatingItem() {
-        return circulatingItemEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getPeriodical() {
-        return periodicalEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getPeriodical_Title() {
-        return (EAttribute)periodicalEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getPeriodical_IssuesPerYear() {
-        return (EAttribute)periodicalEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getAudioVisualItem() {
-        return audioVisualItemEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getAudioVisualItem_Title() {
-        return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getAudioVisualItem_MinutesLength() {
-        return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getAudioVisualItem_Damaged() {
-        return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getBookOnTape() {
-        return bookOnTapeEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getBookOnTape_Reader() {
-        return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getBookOnTape_Author() {
-        return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getVideoCassette() {
-        return videoCassetteEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getVideoCassette_Cast() {
-        return (EReference)videoCassetteEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getBorrower() {
-        return borrowerEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getBorrower_Borrowed() {
-        return (EReference)borrowerEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getPerson() {
-        return personEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getPerson_FirstName() {
-        return (EAttribute)personEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getPerson_LastName() {
-        return (EAttribute)personEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getEmployee() {
-        return employeeEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getEmployee_Manager() {
-        return (EReference)employeeEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getAddressable() {
-        return addressableEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getAddressable_Address() {
-        return (EAttribute)addressableEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EEnum getBookCategory() {
-        return bookCategoryEEnum;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ExtlibraryFactory getExtlibraryFactory() {
-        return (ExtlibraryFactory)getEFactoryInstance();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private boolean isCreated = false;
-
-    /**
-     * Creates the meta-model objects for the package.  This method is
-     * guarded to have no affect on any invocation but its first.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void createPackageContents() {
-        if (isCreated) return;
-        isCreated = true;
-
-        // Create classes and their features
-        bookEClass = createEClass(BOOK);
-        createEAttribute(bookEClass, BOOK__TITLE);
-        createEAttribute(bookEClass, BOOK__PAGES);
-        createEAttribute(bookEClass, BOOK__CATEGORY);
-        createEReference(bookEClass, BOOK__AUTHOR);
-
-        libraryEClass = createEClass(LIBRARY);
-        createEAttribute(libraryEClass, LIBRARY__NAME);
-        createEReference(libraryEClass, LIBRARY__WRITERS);
-        createEReference(libraryEClass, LIBRARY__EMPLOYEES);
-        createEReference(libraryEClass, LIBRARY__BORROWERS);
-        createEReference(libraryEClass, LIBRARY__STOCK);
-        createEReference(libraryEClass, LIBRARY__BOOKS);
-        createEReference(libraryEClass, LIBRARY__BRANCHES);
-        createEReference(libraryEClass, LIBRARY__PARENT_BRANCH);
-        createEAttribute(libraryEClass, LIBRARY__PEOPLE);
-
-        writerEClass = createEClass(WRITER);
-        createEAttribute(writerEClass, WRITER__NAME);
-        createEReference(writerEClass, WRITER__BOOKS);
-
-        itemEClass = createEClass(ITEM);
-        createEAttribute(itemEClass, ITEM__PUBLICATION_DATE);
-
-        lendableEClass = createEClass(LENDABLE);
-        createEAttribute(lendableEClass, LENDABLE__COPIES);
-        createEReference(lendableEClass, LENDABLE__BORROWERS);
-
-        circulatingItemEClass = createEClass(CIRCULATING_ITEM);
-
-        periodicalEClass = createEClass(PERIODICAL);
-        createEAttribute(periodicalEClass, PERIODICAL__TITLE);
-        createEAttribute(periodicalEClass, PERIODICAL__ISSUES_PER_YEAR);
-
-        audioVisualItemEClass = createEClass(AUDIO_VISUAL_ITEM);
-        createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__TITLE);
-        createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__MINUTES_LENGTH);
-        createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__DAMAGED);
-
-        bookOnTapeEClass = createEClass(BOOK_ON_TAPE);
-        createEReference(bookOnTapeEClass, BOOK_ON_TAPE__READER);
-        createEReference(bookOnTapeEClass, BOOK_ON_TAPE__AUTHOR);
-
-        videoCassetteEClass = createEClass(VIDEO_CASSETTE);
-        createEReference(videoCassetteEClass, VIDEO_CASSETTE__CAST);
-
-        borrowerEClass = createEClass(BORROWER);
-        createEReference(borrowerEClass, BORROWER__BORROWED);
-
-        personEClass = createEClass(PERSON);
-        createEAttribute(personEClass, PERSON__FIRST_NAME);
-        createEAttribute(personEClass, PERSON__LAST_NAME);
-
-        employeeEClass = createEClass(EMPLOYEE);
-        createEReference(employeeEClass, EMPLOYEE__MANAGER);
-
-        addressableEClass = createEClass(ADDRESSABLE);
-        createEAttribute(addressableEClass, ADDRESSABLE__ADDRESS);
-
-        // Create enums
-        bookCategoryEEnum = createEEnum(BOOK_CATEGORY);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private boolean isInitialized = false;
-
-    /**
-     * Complete the initialization of the package and its meta-model.  This
-     * method is guarded to have no affect on any invocation but its first.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void initializePackageContents() {
-        if (isInitialized) return;
-        isInitialized = true;
-
-        // Initialize package
-        setName(eNAME);
-        setNsPrefix(eNS_PREFIX);
-        setNsURI(eNS_URI);
-
-        // Create type parameters
-
-        // Set bounds for type parameters
-
-        // Add supertypes to classes
-        bookEClass.getESuperTypes().add(this.getCirculatingItem());
-        libraryEClass.getESuperTypes().add(this.getAddressable());
-        writerEClass.getESuperTypes().add(this.getPerson());
-        circulatingItemEClass.getESuperTypes().add(this.getItem());
-        circulatingItemEClass.getESuperTypes().add(this.getLendable());
-        periodicalEClass.getESuperTypes().add(this.getItem());
-        audioVisualItemEClass.getESuperTypes().add(this.getCirculatingItem());
-        bookOnTapeEClass.getESuperTypes().add(this.getAudioVisualItem());
-        videoCassetteEClass.getESuperTypes().add(this.getAudioVisualItem());
-        borrowerEClass.getESuperTypes().add(this.getPerson());
-        personEClass.getESuperTypes().add(this.getAddressable());
-        employeeEClass.getESuperTypes().add(this.getPerson());
-
-        // Initialize classes, features, and operations; add parameters
-        initEClass(bookEClass, Book.class, "Book", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getBook_Title(), ecorePackage.getEString(), "title", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getBook_Pages(), ecorePackage.getEInt(), "pages", "100", 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
-        initEAttribute(getBook_Category(), this.getBookCategory(), "category", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getBook_Author(), this.getWriter(), this.getWriter_Books(), "author", null, 1, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(libraryEClass, Library.class, "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getLibrary_Name(), ecorePackage.getEString(), "name", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Writers(), this.getWriter(), null, "writers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Employees(), this.getEmployee(), null, "employees", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Borrowers(), this.getBorrower(), null, "borrowers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Stock(), this.getItem(), null, "stock", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Books(), this.getBook(), null, "books", null, 0, -1, Library.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_Branches(), this.getLibrary(), this.getLibrary_ParentBranch(), "branches", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLibrary_ParentBranch(), this.getLibrary(), this.getLibrary_Branches(), "parentBranch", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getLibrary_People(), ecorePackage.getEFeatureMapEntry(), "people", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(writerEClass, Writer.class, "Writer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getWriter_Name(), ecorePackage.getEString(), "name", null, 0, 1, Writer.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getWriter_Books(), this.getBook(), this.getBook_Author(), "books", null, 0, -1, Writer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(itemEClass, Item.class, "Item", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getItem_PublicationDate(), ecorePackage.getEDate(), "publicationDate", null, 0, 1, Item.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(lendableEClass, Lendable.class, "Lendable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getLendable_Copies(), ecorePackage.getEInt(), "copies", null, 1, 1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getLendable_Borrowers(), this.getBorrower(), this.getBorrower_Borrowed(), "borrowers", null, 0, -1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(circulatingItemEClass, CirculatingItem.class, "CirculatingItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-
-        initEClass(periodicalEClass, Periodical.class, "Periodical", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getPeriodical_Title(), ecorePackage.getEString(), "title", null, 0, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getPeriodical_IssuesPerYear(), ecorePackage.getEInt(), "issuesPerYear", null, 1, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(audioVisualItemEClass, AudioVisualItem.class, "AudioVisualItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getAudioVisualItem_Title(), ecorePackage.getEString(), "title", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getAudioVisualItem_MinutesLength(), ecorePackage.getEInt(), "minutesLength", null, 1, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getAudioVisualItem_Damaged(), ecorePackage.getEBoolean(), "damaged", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(bookOnTapeEClass, BookOnTape.class, "BookOnTape", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEReference(getBookOnTape_Reader(), this.getPerson(), null, "reader", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEReference(getBookOnTape_Author(), this.getWriter(), null, "author", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(videoCassetteEClass, VideoCassette.class, "VideoCassette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEReference(getVideoCassette_Cast(), this.getPerson(), null, "cast", null, 0, -1, VideoCassette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(borrowerEClass, Borrower.class, "Borrower", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEReference(getBorrower_Borrowed(), this.getLendable(), this.getLendable_Borrowers(), "borrowed", null, 0, -1, Borrower.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getPerson_FirstName(), ecorePackage.getEString(), "firstName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-        initEAttribute(getPerson_LastName(), ecorePackage.getEString(), "lastName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(employeeEClass, Employee.class, "Employee", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEReference(getEmployee_Manager(), this.getEmployee(), null, "manager", null, 0, 1, Employee.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        initEClass(addressableEClass, Addressable.class, "Addressable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getAddressable_Address(), ecorePackage.getEString(), "address", null, 0, 1, Addressable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-        // Initialize enums and add enum literals
-        initEEnum(bookCategoryEEnum, BookCategory.class, "BookCategory"); //$NON-NLS-1$
-        addEEnumLiteral(bookCategoryEEnum, BookCategory.MYSTERY);
-        addEEnumLiteral(bookCategoryEEnum, BookCategory.SCIENCE_FICTION);
-        addEEnumLiteral(bookCategoryEEnum, BookCategory.BIOGRAPHY);
-
-        // Create resource
-        createResource(eNS_URI);
-
-        // Create annotations
-        // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
-        createExtendedMetaDataAnnotations();
-    }
-
-    /**
-     * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected void createExtendedMetaDataAnnotations() {
-        String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; //$NON-NLS-1$
-        addAnnotation
-          (getLibrary_Writers(),
-           source,
-           new String[] {
-               "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
-           });
-        addAnnotation
-          (getLibrary_Employees(),
-           source,
-           new String[] {
-               "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
-           });
-        addAnnotation
-          (getLibrary_Borrowers(),
-           source,
-           new String[] {
-               "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
-           });
-        addAnnotation
-          (getLibrary_People(),
-           source,
-           new String[] {
-               "kind", "group" //$NON-NLS-1$ //$NON-NLS-2$
-           });
-    }
-
-} //ExtlibraryPackageImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ItemImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ItemImpl.java
deleted file mode 100644
index 40d7fcc..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/ItemImpl.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Date;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Item;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Item</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.ItemImpl#getPublicationDate <em>Publication Date</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class ItemImpl extends MinimalEObjectImpl.Container implements Item {
-    /**
-     * The default value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getPublicationDate()
-     * @generated
-     * @ordered
-     */
-    protected static final Date PUBLICATION_DATE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getPublicationDate()
-     * @generated
-     * @ordered
-     */
-    protected Date publicationDate = PUBLICATION_DATE_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ItemImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.ITEM;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Date getPublicationDate() {
-        return publicationDate;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setPublicationDate(Date newPublicationDate) {
-        Date oldPublicationDate = publicationDate;
-        publicationDate = newPublicationDate;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.ITEM__PUBLICATION_DATE, oldPublicationDate, publicationDate));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.ITEM__PUBLICATION_DATE:
-                return getPublicationDate();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.ITEM__PUBLICATION_DATE:
-                setPublicationDate((Date)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.ITEM__PUBLICATION_DATE:
-                setPublicationDate(PUBLICATION_DATE_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.ITEM__PUBLICATION_DATE:
-                return PUBLICATION_DATE_EDEFAULT == null ? publicationDate != null : !PUBLICATION_DATE_EDEFAULT.equals(publicationDate);
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (publicationDate: "); //$NON-NLS-1$
-        result.append(publicationDate);
-        result.append(')');
-        return result.toString();
-    }
-
-} //ItemImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/LibraryImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/LibraryImpl.java
deleted file mode 100644
index c522db6..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/LibraryImpl.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Book;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Employee;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Item;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Library;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Writer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Library</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getAddress <em>Address</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getWriters <em>Writers</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getEmployees <em>Employees</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getBorrowers <em>Borrowers</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getStock <em>Stock</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getBooks <em>Books</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getBranches <em>Branches</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getParentBranch <em>Parent Branch</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.LibraryImpl#getPeople <em>People</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class LibraryImpl extends MinimalEObjectImpl.Container implements Library {
-    /**
-     * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAddress()
-     * @generated
-     * @ordered
-     */
-    protected static final String ADDRESS_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAddress()
-     * @generated
-     * @ordered
-     */
-    protected String address = ADDRESS_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected static final String NAME_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected String name = NAME_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getStock() <em>Stock</em>}' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getStock()
-     * @generated
-     * @ordered
-     */
-    protected EList<Item> stock;
-
-    /**
-     * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getBooks()
-     * @generated
-     * @ordered
-     */
-    protected EList<Book> books;
-
-    /**
-     * The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getBranches()
-     * @generated
-     * @ordered
-     */
-    protected EList<Library> branches;
-
-    /**
-     * The cached value of the '{@link #getPeople() <em>People</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getPeople()
-     * @generated
-     * @ordered
-     */
-    protected FeatureMap people;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected LibraryImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.LIBRARY;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getAddress() {
-        return address;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setAddress(String newAddress) {
-        String oldAddress = address;
-        address = newAddress;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.LIBRARY__ADDRESS, oldAddress, address));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setName(String newName) {
-        String oldName = name;
-        name = newName;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.LIBRARY__NAME, oldName, name));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Writer> getWriters() {
-        return getPeople().list(ExtlibraryPackage.Literals.LIBRARY__WRITERS);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Employee> getEmployees() {
-        return getPeople().list(ExtlibraryPackage.Literals.LIBRARY__EMPLOYEES);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Borrower> getBorrowers() {
-        return getPeople().list(ExtlibraryPackage.Literals.LIBRARY__BORROWERS);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Item> getStock() {
-        if (stock == null) {
-            stock = new EObjectContainmentEList<Item>(Item.class, this, ExtlibraryPackage.LIBRARY__STOCK);
-        }
-        return stock;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Book> getBooks() {
-        if (books == null) {
-            books = new EObjectResolvingEList<Book>(Book.class, this, ExtlibraryPackage.LIBRARY__BOOKS);
-        }
-        return books;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Library> getBranches() {
-        if (branches == null) {
-            branches = new EObjectContainmentWithInverseEList<Library>(Library.class, this, ExtlibraryPackage.LIBRARY__BRANCHES, ExtlibraryPackage.LIBRARY__PARENT_BRANCH);
-        }
-        return branches;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Library getParentBranch() {
-        if (eContainerFeatureID() != ExtlibraryPackage.LIBRARY__PARENT_BRANCH) return null;
-        return (Library)eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetParentBranch(Library newParentBranch, NotificationChain msgs) {
-        msgs = eBasicSetContainer((InternalEObject)newParentBranch, ExtlibraryPackage.LIBRARY__PARENT_BRANCH, msgs);
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setParentBranch(Library newParentBranch) {
-        if (newParentBranch != eInternalContainer() || (eContainerFeatureID() != ExtlibraryPackage.LIBRARY__PARENT_BRANCH && newParentBranch != null)) {
-            if (EcoreUtil.isAncestor(this, newParentBranch))
-                throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
-            NotificationChain msgs = null;
-            if (eInternalContainer() != null)
-                msgs = eBasicRemoveFromContainer(msgs);
-            if (newParentBranch != null)
-                msgs = ((InternalEObject)newParentBranch).eInverseAdd(this, ExtlibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
-            msgs = basicSetParentBranch(newParentBranch, msgs);
-            if (msgs != null) msgs.dispatch();
-        }
-        else if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.LIBRARY__PARENT_BRANCH, newParentBranch, newParentBranch));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public FeatureMap getPeople() {
-        if (people == null) {
-            people = new BasicFeatureMap(this, ExtlibraryPackage.LIBRARY__PEOPLE);
-        }
-        return people;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                if (eInternalContainer() != null)
-                    msgs = eBasicRemoveFromContainer(msgs);
-                return basicSetParentBranch((Library)otherEnd, msgs);
-        }
-        return super.eInverseAdd(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__WRITERS:
-                return ((InternalEList<?>)getWriters()).basicRemove(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__EMPLOYEES:
-                return ((InternalEList<?>)getEmployees()).basicRemove(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__BORROWERS:
-                return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__STOCK:
-                return ((InternalEList<?>)getStock()).basicRemove(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs);
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                return basicSetParentBranch(null, msgs);
-            case ExtlibraryPackage.LIBRARY__PEOPLE:
-                return ((InternalEList<?>)getPeople()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-        switch (eContainerFeatureID()) {
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                return eInternalContainer().eInverseRemove(this, ExtlibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
-        }
-        return super.eBasicRemoveFromContainerFeature(msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__ADDRESS:
-                return getAddress();
-            case ExtlibraryPackage.LIBRARY__NAME:
-                return getName();
-            case ExtlibraryPackage.LIBRARY__WRITERS:
-                return getWriters();
-            case ExtlibraryPackage.LIBRARY__EMPLOYEES:
-                return getEmployees();
-            case ExtlibraryPackage.LIBRARY__BORROWERS:
-                return getBorrowers();
-            case ExtlibraryPackage.LIBRARY__STOCK:
-                return getStock();
-            case ExtlibraryPackage.LIBRARY__BOOKS:
-                return getBooks();
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                return getBranches();
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                return getParentBranch();
-            case ExtlibraryPackage.LIBRARY__PEOPLE:
-                if (coreType) return getPeople();
-                return ((FeatureMap.Internal)getPeople()).getWrapper();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__ADDRESS:
-                setAddress((String)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__NAME:
-                setName((String)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__WRITERS:
-                getWriters().clear();
-                getWriters().addAll((Collection<? extends Writer>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__EMPLOYEES:
-                getEmployees().clear();
-                getEmployees().addAll((Collection<? extends Employee>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__BORROWERS:
-                getBorrowers().clear();
-                getBorrowers().addAll((Collection<? extends Borrower>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__STOCK:
-                getStock().clear();
-                getStock().addAll((Collection<? extends Item>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__BOOKS:
-                getBooks().clear();
-                getBooks().addAll((Collection<? extends Book>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                getBranches().clear();
-                getBranches().addAll((Collection<? extends Library>)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                setParentBranch((Library)newValue);
-                return;
-            case ExtlibraryPackage.LIBRARY__PEOPLE:
-                ((FeatureMap.Internal)getPeople()).set(newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__ADDRESS:
-                setAddress(ADDRESS_EDEFAULT);
-                return;
-            case ExtlibraryPackage.LIBRARY__NAME:
-                setName(NAME_EDEFAULT);
-                return;
-            case ExtlibraryPackage.LIBRARY__WRITERS:
-                getWriters().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__EMPLOYEES:
-                getEmployees().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__BORROWERS:
-                getBorrowers().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__STOCK:
-                getStock().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__BOOKS:
-                getBooks().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                getBranches().clear();
-                return;
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                setParentBranch((Library)null);
-                return;
-            case ExtlibraryPackage.LIBRARY__PEOPLE:
-                getPeople().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.LIBRARY__ADDRESS:
-                return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
-            case ExtlibraryPackage.LIBRARY__NAME:
-                return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-            case ExtlibraryPackage.LIBRARY__WRITERS:
-                return !getWriters().isEmpty();
-            case ExtlibraryPackage.LIBRARY__EMPLOYEES:
-                return !getEmployees().isEmpty();
-            case ExtlibraryPackage.LIBRARY__BORROWERS:
-                return !getBorrowers().isEmpty();
-            case ExtlibraryPackage.LIBRARY__STOCK:
-                return stock != null && !stock.isEmpty();
-            case ExtlibraryPackage.LIBRARY__BOOKS:
-                return books != null && !books.isEmpty();
-            case ExtlibraryPackage.LIBRARY__BRANCHES:
-                return branches != null && !branches.isEmpty();
-            case ExtlibraryPackage.LIBRARY__PARENT_BRANCH:
-                return getParentBranch() != null;
-            case ExtlibraryPackage.LIBRARY__PEOPLE:
-                return people != null && !people.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (address: "); //$NON-NLS-1$
-        result.append(address);
-        result.append(", name: "); //$NON-NLS-1$
-        result.append(name);
-        result.append(", people: "); //$NON-NLS-1$
-        result.append(people);
-        result.append(')');
-        return result.toString();
-    }
-
-} //LibraryImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PeriodicalImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PeriodicalImpl.java
deleted file mode 100644
index 2e47920..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PeriodicalImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Periodical</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl#getTitle <em>Title</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PeriodicalImpl#getIssuesPerYear <em>Issues Per Year</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class PeriodicalImpl extends ItemImpl implements Periodical {
-    /**
-     * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected static final String TITLE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getTitle()
-     * @generated
-     * @ordered
-     */
-    protected String title = TITLE_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getIssuesPerYear()
-     * @generated
-     * @ordered
-     */
-    protected static final int ISSUES_PER_YEAR_EDEFAULT = 0;
-
-    /**
-     * The cached value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getIssuesPerYear()
-     * @generated
-     * @ordered
-     */
-    protected int issuesPerYear = ISSUES_PER_YEAR_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected PeriodicalImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.PERIODICAL;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setTitle(String newTitle) {
-        String oldTitle = title;
-        title = newTitle;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.PERIODICAL__TITLE, oldTitle, title));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getIssuesPerYear() {
-        return issuesPerYear;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setIssuesPerYear(int newIssuesPerYear) {
-        int oldIssuesPerYear = issuesPerYear;
-        issuesPerYear = newIssuesPerYear;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.PERIODICAL__ISSUES_PER_YEAR, oldIssuesPerYear, issuesPerYear));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERIODICAL__TITLE:
-                return getTitle();
-            case ExtlibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
-                return getIssuesPerYear();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERIODICAL__TITLE:
-                setTitle((String)newValue);
-                return;
-            case ExtlibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
-                setIssuesPerYear((Integer)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERIODICAL__TITLE:
-                setTitle(TITLE_EDEFAULT);
-                return;
-            case ExtlibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
-                setIssuesPerYear(ISSUES_PER_YEAR_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERIODICAL__TITLE:
-                return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
-            case ExtlibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
-                return issuesPerYear != ISSUES_PER_YEAR_EDEFAULT;
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (title: "); //$NON-NLS-1$
-        result.append(title);
-        result.append(", issuesPerYear: "); //$NON-NLS-1$
-        result.append(issuesPerYear);
-        result.append(')');
-        return result.toString();
-    }
-
-} //PeriodicalImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PersonImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PersonImpl.java
deleted file mode 100644
index fb15c8b..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/PersonImpl.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Person;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Person</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl#getAddress <em>Address</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl#getFirstName <em>First Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.PersonImpl#getLastName <em>Last Name</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PersonImpl extends MinimalEObjectImpl.Container implements Person {
-    /**
-     * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAddress()
-     * @generated
-     * @ordered
-     */
-    protected static final String ADDRESS_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getAddress()
-     * @generated
-     * @ordered
-     */
-    protected String address = ADDRESS_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getFirstName()
-     * @generated
-     * @ordered
-     */
-    protected static final String FIRST_NAME_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getFirstName()
-     * @generated
-     * @ordered
-     */
-    protected String firstName = FIRST_NAME_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getLastName()
-     * @generated
-     * @ordered
-     */
-    protected static final String LAST_NAME_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getLastName()
-     * @generated
-     * @ordered
-     */
-    protected String lastName = LAST_NAME_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected PersonImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.PERSON;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getAddress() {
-        return address;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setAddress(String newAddress) {
-        String oldAddress = address;
-        address = newAddress;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.PERSON__ADDRESS, oldAddress, address));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getFirstName() {
-        return firstName;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setFirstName(String newFirstName) {
-        String oldFirstName = firstName;
-        firstName = newFirstName;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.PERSON__FIRST_NAME, oldFirstName, firstName));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getLastName() {
-        return lastName;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setLastName(String newLastName) {
-        String oldLastName = lastName;
-        lastName = newLastName;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, ExtlibraryPackage.PERSON__LAST_NAME, oldLastName, lastName));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERSON__ADDRESS:
-                return getAddress();
-            case ExtlibraryPackage.PERSON__FIRST_NAME:
-                return getFirstName();
-            case ExtlibraryPackage.PERSON__LAST_NAME:
-                return getLastName();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERSON__ADDRESS:
-                setAddress((String)newValue);
-                return;
-            case ExtlibraryPackage.PERSON__FIRST_NAME:
-                setFirstName((String)newValue);
-                return;
-            case ExtlibraryPackage.PERSON__LAST_NAME:
-                setLastName((String)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERSON__ADDRESS:
-                setAddress(ADDRESS_EDEFAULT);
-                return;
-            case ExtlibraryPackage.PERSON__FIRST_NAME:
-                setFirstName(FIRST_NAME_EDEFAULT);
-                return;
-            case ExtlibraryPackage.PERSON__LAST_NAME:
-                setLastName(LAST_NAME_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.PERSON__ADDRESS:
-                return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
-            case ExtlibraryPackage.PERSON__FIRST_NAME:
-                return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName);
-            case ExtlibraryPackage.PERSON__LAST_NAME:
-                return LAST_NAME_EDEFAULT == null ? lastName != null : !LAST_NAME_EDEFAULT.equals(lastName);
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) return super.toString();
-
-        StringBuilder result = new StringBuilder(super.toString());
-        result.append(" (address: "); //$NON-NLS-1$
-        result.append(address);
-        result.append(", firstName: "); //$NON-NLS-1$
-        result.append(firstName);
-        result.append(", lastName: "); //$NON-NLS-1$
-        result.append(lastName);
-        result.append(')');
-        return result.toString();
-    }
-
-} //PersonImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/VideoCassetteImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/VideoCassetteImpl.java
deleted file mode 100644
index 7cf14bf..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/VideoCassetteImpl.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Person;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Video Cassette</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.VideoCassetteImpl#getCast <em>Cast</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class VideoCassetteImpl extends AudioVisualItemImpl implements VideoCassette {
-    /**
-     * The cached value of the '{@link #getCast() <em>Cast</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCast()
-     * @generated
-     * @ordered
-     */
-    protected EList<Person> cast;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected VideoCassetteImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.VIDEO_CASSETTE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Person> getCast() {
-        if (cast == null) {
-            cast = new EObjectResolvingEList<Person>(Person.class, this, ExtlibraryPackage.VIDEO_CASSETTE__CAST);
-        }
-        return cast;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.VIDEO_CASSETTE__CAST:
-                return getCast();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.VIDEO_CASSETTE__CAST:
-                getCast().clear();
-                getCast().addAll((Collection<? extends Person>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.VIDEO_CASSETTE__CAST:
-                getCast().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.VIDEO_CASSETTE__CAST:
-                return cast != null && !cast.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //VideoCassetteImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/WriterImpl.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/WriterImpl.java
deleted file mode 100644
index 74b6bb5..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/impl/WriterImpl.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Book;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.Writer;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Writer</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.sirius.tests.services.graphql.extlibrary.impl.WriterImpl#getBooks <em>Books</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WriterImpl extends PersonImpl implements Writer {
-    /**
-     * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected static final String NAME_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getBooks()
-     * @generated
-     * @ordered
-     */
-    protected EList<Book> books;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected WriterImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return ExtlibraryPackage.Literals.WRITER;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getName() {
-        // TODO: implement this method to return the 'Name' attribute
-        // Ensure that you remove @generated or mark it @generated NOT
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setName(String newName) {
-        // TODO: implement this method to set the 'Name' attribute
-        // Ensure that you remove @generated or mark it @generated NOT
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Book> getBooks() {
-        if (books == null) {
-            books = new EObjectWithInverseResolvingEList<Book>(Book.class, this, ExtlibraryPackage.WRITER__BOOKS, ExtlibraryPackage.BOOK__AUTHOR);
-        }
-        return books;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__BOOKS:
-                return ((InternalEList<InternalEObject>)(InternalEList<?>)getBooks()).basicAdd(otherEnd, msgs);
-        }
-        return super.eInverseAdd(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__BOOKS:
-                return ((InternalEList<?>)getBooks()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__NAME:
-                return getName();
-            case ExtlibraryPackage.WRITER__BOOKS:
-                return getBooks();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__NAME:
-                setName((String)newValue);
-                return;
-            case ExtlibraryPackage.WRITER__BOOKS:
-                getBooks().clear();
-                getBooks().addAll((Collection<? extends Book>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__NAME:
-                setName(NAME_EDEFAULT);
-                return;
-            case ExtlibraryPackage.WRITER__BOOKS:
-                getBooks().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case ExtlibraryPackage.WRITER__NAME:
-                return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
-            case ExtlibraryPackage.WRITER__BOOKS:
-                return books != null && !books.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //WriterImpl
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibraryAdapterFactory.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibraryAdapterFactory.java
deleted file mode 100644
index d3417c4..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibraryAdapterFactory.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage
- * @generated
- */
-public class ExtlibraryAdapterFactory extends AdapterFactoryImpl {
-    /**
-     * The cached model package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected static ExtlibraryPackage modelPackage;
-
-    /**
-     * Creates an instance of the adapter factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ExtlibraryAdapterFactory() {
-        if (modelPackage == null) {
-            modelPackage = ExtlibraryPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Returns whether this factory is applicable for the type of the object.
-     * <!-- begin-user-doc -->
-     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-     * <!-- end-user-doc -->
-     * @return whether this factory is applicable for the type of the object.
-     * @generated
-     */
-    @Override
-    public boolean isFactoryForType(Object object) {
-        if (object == modelPackage) {
-            return true;
-        }
-        if (object instanceof EObject) {
-            return ((EObject)object).eClass().getEPackage() == modelPackage;
-        }
-        return false;
-    }
-
-    /**
-     * The switch that delegates to the <code>createXXX</code> methods.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ExtlibrarySwitch<Adapter> modelSwitch =
-        new ExtlibrarySwitch<Adapter>() {
-            @Override
-            public Adapter caseBook(Book object) {
-                return createBookAdapter();
-            }
-            @Override
-            public Adapter caseLibrary(Library object) {
-                return createLibraryAdapter();
-            }
-            @Override
-            public Adapter caseWriter(Writer object) {
-                return createWriterAdapter();
-            }
-            @Override
-            public Adapter caseItem(Item object) {
-                return createItemAdapter();
-            }
-            @Override
-            public Adapter caseLendable(Lendable object) {
-                return createLendableAdapter();
-            }
-            @Override
-            public Adapter caseCirculatingItem(CirculatingItem object) {
-                return createCirculatingItemAdapter();
-            }
-            @Override
-            public Adapter casePeriodical(Periodical object) {
-                return createPeriodicalAdapter();
-            }
-            @Override
-            public Adapter caseAudioVisualItem(AudioVisualItem object) {
-                return createAudioVisualItemAdapter();
-            }
-            @Override
-            public Adapter caseBookOnTape(BookOnTape object) {
-                return createBookOnTapeAdapter();
-            }
-            @Override
-            public Adapter caseVideoCassette(VideoCassette object) {
-                return createVideoCassetteAdapter();
-            }
-            @Override
-            public Adapter caseBorrower(Borrower object) {
-                return createBorrowerAdapter();
-            }
-            @Override
-            public Adapter casePerson(Person object) {
-                return createPersonAdapter();
-            }
-            @Override
-            public Adapter caseEmployee(Employee object) {
-                return createEmployeeAdapter();
-            }
-            @Override
-            public Adapter caseAddressable(Addressable object) {
-                return createAddressableAdapter();
-            }
-            @Override
-            public Adapter defaultCase(EObject object) {
-                return createEObjectAdapter();
-            }
-        };
-
-    /**
-     * Creates an adapter for the <code>target</code>.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param target the object to adapt.
-     * @return the adapter for the <code>target</code>.
-     * @generated
-     */
-    @Override
-    public Adapter createAdapter(Notifier target) {
-        return modelSwitch.doSwitch((EObject)target);
-    }
-
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Book <em>Book</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Book
-     * @generated
-     */
-    public Adapter createBookAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Library <em>Library</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Library
-     * @generated
-     */
-    public Adapter createLibraryAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Writer <em>Writer</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Writer
-     * @generated
-     */
-    public Adapter createWriterAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Item <em>Item</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Item
-     * @generated
-     */
-    public Adapter createItemAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable <em>Lendable</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Lendable
-     * @generated
-     */
-    public Adapter createLendableAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem <em>Circulating Item</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.CirculatingItem
-     * @generated
-     */
-    public Adapter createCirculatingItemAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical <em>Periodical</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Periodical
-     * @generated
-     */
-    public Adapter createPeriodicalAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem <em>Audio Visual Item</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.AudioVisualItem
-     * @generated
-     */
-    public Adapter createAudioVisualItemAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape <em>Book On Tape</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.BookOnTape
-     * @generated
-     */
-    public Adapter createBookOnTapeAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette <em>Video Cassette</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.VideoCassette
-     * @generated
-     */
-    public Adapter createVideoCassetteAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower <em>Borrower</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Borrower
-     * @generated
-     */
-    public Adapter createBorrowerAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Person <em>Person</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Person
-     * @generated
-     */
-    public Adapter createPersonAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Employee <em>Employee</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Employee
-     * @generated
-     */
-    public Adapter createEmployeeAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable <em>Addressable</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.eclipse.sirius.tests.services.graphql.extlibrary.Addressable
-     * @generated
-     */
-    public Adapter createAddressableAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for the default case.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @generated
-     */
-    public Adapter createEObjectAdapter() {
-        return null;
-    }
-
-} //ExtlibraryAdapterFactory
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibrarySwitch.java b/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibrarySwitch.java
deleted file mode 100644
index 23bc299..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src-gen/org/eclipse/sirius/tests/services/graphql/extlibrary/util/ExtlibrarySwitch.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/**
- *  Copyright (c) 2019 Obeo.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     Obeo - initial API and implementation
- */
-package org.eclipse.sirius.tests.services.graphql.extlibrary.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-import org.eclipse.sirius.tests.services.graphql.extlibrary.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage
- * @generated
- */
-public class ExtlibrarySwitch<T> extends Switch<T> {
-    /**
-     * The cached model package
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected static ExtlibraryPackage modelPackage;
-
-    /**
-     * Creates an instance of the switch.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ExtlibrarySwitch() {
-        if (modelPackage == null) {
-            modelPackage = ExtlibraryPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Checks whether this is a switch for the given package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param ePackage the package in question.
-     * @return whether this is a switch for the given package.
-     * @generated
-     */
-    @Override
-    protected boolean isSwitchFor(EPackage ePackage) {
-        return ePackage == modelPackage;
-    }
-
-    /**
-     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the first non-null result returned by a <code>caseXXX</code> call.
-     * @generated
-     */
-    @Override
-    protected T doSwitch(int classifierID, EObject theEObject) {
-        switch (classifierID) {
-            case ExtlibraryPackage.BOOK: {
-                Book book = (Book)theEObject;
-                T result = caseBook(book);
-                if (result == null) result = caseCirculatingItem(book);
-                if (result == null) result = caseItem(book);
-                if (result == null) result = caseLendable(book);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.LIBRARY: {
-                Library library = (Library)theEObject;
-                T result = caseLibrary(library);
-                if (result == null) result = caseAddressable(library);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.WRITER: {
-                Writer writer = (Writer)theEObject;
-                T result = caseWriter(writer);
-                if (result == null) result = casePerson(writer);
-                if (result == null) result = caseAddressable(writer);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.ITEM: {
-                Item item = (Item)theEObject;
-                T result = caseItem(item);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.LENDABLE: {
-                Lendable lendable = (Lendable)theEObject;
-                T result = caseLendable(lendable);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.CIRCULATING_ITEM: {
-                CirculatingItem circulatingItem = (CirculatingItem)theEObject;
-                T result = caseCirculatingItem(circulatingItem);
-                if (result == null) result = caseItem(circulatingItem);
-                if (result == null) result = caseLendable(circulatingItem);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.PERIODICAL: {
-                Periodical periodical = (Periodical)theEObject;
-                T result = casePeriodical(periodical);
-                if (result == null) result = caseItem(periodical);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.AUDIO_VISUAL_ITEM: {
-                AudioVisualItem audioVisualItem = (AudioVisualItem)theEObject;
-                T result = caseAudioVisualItem(audioVisualItem);
-                if (result == null) result = caseCirculatingItem(audioVisualItem);
-                if (result == null) result = caseItem(audioVisualItem);
-                if (result == null) result = caseLendable(audioVisualItem);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.BOOK_ON_TAPE: {
-                BookOnTape bookOnTape = (BookOnTape)theEObject;
-                T result = caseBookOnTape(bookOnTape);
-                if (result == null) result = caseAudioVisualItem(bookOnTape);
-                if (result == null) result = caseCirculatingItem(bookOnTape);
-                if (result == null) result = caseItem(bookOnTape);
-                if (result == null) result = caseLendable(bookOnTape);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.VIDEO_CASSETTE: {
-                VideoCassette videoCassette = (VideoCassette)theEObject;
-                T result = caseVideoCassette(videoCassette);
-                if (result == null) result = caseAudioVisualItem(videoCassette);
-                if (result == null) result = caseCirculatingItem(videoCassette);
-                if (result == null) result = caseItem(videoCassette);
-                if (result == null) result = caseLendable(videoCassette);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.BORROWER: {
-                Borrower borrower = (Borrower)theEObject;
-                T result = caseBorrower(borrower);
-                if (result == null) result = casePerson(borrower);
-                if (result == null) result = caseAddressable(borrower);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.PERSON: {
-                Person person = (Person)theEObject;
-                T result = casePerson(person);
-                if (result == null) result = caseAddressable(person);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.EMPLOYEE: {
-                Employee employee = (Employee)theEObject;
-                T result = caseEmployee(employee);
-                if (result == null) result = casePerson(employee);
-                if (result == null) result = caseAddressable(employee);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case ExtlibraryPackage.ADDRESSABLE: {
-                Addressable addressable = (Addressable)theEObject;
-                T result = caseAddressable(addressable);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            default: return defaultCase(theEObject);
-        }
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Book</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Book</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseBook(Book object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Library</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Library</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseLibrary(Library object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Writer</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Writer</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseWriter(Writer object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Item</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Item</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseItem(Item object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Lendable</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Lendable</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseLendable(Lendable object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseCirculatingItem(CirculatingItem object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Periodical</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Periodical</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T casePeriodical(Periodical object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseAudioVisualItem(AudioVisualItem object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseBookOnTape(BookOnTape object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseVideoCassette(VideoCassette object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Borrower</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Borrower</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseBorrower(Borrower object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Person</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Person</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T casePerson(Person object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Employee</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Employee</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseEmployee(Employee object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Addressable</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Addressable</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseAddressable(Addressable object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch, but this is the last case anyway.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-     * @generated
-     */
-    @Override
-    public T defaultCase(EObject object) {
-        return null;
-    }
-
-} //ExtlibrarySwitch
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/api/AllSiriusGraphQLTests.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/api/AllSiriusGraphQLTests.java
deleted file mode 100644
index 8928c71..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/api/AllSiriusGraphQLTests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.api;
-
-import org.eclipse.sirius.tests.services.graphql.internal.SiriusGraphQLEMFEPackagesTests;
-import org.eclipse.sirius.tests.services.graphql.internal.SiriusGraphQLProjectTests;
-import org.eclipse.sirius.tests.services.graphql.internal.SiriusGraphQLSchemaTests;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * The main tests suite of the GraphQL tests.
- * 
- * @author sbegaudeau
- */
-@RunWith(Suite.class)
-@SuiteClasses({ SiriusGraphQLSchemaTests.class, SiriusGraphQLProjectTests.class, SiriusGraphQLEMFEPackagesTests.class })
-public class AllSiriusGraphQLTests {
-    // Do nothing
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLEMFEPackagesTests.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLEMFEPackagesTests.java
deleted file mode 100644
index f6ca337..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLEMFEPackagesTests.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.common.api.ISiriusGraphQLTypeCustomizer;
-import org.eclipse.sirius.services.graphql.common.api.SiriusGraphQLFilterStatus;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.EMFGraphQLSchemaCustomizer;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.EObjectTypeProvider;
-import org.eclipse.sirius.services.graphql.emf.internal.schema.EPackageTypesProvider;
-import org.eclipse.sirius.tests.services.graphql.extlibrary.ExtlibraryPackage;
-import org.junit.Test;
-
-import graphql.schema.GraphQLObjectType;
-import graphql.schema.GraphQLSchema;
-import graphql.schema.GraphQLSchema.Builder;
-import graphql.schema.GraphQLType;
-
-/**
- * Tests of the EPackage GraphQL schema.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLEMFEPackagesTests {
-
-    /**
-     * The name of the EObject type.
-     */
-    private static final String EOBJECT = "EObject"; //$NON-NLS-1$
-
-    /**
-     * The name of the Library type.
-     */
-    private static final String LIBRARY = "Library"; //$NON-NLS-1$
-
-    /**
-     * The name of the Book type.
-     */
-    private static final String BOOK = "Book"; //$NON-NLS-1$
-
-    /**
-     * Test the default schema generated.
-     */
-    @Test
-    public void testDefaultSchema() {
-        List<EPackage> ePackages = new ArrayList<>();
-        ePackages.add(EcorePackage.eINSTANCE);
-
-        GraphQLObjectType queryType = GraphQLObjectType.newObject().name("Query").build(); //$NON-NLS-1$
-        Builder graphQLSchemaBuilder = GraphQLSchema.newSchema().query(queryType);
-        Function<GraphQLType, SiriusGraphQLFilterStatus> typeFilter = graphQLType -> SiriusGraphQLFilterStatus.KEEP;
-        ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer = new ISiriusGraphQLTypeCustomizer() {
-            // Do not customize anything
-        };
-        Builder customizedBuilder = new EMFGraphQLSchemaCustomizer().customize(graphQLSchemaBuilder, typeFilter, graphQLTypeCustomizer);
-
-        GraphQLSchema graphQLSchema = customizedBuilder.build();
-        ISiriusGraphQLQueryResult result = new SiriusGraphQLTestsHelper().getSchema(graphQLSchema);
-        new SiriusGraphQLTestsHelper().testType(result, SiriusGraphQLTestsMessages.eObject, EOBJECT);
-    }
-
-    /**
-     * Test the schema generated for library.
-     */
-    @Test
-    public void testLibrarySchema() {
-        ISiriusGraphQLTypeCustomizer graphQLTypeCustomizer = new ISiriusGraphQLTypeCustomizer() {
-            // Do not customize anything
-        };
-        GraphQLType eObjectType = new EObjectTypeProvider().getType(graphQLTypeCustomizer);
-        Set<GraphQLType> types = new EPackageTypesProvider(ExtlibraryPackage.eINSTANCE).getTypes(graphQLTypeCustomizer);
-
-        GraphQLObjectType queryType = GraphQLObjectType.newObject().name("Query").build(); //$NON-NLS-1$
-        GraphQLSchema graphQLSchema = GraphQLSchema.newSchema().query(queryType).additionalType(eObjectType).additionalTypes(types).build();
-        ISiriusGraphQLQueryResult result = new SiriusGraphQLTestsHelper().getSchema(graphQLSchema);
-        new SiriusGraphQLTestsHelper().testType(result, SiriusGraphQLTestsMessages.library, LIBRARY);
-        new SiriusGraphQLTestsHelper().testType(result, SiriusGraphQLTestsMessages.book, BOOK);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLProjectTests.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLProjectTests.java
deleted file mode 100644
index 358b050..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLProjectTests.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.api.SiriusGraphQLInterpreter;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.google.gson.Gson;
-
-/**
- * Tests of the project entity.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLProjectTests {
-
-    /**
-     * The name of the GraphQL operation.
-     */
-    private static final String OPERATION_NAME = "findProject"; //$NON-NLS-1$
-
-    /**
-     * The name of the project name variable.
-     */
-    private static final String PROJECT_NAME = "projectName"; //$NON-NLS-1$
-
-    /**
-     * The name of the sample project.
-     */
-    private static final String SAMPLE_PROJECT_NAME = "org.eclipse.sirius.sample"; //$NON-NLS-1$
-
-    /**
-     * The description of the sample project.
-     */
-    private static final String COMMENT = "SampleDescription"; //$NON-NLS-1$
-
-    /**
-     * Initialization of the unit tests.
-     * 
-     * <ul>
-     * <li>Create an empty test project</li>
-     * </ul>
-     */
-    @BeforeClass
-    public static void beforeClass() {
-        IProgressMonitor monitor = new NullProgressMonitor();
-
-        try {
-            IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(SAMPLE_PROJECT_NAME);
-            if (project.exists()) {
-                project.delete(true, monitor);
-            }
-            IProjectDescription projectDescription = ResourcesPlugin.getWorkspace().newProjectDescription(SAMPLE_PROJECT_NAME);
-            projectDescription.setComment(COMMENT);
-
-            project.create(projectDescription, monitor);
-            project.open(monitor);
-        } catch (CoreException e) {
-            IStatus status = new Status(IStatus.ERROR, SiriusGraphQLTestsPlugin.PLUGIN_ID, e.getMessage(), e);
-            SiriusGraphQLTestsPlugin.getPlugin().log(status);
-        }
-    }
-
-    /**
-     * Evaluate the GraphQL query and compare it with the expected JSON result.
-     * 
-     * @param query
-     *            The query
-     * @param variables
-     *            The variables
-     * @param result
-     *            The expected JSON result
-     */
-    private void evaluateQuery(String query, Map<String, Object> variables, String result) {
-        ISiriusGraphQLQueryResult graphqQLResult = new SiriusGraphQLInterpreter().execute(query, variables, OPERATION_NAME, null);
-        String json = new Gson().toJson(graphqQLResult.getData());
-        String expected = result.replaceAll("\\s+", ""); //$NON-NLS-1$ //$NON-NLS-2$
-
-        assertEquals(expected, json);
-    }
-
-    /**
-     * Test the retrieval of the name of one project.
-     */
-    @Test
-    public void testFindProjectNameByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectNameByName, variables, SiriusGraphQLTestsMessages.findProjectNameByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the path of one project.
-     */
-    @Test
-    public void testFindProjectPathByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectPathByName, variables, SiriusGraphQLTestsMessages.findProjectPathByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the container of one project.
-     */
-    @Test
-    public void testFindProjectContainerByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectContainerByName, variables, SiriusGraphQLTestsMessages.findProjectContainerByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the project of one project.
-     */
-    @Test
-    public void testFindProjectProjectByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectProjectByName, variables, SiriusGraphQLTestsMessages.findProjectProjectByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the resources of one project.
-     */
-    @Test
-    public void testFindProjectResourcesByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectResourcesByName, variables, SiriusGraphQLTestsMessages.findProjectResourcesByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the description of one project.
-     */
-    @Test
-    public void testFindDescriptionResourcesByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectDescriptionByName, variables, SiriusGraphQLTestsMessages.findProjectDescriptionByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of a resource of one project.
-     */
-    @Test
-    public void testFindProjectResourceByPathByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectResourceByPathByName, variables, SiriusGraphQLTestsMessages.findProjectResourceByPathByName_resultSample);
-    }
-
-    /**
-     * Test the retrieval of the activated viewpoints of one project.
-     */
-    @Test
-    public void testFindProjectActivatedViewpointsByName() {
-        Map<String, Object> variables = new HashMap<>();
-        variables.put(PROJECT_NAME, SAMPLE_PROJECT_NAME);
-
-        this.evaluateQuery(SiriusGraphQLTestsMessages.findProjectActivatedViewpointsByName, variables, SiriusGraphQLTestsMessages.findProjectActivatedViewpointsByName_resultSample);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLSchemaTests.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLSchemaTests.java
deleted file mode 100644
index b8443f4..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLSchemaTests.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.internal.schema.SiriusGraphQLSchemaProvider;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * The test class for the GraphQL schema.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLSchemaTests {
-
-    /**
-     * The name of the Query type.
-     */
-    private static final String QUERY = "Query"; //$NON-NLS-1$
-
-    /**
-     * The name of the PageInfo type.
-     */
-    private static final String PAGEINFO = "PageInfo"; //$NON-NLS-1$
-
-    /**
-     * The name of the Mutation type.
-     */
-    private static final String MUTATION = "Mutation"; //$NON-NLS-1$
-
-    /**
-     * The name of the User type.
-     */
-    private static final String USER = "User"; //$NON-NLS-1$
-
-    /**
-     * The name of the Resource type.
-     */
-    private static final String RESOURCE = "Resource"; //$NON-NLS-1$
-
-    /**
-     * The name of the Container type.
-     */
-    private static final String CONTAINER = "Container"; //$NON-NLS-1$
-
-    /**
-     * The name of the Project type.
-     */
-    private static final String PROJECT = "Project"; //$NON-NLS-1$
-
-    /**
-     * The name of the Folder type.
-     */
-    private static final String FOLDER = "Folder"; //$NON-NLS-1$
-
-    /**
-     * The name of the File type.
-     */
-    private static final String FILE = "File"; //$NON-NLS-1$
-
-    /**
-     * The name of the FileCreationDescription type.
-     */
-    private static final String FILE_CREATION_DESCRIPTION = "FileCreationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the RepresentationCreationDescription type.
-     */
-    private static final String REPRESENTATION_CREATION_DESCRIPTION = "RepresentationCreationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the Viewpoint type.
-     */
-    private static final String VIEWPOINT = "Viewpoint"; //$NON-NLS-1$
-
-    /**
-     * The name of the RepresentationDescription type.
-     */
-    private static final String REPRESENTATION_DESCRIPTION = "RepresentationDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the DiagramDescription type.
-     */
-    private static final String DIAGRAM_DESCRIPTION = "DiagramDescription"; //$NON-NLS-1$
-
-    /**
-     * The name of the Representation type.
-     */
-    private static final String REPRESENTATION = "Representation"; //$NON-NLS-1$
-
-    /**
-     * The name of the Diagram type.
-     */
-    private static final String DIAGRAM = "Diagram"; //$NON-NLS-1$
-
-    /**
-     * The name of the EObject type.
-     */
-    private static final String EOBJECT = "EObject"; //$NON-NLS-1$
-
-    /**
-     * The name of the EModelElement type.
-     */
-    private static final String EMODELELEMENT = "EModelElement"; //$NON-NLS-1$
-
-    /**
-     * The name of the ENamedElement type.
-     */
-    private static final String ENAMEDELEMENT = "ENamedElement"; //$NON-NLS-1$
-
-    /**
-     * The name of the EClassifier type.
-     */
-    private static final String ECLASSIFIER = "EClassifier"; //$NON-NLS-1$
-
-    /**
-     * The name of the EClass type.
-     */
-    private static final String ECLASS = "EClass"; //$NON-NLS-1$
-
-    /**
-     * The name of the ETypedElement type.
-     */
-    private static final String ETYPEDELEMENT = "ETypedElement"; //$NON-NLS-1$
-
-    /**
-     * The name of the EStructuralFeature type.
-     */
-    private static final String ESTRUCTURALFEATURE = "EStructuralFeature"; //$NON-NLS-1$
-
-    /**
-     * The name of the EAttribute type.
-     */
-    private static final String EATTRIBUTE = "EAttribute"; //$NON-NLS-1$
-
-    /**
-     * The name of the EReference type.
-     */
-    private static final String EREFERENCE = "EReference"; //$NON-NLS-1$
-
-    /**
-     * The result of the execution of the query.
-     */
-    private ISiriusGraphQLQueryResult result;
-
-    /**
-     * Execute the query.
-     */
-    @Before
-    public void setup() {
-        this.result = new SiriusGraphQLTestsHelper().getSchema(new SiriusGraphQLSchemaProvider().getSchema());
-    }
-
-    /**
-     * Test the Query type of the schema.
-     */
-    @Test
-    public void testQuerySchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.query, QUERY);
-    }
-
-    /**
-     * Test the PageInfo type of the schema.
-     */
-    @Test
-    public void testPageInfoSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.pageInfo, PAGEINFO);
-    }
-
-    /**
-     * Test the User type of the schema.
-     */
-    @Test
-    public void testUserSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.user, USER);
-    }
-
-    /**
-     * Test the Mutation type of the schema.
-     */
-    @Test
-    public void testMutationSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.mutation, MUTATION);
-    }
-
-    /**
-     * Test the TextFileCreationDescription type of the schema.
-     */
-    @Test
-    public void testFileCreationDescriptionSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.fileCreationDescription, FILE_CREATION_DESCRIPTION);
-    }
-
-    /**
-     * Test the RepresentationCreationDescription type of the schema.
-     */
-    @Test
-    public void testRepresentationCreationDescriptionSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.representationCreationDescription, REPRESENTATION_CREATION_DESCRIPTION);
-    }
-
-    /**
-     * Test the Resource type of the schema.
-     */
-    @Test
-    public void testResourceSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.resource, RESOURCE);
-    }
-
-    /**
-     * Test the Container type of the schema.
-     */
-    @Test
-    public void testContainerSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.container, CONTAINER);
-    }
-
-    /**
-     * Test the Project type of the schema.
-     */
-    @Test
-    public void testProjectSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.project, PROJECT);
-    }
-
-    /**
-     * Test the Folder type of the schema.
-     */
-    @Test
-    public void testFolderSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.folder, FOLDER);
-    }
-
-    /**
-     * Test the File type of the schema.
-     */
-    @Test
-    public void testFileSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.file, FILE);
-    }
-
-    /**
-     * Test the Viewpoint type of the schema.
-     */
-    @Test
-    public void testViewpointSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.viewpoint, VIEWPOINT);
-    }
-
-    /**
-     * Test the RepresentationDescription type of the schema.
-     */
-    @Test
-    public void testRepresentationDescriptionSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.representationDescription, REPRESENTATION_DESCRIPTION);
-    }
-
-    /**
-     * Test the DiagramDescription type of the schema.
-     */
-    @Test
-    public void testDiagramDescriptionSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.diagramDescription, DIAGRAM_DESCRIPTION);
-    }
-
-    /**
-     * Test the Representation type of the schema.
-     */
-    @Test
-    public void testRepresentationSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.representation, REPRESENTATION);
-    }
-
-    /**
-     * Test the Diagram type of the schema.
-     */
-    @Test
-    public void testDiagramSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.diagram, DIAGRAM);
-    }
-
-    /**
-     * Test the EObject type of the schema.
-     */
-    @Test
-    public void testEObjectSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eObject, EOBJECT);
-    }
-
-    /**
-     * Test the EModelElement type of the schema.
-     */
-    @Test
-    public void testEModelElementSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eModelElement, EMODELELEMENT);
-    }
-
-    /**
-     * Test the ENamedElement type of the schema.
-     */
-    @Test
-    public void testENamedElementSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eNamedElement, ENAMEDELEMENT);
-    }
-
-    /**
-     * Test the EClassifier type of the schema.
-     */
-    @Test
-    public void testEClassifierSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eClassifier, ECLASSIFIER);
-    }
-
-    /**
-     * Test the EClass type of the schema.
-     */
-    @Test
-    public void testEClassSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eClass, ECLASS);
-    }
-
-    /**
-     * Test the ETypedElement type of the schema.
-     */
-    @Test
-    public void testETypedElementSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eTypedElement, ETYPEDELEMENT);
-    }
-
-    /**
-     * Test the EStructuralFeature type of the schema.
-     */
-    @Test
-    public void testEStructuralFeatureSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eStructuralFeature, ESTRUCTURALFEATURE);
-    }
-
-    /**
-     * Test the EAttribute type of the schema.
-     */
-    @Test
-    public void testEAttributeSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eAttribute, EATTRIBUTE);
-    }
-
-    /**
-     * Test the EReference type of the schema.
-     */
-    @Test
-    public void testEReferenceSchema() {
-        new SiriusGraphQLTestsHelper().testType(this.result, SiriusGraphQLTestsMessages.eReference, EREFERENCE);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsHelper.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsHelper.java
deleted file mode 100644
index 7f416f9..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsHelper.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import org.eclipse.sirius.services.graphql.api.ISiriusGraphQLQueryResult;
-import org.eclipse.sirius.services.graphql.api.SiriusGraphQLInterpreter;
-
-import graphql.schema.GraphQLSchema;
-
-/**
- * Utility class used to help writing GraphQL tests.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLTestsHelper {
-    /**
-     * The data field of the result.
-     */
-    private static final String DATA = "data"; //$NON-NLS-1$
-
-    /**
-     * The schema field of the result.
-     */
-    private static final String SCHEMA = "__schema"; //$NON-NLS-1$
-
-    /**
-     * The types field of the result.
-     */
-    private static final String TYPES = "types"; //$NON-NLS-1$
-
-    /**
-     * The name field of the result.
-     */
-    private static final String NAME = "name"; //$NON-NLS-1$
-
-    /**
-     * Returns the introspected version of the given GraphQL schema.
-     * 
-     * @param schema
-     *            The GraphQL schema
-     * @return The introspected version of the given GraphQL schema
-     */
-    public ISiriusGraphQLQueryResult getSchema(GraphQLSchema schema) {
-        String query = SiriusGraphQLTestsMessages.introspectionQuery;
-        Map<String, Object> variables = new HashMap<>();
-        String operationName = ""; //$NON-NLS-1$
-        Object context = null;
-        return new SiriusGraphQLInterpreter(schema).execute(query, variables, operationName, context);
-    }
-
-    /**
-     * Returns the types of the GraphQL schema from the introspection result.
-     * 
-     * @param result
-     *            The introspection result
-     * @return The types of the GraphQL schema from the introspection result
-     */
-    @SuppressWarnings("unchecked")
-    public List<Map<String, Object>> findTypes(ISiriusGraphQLQueryResult result) {
-        Map<String, Object> rawData = result.getData();
-        Map<String, Object> data = (Map<String, Object>) rawData.get(DATA);
-        Map<String, Object> schema = (Map<String, Object>) data.get(SCHEMA);
-        return (List<Map<String, Object>>) schema.get(TYPES);
-    }
-
-    /**
-     * Test that the definition of the type retrieved matches the expected definition.
-     * 
-     * @param result
-     *            The introspection result
-     * @param expected
-     *            The expected definition
-     * @param typeName
-     *            The name of the type
-     */
-    public void testType(ISiriusGraphQLQueryResult result, String expected, String typeName) {
-        List<Map<String, Object>> types = new SiriusGraphQLTestsHelper().findTypes(result);
-
-        Optional<Map<String, Object>> optionalType = types.stream().filter(type -> typeName.equals(type.get(NAME))).findFirst();
-        if (optionalType.isPresent()) {
-            Map<String, Object> type = optionalType.get();
-            String typeString = new SiriusGraphQLTypeSerializer().typeToString(type);
-            assertEquals(expected, typeString);
-        } else {
-            fail("The " + typeName + " type has not been found in the schema"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsMessages.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsMessages.java
deleted file mode 100644
index c1d8bcf..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsMessages.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Utility class containing the translated messages.
- * 
- * @author sbegaudeau
- */
-public final class SiriusGraphQLTestsMessages {
-    static {
-        I18N.initializeMessages(SiriusGraphQLTestsMessages.class, SiriusGraphQLTestsPlugin.INSTANCE);
-    }
-
-    // CHECKSTYLE:OFF
-
-    @TranslatableMessage
-    public static String introspectionQuery;
-
-    @TranslatableMessage
-    public static String findProjectNameByName;
-
-    @TranslatableMessage
-    public static String findProjectNameByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectPathByName;
-
-    @TranslatableMessage
-    public static String findProjectPathByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectContainerByName;
-
-    @TranslatableMessage
-    public static String findProjectContainerByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectProjectByName;
-
-    @TranslatableMessage
-    public static String findProjectProjectByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectResourcesByName;
-
-    @TranslatableMessage
-    public static String findProjectResourcesByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectDescriptionByName;
-
-    @TranslatableMessage
-    public static String findProjectDescriptionByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectResourceByPathByName;
-
-    @TranslatableMessage
-    public static String findProjectResourceByPathByName_resultSample;
-
-    @TranslatableMessage
-    public static String findProjectActivatedViewpointsByName;
-
-    @TranslatableMessage
-    public static String findProjectActivatedViewpointsByName_resultSample;
-
-    @TranslatableMessage
-    public static String query;
-
-    @TranslatableMessage
-    public static String pageInfo;
-
-    @TranslatableMessage
-    public static String mutation;
-
-    @TranslatableMessage
-    public static String user;
-
-    @TranslatableMessage
-    public static String resource;
-
-    @TranslatableMessage
-    public static String container;
-
-    @TranslatableMessage
-    public static String project;
-
-    @TranslatableMessage
-    public static String folder;
-
-    @TranslatableMessage
-    public static String file;
-
-    @TranslatableMessage
-    public static String fileCreationDescription;
-
-    @TranslatableMessage
-    public static String representationCreationDescription;
-
-    @TranslatableMessage
-    public static String viewpoint;
-
-    @TranslatableMessage
-    public static String representationDescription;
-
-    @TranslatableMessage
-    public static String diagramDescription;
-
-    @TranslatableMessage
-    public static String representation;
-
-    @TranslatableMessage
-    public static String diagram;
-
-    @TranslatableMessage
-    public static String eObject;
-
-    @TranslatableMessage
-    public static String eModelElement;
-
-    @TranslatableMessage
-    public static String eNamedElement;
-
-    @TranslatableMessage
-    public static String eClassifier;
-
-    @TranslatableMessage
-    public static String eClass;
-
-    @TranslatableMessage
-    public static String eTypedElement;
-
-    @TranslatableMessage
-    public static String eStructuralFeature;
-
-    @TranslatableMessage
-    public static String eAttribute;
-
-    @TranslatableMessage
-    public static String eReference;
-
-    @TranslatableMessage
-    public static String library;
-
-    @TranslatableMessage
-    public static String book;
-
-    // CHECKSTYLE:ON
-
-    private SiriusGraphQLTestsMessages() {
-        // Prevents instantiation.
-    }
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsPlugin.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsPlugin.java
deleted file mode 100644
index 316a0c6..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTestsPlugin.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The plugin of the bundle.
- * 
- * @author sbegaudeau
- */
-public final class SiriusGraphQLTestsPlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.tests.services.graphql"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final SiriusGraphQLTestsPlugin INSTANCE = new SiriusGraphQLTestsPlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    private SiriusGraphQLTestsPlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * The constructor.
-         */
-        public Implementation() {
-            super();
-            SiriusGraphQLTestsPlugin.plugin = this;
-        }
-
-        @Override
-        public void start(BundleContext context) throws Exception {
-            super.start(context);
-        }
-
-        @Override
-        public void stop(BundleContext context) throws Exception {
-            super.stop(context);
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTypeSerializer.java b/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTypeSerializer.java
deleted file mode 100644
index 8722eff..0000000
--- a/plugins/org.eclipse.sirius.tests.services.graphql/src/org/eclipse/sirius/tests/services/graphql/internal/SiriusGraphQLTypeSerializer.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.tests.services.graphql.internal;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * Utility class used to transform the result of the introspection query into the standard definition language.
- * 
- * @author sbegaudeau
- */
-public class SiriusGraphQLTypeSerializer {
-
-    /**
-     * The name of the kind field.
-     */
-    private static final String KIND = "kind"; //$NON-NLS-1$
-
-    /**
-     * The value of the kind field used to identify types.
-     */
-    private static final String OBJECT = "OBJECT"; //$NON-NLS-1$
-
-    /**
-     * The value of the kind field used to identify interfaces.
-     */
-    private static final String INTERFACE = "INTERFACE"; //$NON-NLS-1$
-
-    /**
-     * The value of the kind field used to identify input types.
-     */
-    private static final String INPUT_OBJECT = "INPUT_OBJECT"; //$NON-NLS-1$
-
-    /**
-     * The name of the name field.
-     */
-    private static final String NAME = "name"; //$NON-NLS-1$
-
-    /**
-     * The name of the fields field.
-     */
-    private static final String FIELDS = "fields"; //$NON-NLS-1$
-
-    /**
-     * The name of the type field.
-     */
-    private static final String TYPE = "type"; //$NON-NLS-1$
-
-    /**
-     * The name of the args field.
-     */
-    private static final String ARGS = "args"; //$NON-NLS-1$
-
-    /**
-     * The name of the ofType field.
-     */
-    private static final String OFTYPE = "ofType"; //$NON-NLS-1$
-
-    /**
-     * The name of the interfaces field.
-     */
-    private static final String INTERFACES = "interfaces"; //$NON-NLS-1$
-
-    /**
-     * The name of the inputFields field.
-     */
-    private static final String INPUT_FIELDS = "inputFields"; //$NON-NLS-1$
-
-    /**
-     * The value used to indicate that an element is not null.
-     */
-    private static final String NON_NULL = "NON_NULL"; //$NON-NLS-1$
-
-    /**
-     * The value used to indicate that an element is a list.
-     */
-    private static final String LIST = "LIST"; //$NON-NLS-1$
-
-    /**
-     * Returns a standard definition language representation of the given type.
-     * 
-     * @param type
-     *            The type
-     * @return The SDL representation of the type
-     */
-    @SuppressWarnings("unchecked")
-    public String typeToString(Map<String, Object> type) {
-        StringBuilder stringBuilder = new StringBuilder();
-
-        String kind = (String) type.get(KIND);
-        if (OBJECT.equals(kind)) {
-            stringBuilder.append("type "); //$NON-NLS-1$
-        } else if (INTERFACE.equals(kind)) {
-            stringBuilder.append("interface "); //$NON-NLS-1$
-        } else if (INPUT_OBJECT.equals(kind)) {
-            stringBuilder.append("input "); //$NON-NLS-1$
-        }
-
-        String name = (String) type.get(NAME);
-        stringBuilder.append(name);
-
-        List<Map<String, Object>> interfaces = (List<Map<String, Object>>) type.get(INTERFACES);
-        if (interfaces != null) {
-            // @formatter:off
-            List<String> interfacesString = interfaces.stream()
-                    .map(anInterface -> anInterface.get(NAME))
-                    .filter(String.class::isInstance)
-                    .map(String.class::cast)
-                    .collect(Collectors.toList());
-            // @formatter:on
-
-            if (!interfacesString.isEmpty()) {
-                stringBuilder.append(" implements "); //$NON-NLS-1$
-                stringBuilder.append(interfacesString.stream().collect(Collectors.joining(", "))); //$NON-NLS-1$
-            }
-        }
-        stringBuilder.append(" {\n"); //$NON-NLS-1$
-
-        List<Map<String, Object>> fields = (List<Map<String, Object>>) type.get(FIELDS);
-        if (fields != null) {
-            fields.stream().map(this::fieldToString).forEach(fieldString -> {
-                stringBuilder.append(fieldString + "\n"); //$NON-NLS-1$
-            });
-        }
-
-        List<Map<String, Object>> inputFields = (List<Map<String, Object>>) type.get(INPUT_FIELDS);
-        if (inputFields != null) {
-            inputFields.stream().map(this::fieldToString).forEach(fieldString -> {
-                stringBuilder.append(fieldString + "\n"); //$NON-NLS-1$
-            });
-        }
-
-        stringBuilder.append("}"); //$NON-NLS-1$
-
-        return stringBuilder.toString();
-    }
-
-    /**
-     * Returns a standard definition language representation of the given field.
-     * 
-     * @param field
-     *            The field
-     * @return The SDL representation of the field
-     */
-    @SuppressWarnings("unchecked")
-    private String fieldToString(Map<String, Object> field) {
-        StringBuilder stringBuilder = new StringBuilder();
-
-        String name = (String) field.get(NAME);
-        stringBuilder.append(name);
-
-        List<Map<String, Object>> args = (List<Map<String, Object>>) field.get(ARGS);
-        if (args != null) {
-            List<String> stringArgs = args.stream().map(this::argToString).collect(Collectors.toList());
-            if (!stringArgs.isEmpty()) {
-                stringBuilder.append("("); //$NON-NLS-1$
-
-                stringBuilder.append(stringArgs.stream().collect(Collectors.joining(", "))); //$NON-NLS-1$
-
-                stringBuilder.append(")"); //$NON-NLS-1$
-            }
-        }
-        stringBuilder.append(": "); //$NON-NLS-1$
-
-        Map<String, Object> type = (Map<String, Object>) field.get(TYPE);
-        stringBuilder.append(this.typeRefToString(type));
-
-        return stringBuilder.toString();
-    }
-
-    /**
-     * Returns a standard definition language representation of the given argument.
-     * 
-     * @param arg
-     *            The argument
-     * @return The SDL representation of the argument
-     */
-    @SuppressWarnings("unchecked")
-    private String argToString(Map<String, Object> arg) {
-        StringBuilder stringBuilder = new StringBuilder();
-
-        String name = (String) arg.get(NAME);
-        stringBuilder.append(name + ": "); //$NON-NLS-1$
-
-        Map<String, Object> type = (Map<String, Object>) arg.get(TYPE);
-        stringBuilder.append(this.typeRefToString(type));
-
-        return stringBuilder.toString();
-    }
-
-    /**
-     * Returns a standard definition language representation of the given type reference.
-     * 
-     * @param type
-     *            The type
-     * @return The SDL representation of the type
-     */
-    @SuppressWarnings("unchecked")
-    private String typeRefToString(Map<String, Object> type) {
-        String typeName = (String) type.get(NAME);
-        String typeKind = (String) type.get(KIND);
-
-        Map<String, Object> ofType = (Map<String, Object>) type.get(OFTYPE);
-        if (typeName == null && ofType != null) {
-            typeName = this.typeRefToString(ofType);
-        }
-        if (NON_NULL.equals(typeKind)) {
-            typeName = typeName + "!"; //$NON-NLS-1$
-        } else if (LIST.equals(typeKind)) {
-            typeName = "[" + typeName + "]"; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-
-        return typeName;
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.checkstyle b/plugins/org.eclipse.sirius.workflow.edit/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.classpath b/plugins/org.eclipse.sirius.workflow.edit/.classpath
deleted file mode 100644
index 623f925..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="src" path="src-generator"/>
-	<classpathentry kind="src" path="src-spec"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.project b/plugins/org.eclipse.sirius.workflow.edit/.project
deleted file mode 100644
index 0c0aff3..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.workflow.edit</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/fr.obeo.baseliner.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/fr.obeo.baseliner.prefs
deleted file mode 100644
index edbf927..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/fr.obeo.baseliner.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-baselineSource=platform\:/resource/org.eclipse.sirius.targets/baseline.target
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1332c7f..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,394 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.workflow.edit/META-INF/MANIFEST.MF
deleted file mode 100644
index bbbd6b0..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.workflow.edit;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.sirius.workflow.edit.WorkflowEditPlugin$Implementation
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.sirius.workflow.edit;version="6.0.0",
- org.eclipse.sirius.workflow.edit.internal.generator;version="6.0.0";x-internal:=true,
- org.eclipse.sirius.workflow.provider;version="6.0.0"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
- org.eclipse.sirius.workflow.model;bundle-version="6.0.0";visibility:=reexport,
- org.eclipse.emf.edit;bundle-version="2.12.0";visibility:=reexport,
- org.eclipse.emf.ecore;bundle-version="2.12.0";visibility:=reexport,
- org.eclipse.emf.ecore.edit;bundle-version="2.9.0";visibility:=reexport,
- org.eclipse.sirius;bundle-version="6.0.0";visibility:=reexport,
- org.eclipse.sirius.ui;bundle-version="6.0.0";visibility:=reexport
-Eclipse-LazyStart: true
-Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.sirius.workflow.edit
diff --git a/plugins/org.eclipse.sirius.workflow.edit/about.html b/plugins/org.eclipse.sirius.workflow.edit/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.workflow.edit/build.properties b/plugins/org.eclipse.sirius.workflow.edit/build.properties
deleted file mode 100644
index 8aa010e..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-#  Copyright (c) 2018 Obeo.
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#  Contributors:
-#     Obeo - initial API and implementation
-# 
-
-bin.includes = .,\
-               icons/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html
-jars.compile.order = .
-source.. = src-gen/,\
-           src-generator/,\
-           src-spec/
-output.. = bin/
-javacWarnings.. = none
-javacDefaultEncoding.. = US-ASCII
-javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/ActivityDescription.gif b/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/ActivityDescription.gif
deleted file mode 100644
index b394107..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/ActivityDescription.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/PageDescription.gif b/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/PageDescription.gif
deleted file mode 100644
index 6705148..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/PageDescription.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/SectionDescription.gif b/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/SectionDescription.gif
deleted file mode 100644
index 37aad78..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/SectionDescription.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/WorkflowDescription.gif b/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/WorkflowDescription.gif
deleted file mode 100644
index 1ff8a8d..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/icons/full/obj16/WorkflowDescription.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.sirius.workflow.edit/plugin.properties b/plugins/org.eclipse.sirius.workflow.edit/plugin.properties
deleted file mode 100644
index 00c7ef3..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/plugin.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-#  Copyright (c) 2018 Obeo.
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#  Contributors:
-#     Obeo - initial API and implementation
-# 
-
-pluginName = Sirius Workflow Edit Support
-providerName = Eclipse Modeling Project
-
-_UI_CreateChild_text = {0}
-_UI_CreateChild_text2 = {1} {0}
-_UI_CreateChild_text3 = {1}
-_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
-_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
-_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
-
-_UI_PropertyDescriptor_description = The {0} of the {1}
-
-_UI_WorkflowDescription_type = Workflow
-_UI_PageDescription_type = Page
-_UI_SectionDescription_type = Section
-_UI_ActivityDescription_type = Activity
-_UI_Unknown_type = Object
-
-_UI_Unknown_datatype= Value
-
-_UI_WorkflowDescription_pages_feature = Pages
-_UI_PageDescription_titleExpression_feature = Title Expression
-_UI_PageDescription_imagePath_feature = Image Path
-_UI_PageDescription_descriptionExpression_feature = Description Expression
-_UI_PageDescription_sections_feature = Sections
-_UI_SectionDescription_titleExpression_feature = Title Expression
-_UI_SectionDescription_imagePath_feature = Image Path
-_UI_SectionDescription_descriptionExpression_feature = Description Expression
-_UI_SectionDescription_activities_feature = Activities
-_UI_ActivityDescription_labelExpression_feature = Label Expression
-_UI_ActivityDescription_imagePath_feature = Image Path
-_UI_ActivityDescription_operation_feature = Operation
-_UI_Unknown_feature = Unspecified
-
diff --git a/plugins/org.eclipse.sirius.workflow.edit/plugin.xml b/plugins/org.eclipse.sirius.workflow.edit/plugin.xml
deleted file mode 100644
index ac333c6..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/plugin.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-  Copyright (c) 2018 Obeo.
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License v2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
- 
-  Contributors:
-     Obeo - initial API and implementation
- 
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <!-- @generated NOT workflow -->
-      <factory
-            uri="http://www.eclipse.org/sirius/workflow/1.0.0"
-            class="org.eclipse.sirius.workflow.provider.WorkflowItemProviderAdapterFactorySpec"
-            supportedTypes=
-              "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-               org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-               org.eclipse.emf.edit.provider.ITreeItemContentProvider
-               org.eclipse.emf.edit.provider.IItemLabelProvider
-               org.eclipse.emf.edit.provider.IItemPropertySource
-               org.eclipse.emf.edit.provider.IItemStyledLabelProvider"/>
-   </extension>
-
-   <extension point="org.eclipse.emf.edit.childCreationExtenders">
-      <!-- @generated NOT workflow -->
-      <extender
-            uri="http://www.eclipse.org/sirius/description/1.1.0"
-            class="org.eclipse.sirius.workflow.provider.DescriptionChildCreationExtenderSpec"/>
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/pom.xml b/plugins/org.eclipse.sirius.workflow.edit/pom.xml
deleted file mode 100644
index 9a4a7e9..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-  Copyright (c) 2015, 2016 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.workflow.edit</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/edit/WorkflowEditPlugin.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/edit/WorkflowEditPlugin.java
deleted file mode 100644
index d0dbf2b..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/edit/WorkflowEditPlugin.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.edit;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
-import org.eclipse.sirius.viewpoint.provider.SiriusEditPlugin;
-
-/**
- * This is the central singleton for the Workflow edit plugin. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public final class WorkflowEditPlugin extends EMFPlugin {
-    /**
-     * Keep track of the singleton. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public static final WorkflowEditPlugin INSTANCE = new WorkflowEditPlugin();
-
-    /**
-     * Keep track of the singleton. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private static Implementation plugin;
-
-    /**
-     * Create the instance. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowEditPlugin() {
-        super(new ResourceLocator[] { EcoreEditPlugin.INSTANCE, SiriusEditPlugin.INSTANCE, });
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the singleton instance.
-     * @generated
-     */
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return WorkflowEditPlugin.plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the singleton instance.
-     * @generated
-     */
-    public static Implementation getPlugin() {
-        return WorkflowEditPlugin.plugin;
-    }
-
-    /**
-     * The actual implementation of the Eclipse <b>Plugin</b>. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public static class Implementation extends EclipsePlugin {
-        /**
-         * Creates an instance. <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        public Implementation() {
-            super();
-
-            // Remember the static instance.
-            //
-            WorkflowEditPlugin.plugin = this;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProvider.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProvider.java
deleted file mode 100644
index 4b8d2de..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProvider.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.StyledString;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.provider.IdentifiedElementItemProvider;
-import org.eclipse.sirius.viewpoint.description.tool.ToolFactory;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.sirius.workflow.ActivityDescription} object. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public class ActivityDescriptionItemProvider extends IdentifiedElementItemProvider implements IItemStyledLabelProvider {
-    /**
-     * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public ActivityDescriptionItemProvider(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    /**
-     * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-        if (itemPropertyDescriptors == null) {
-            super.getPropertyDescriptors(object);
-
-            addDocumentationPropertyDescriptor(object);
-            addLabelExpressionPropertyDescriptor(object);
-            addImagePathPropertyDescriptor(object);
-        }
-        return itemPropertyDescriptors;
-    }
-
-    /**
-     * This adds a property descriptor for the Documentation feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addDocumentationPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_DocumentedElement_documentation_feature"), //$NON-NLS-1$
-                        getString("_UI_DocumentedElement_documentation_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION, true, true, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_DocumentationPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This adds a property descriptor for the Label Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addLabelExpressionPropertyDescriptor(Object object) {
-        itemPropertyDescriptors.add(
-                createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_ActivityDescription_labelExpression_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_ActivityDescription_labelExpression_feature", "_UI_ActivityDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This adds a property descriptor for the Image Path feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addImagePathPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_ActivityDescription_imagePath_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_ActivityDescription_imagePath_feature", "_UI_ActivityDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.ACTIVITY_DESCRIPTION__IMAGE_PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-        if (childrenFeatures == null) {
-            super.getChildrenFeatures(object);
-            childrenFeatures.add(WorkflowPackage.Literals.ACTIVITY_DESCRIPTION__OPERATION);
-        }
-        return childrenFeatures;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EStructuralFeature getChildFeature(Object object, Object child) {
-        // Check the type of the specified child object and return the proper feature to use for
-        // adding (see {@link AddCommand}) it as a child.
-
-        return super.getChildFeature(object, child);
-    }
-
-    /**
-     * This returns ActivityDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getImage(Object object) {
-        return overlayImage(object, getResourceLocator().getImage("full/obj16/ActivityDescription")); //$NON-NLS-1$
-    }
-
-    /**
-     * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getText(Object object) {
-        return ((StyledString) getStyledText(object)).getString();
-    }
-
-    /**
-     * This returns the label styled text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getStyledText(Object object) {
-        String label = ((ActivityDescription) object).getLabelExpression();
-        StyledString styledLabel = new StyledString();
-        if (label == null || label.length() == 0) {
-            styledLabel.append(getString("_UI_ActivityDescription_type"), StyledString.Style.QUALIFIER_STYLER); //$NON-NLS-1$
-        } else {
-            styledLabel.append(getString("_UI_ActivityDescription_type"), StyledString.Style.QUALIFIER_STYLER).append(" " + label); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        return styledLabel;
-    }
-
-    /**
-     * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
-     * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    @Override
-    public void notifyChanged(Notification notification) {
-        updateChildren(notification);
-
-        switch (notification.getFeatureID(ActivityDescription.class)) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION:
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-            return;
-        }
-        super.notifyChanged(notification);
-    }
-
-    /**
-     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
-     * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-        super.collectNewChildDescriptors(newChildDescriptors, object);
-
-        newChildDescriptors.add(createChildParameter(WorkflowPackage.Literals.ACTIVITY_DESCRIPTION__OPERATION, ToolFactory.eINSTANCE.createInitialOperation()));
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/PageDescriptionItemProvider.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/PageDescriptionItemProvider.java
deleted file mode 100644
index 84a025a..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/PageDescriptionItemProvider.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.StyledString;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.provider.IdentifiedElementItemProvider;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.sirius.workflow.PageDescription} object. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public class PageDescriptionItemProvider extends IdentifiedElementItemProvider implements IItemStyledLabelProvider {
-    /**
-     * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public PageDescriptionItemProvider(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    /**
-     * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-        if (itemPropertyDescriptors == null) {
-            super.getPropertyDescriptors(object);
-
-            addDocumentationPropertyDescriptor(object);
-            addTitleExpressionPropertyDescriptor(object);
-            addImagePathPropertyDescriptor(object);
-            addDescriptionExpressionPropertyDescriptor(object);
-        }
-        return itemPropertyDescriptors;
-    }
-
-    /**
-     * This adds a property descriptor for the Documentation feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addDocumentationPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_DocumentedElement_documentation_feature"), //$NON-NLS-1$
-                        getString("_UI_DocumentedElement_documentation_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION, true, true, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_DocumentationPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This adds a property descriptor for the Title Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addTitleExpressionPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PageDescription_titleExpression_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_PageDescription_titleExpression_feature", "_UI_PageDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.PAGE_DESCRIPTION__TITLE_EXPRESSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This adds a property descriptor for the Image Path feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addImagePathPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PageDescription_imagePath_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_PageDescription_imagePath_feature", "_UI_PageDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.PAGE_DESCRIPTION__IMAGE_PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This adds a property descriptor for the Description Expression feature. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    protected void addDescriptionExpressionPropertyDescriptor(Object object) {
-        itemPropertyDescriptors.add(
-                createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_PageDescription_descriptionExpression_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_PageDescription_descriptionExpression_feature", "_UI_PageDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-        if (childrenFeatures == null) {
-            super.getChildrenFeatures(object);
-            childrenFeatures.add(WorkflowPackage.Literals.PAGE_DESCRIPTION__SECTIONS);
-        }
-        return childrenFeatures;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EStructuralFeature getChildFeature(Object object, Object child) {
-        // Check the type of the specified child object and return the proper feature to use for
-        // adding (see {@link AddCommand}) it as a child.
-
-        return super.getChildFeature(object, child);
-    }
-
-    /**
-     * This returns PageDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getImage(Object object) {
-        return overlayImage(object, getResourceLocator().getImage("full/obj16/PageDescription")); //$NON-NLS-1$
-    }
-
-    /**
-     * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getText(Object object) {
-        return ((StyledString) getStyledText(object)).getString();
-    }
-
-    /**
-     * This returns the label styled text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getStyledText(Object object) {
-        String label = ((PageDescription) object).getTitleExpression();
-        StyledString styledLabel = new StyledString();
-        if (label == null || label.length() == 0) {
-            styledLabel.append(getString("_UI_PageDescription_type"), StyledString.Style.QUALIFIER_STYLER); //$NON-NLS-1$
-        } else {
-            styledLabel.append(getString("_UI_PageDescription_type"), StyledString.Style.QUALIFIER_STYLER).append(" " + label); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        return styledLabel;
-    }
-
-    /**
-     * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
-     * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    @Override
-    public void notifyChanged(Notification notification) {
-        updateChildren(notification);
-
-        switch (notification.getFeatureID(PageDescription.class)) {
-        case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-        case WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION:
-        case WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH:
-        case WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-            return;
-        }
-        super.notifyChanged(notification);
-    }
-
-    /**
-     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
-     * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-        super.collectNewChildDescriptors(newChildDescriptors, object);
-
-        newChildDescriptors.add(createChildParameter(WorkflowPackage.Literals.PAGE_DESCRIPTION__SECTIONS, WorkflowFactory.eINSTANCE.createSectionDescription()));
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProvider.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProvider.java
deleted file mode 100644
index 083edf7..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProvider.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.StyledString;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.provider.IdentifiedElementItemProvider;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.sirius.workflow.SectionDescription} object. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public class SectionDescriptionItemProvider extends IdentifiedElementItemProvider implements IItemStyledLabelProvider {
-    /**
-     * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public SectionDescriptionItemProvider(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    /**
-     * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-        if (itemPropertyDescriptors == null) {
-            super.getPropertyDescriptors(object);
-
-            addDocumentationPropertyDescriptor(object);
-            addTitleExpressionPropertyDescriptor(object);
-            addImagePathPropertyDescriptor(object);
-            addDescriptionExpressionPropertyDescriptor(object);
-        }
-        return itemPropertyDescriptors;
-    }
-
-    /**
-     * This adds a property descriptor for the Documentation feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addDocumentationPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_DocumentedElement_documentation_feature"), //$NON-NLS-1$
-                        getString("_UI_DocumentedElement_documentation_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION, true, true, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_DocumentationPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This adds a property descriptor for the Title Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addTitleExpressionPropertyDescriptor(Object object) {
-        itemPropertyDescriptors.add(
-                createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_SectionDescription_titleExpression_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_SectionDescription_titleExpression_feature", "_UI_SectionDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.SECTION_DESCRIPTION__TITLE_EXPRESSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This adds a property descriptor for the Image Path feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addImagePathPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_SectionDescription_imagePath_feature"), //$NON-NLS-1$
-                        getString("_UI_PropertyDescriptor_description", "_UI_SectionDescription_imagePath_feature", "_UI_SectionDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        WorkflowPackage.Literals.SECTION_DESCRIPTION__IMAGE_PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This adds a property descriptor for the Description Expression feature. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    protected void addDescriptionExpressionPropertyDescriptor(Object object) {
-        itemPropertyDescriptors.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(),
-                getString("_UI_SectionDescription_descriptionExpression_feature"), //$NON-NLS-1$
-                getString("_UI_PropertyDescriptor_description", "_UI_SectionDescription_descriptionExpression_feature", "_UI_SectionDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                WorkflowPackage.Literals.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
-    }
-
-    /**
-     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-        if (childrenFeatures == null) {
-            super.getChildrenFeatures(object);
-            childrenFeatures.add(WorkflowPackage.Literals.SECTION_DESCRIPTION__ACTIVITIES);
-        }
-        return childrenFeatures;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EStructuralFeature getChildFeature(Object object, Object child) {
-        // Check the type of the specified child object and return the proper feature to use for
-        // adding (see {@link AddCommand}) it as a child.
-
-        return super.getChildFeature(object, child);
-    }
-
-    /**
-     * This returns SectionDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getImage(Object object) {
-        return overlayImage(object, getResourceLocator().getImage("full/obj16/SectionDescription")); //$NON-NLS-1$
-    }
-
-    /**
-     * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getText(Object object) {
-        return ((StyledString) getStyledText(object)).getString();
-    }
-
-    /**
-     * This returns the label styled text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getStyledText(Object object) {
-        String label = ((SectionDescription) object).getTitleExpression();
-        StyledString styledLabel = new StyledString();
-        if (label == null || label.length() == 0) {
-            styledLabel.append(getString("_UI_SectionDescription_type"), StyledString.Style.QUALIFIER_STYLER); //$NON-NLS-1$
-        } else {
-            styledLabel.append(getString("_UI_SectionDescription_type"), StyledString.Style.QUALIFIER_STYLER).append(" " + label); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        return styledLabel;
-    }
-
-    /**
-     * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
-     * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    @Override
-    public void notifyChanged(Notification notification) {
-        updateChildren(notification);
-
-        switch (notification.getFeatureID(SectionDescription.class)) {
-        case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-        case WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION:
-        case WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH:
-        case WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-            return;
-        }
-        super.notifyChanged(notification);
-    }
-
-    /**
-     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
-     * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-        super.collectNewChildDescriptors(newChildDescriptors, object);
-
-        newChildDescriptors.add(createChildParameter(WorkflowPackage.Literals.SECTION_DESCRIPTION__ACTIVITIES, WorkflowFactory.eINSTANCE.createActivityDescription()));
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProvider.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProvider.java
deleted file mode 100644
index 0d3e893..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProvider.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IChildCreationExtender;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.StyledString;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.sirius.workflow.WorkflowDescription} object. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public class WorkflowDescriptionItemProvider extends ItemProviderAdapter
-        implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource, IItemStyledLabelProvider {
-    /**
-     * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowDescriptionItemProvider(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    /**
-     * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-        if (itemPropertyDescriptors == null) {
-            super.getPropertyDescriptors(object);
-
-            addNamePropertyDescriptor(object);
-            addLabelPropertyDescriptor(object);
-            addDocumentationPropertyDescriptor(object);
-        }
-        return itemPropertyDescriptors;
-    }
-
-    /**
-     * This adds a property descriptor for the Name feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addNamePropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_IdentifiedElement_name_feature"), //$NON-NLS-1$
-                        getString("_UI_IdentifiedElement_name_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.IDENTIFIED_ELEMENT__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_GeneralPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This adds a property descriptor for the Label feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addLabelPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_IdentifiedElement_label_feature"), //$NON-NLS-1$
-                        getString("_UI_IdentifiedElement_label_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.IDENTIFIED_ELEMENT__LABEL, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_GeneralPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This adds a property descriptor for the Documentation feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected void addDocumentationPropertyDescriptor(Object object) {
-        itemPropertyDescriptors
-                .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_DocumentedElement_documentation_feature"), //$NON-NLS-1$
-                        getString("_UI_DocumentedElement_documentation_description"), //$NON-NLS-1$
-                        DescriptionPackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION, true, true, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, getString("_UI_DocumentationPropertyCategory"), //$NON-NLS-1$
-                        null));
-    }
-
-    /**
-     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
-        if (childrenFeatures == null) {
-            super.getChildrenFeatures(object);
-            childrenFeatures.add(WorkflowPackage.Literals.WORKFLOW_DESCRIPTION__PAGES);
-        }
-        return childrenFeatures;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EStructuralFeature getChildFeature(Object object, Object child) {
-        // Check the type of the specified child object and return the proper feature to use for
-        // adding (see {@link AddCommand}) it as a child.
-
-        return super.getChildFeature(object, child);
-    }
-
-    /**
-     * This returns WorkflowDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getImage(Object object) {
-        return overlayImage(object, getResourceLocator().getImage("full/obj16/WorkflowDescription")); //$NON-NLS-1$
-    }
-
-    /**
-     * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getText(Object object) {
-        return ((StyledString) getStyledText(object)).getString();
-    }
-
-    /**
-     * This returns the label styled text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object getStyledText(Object object) {
-        String label = ((WorkflowDescription) object).getLabel();
-        StyledString styledLabel = new StyledString();
-        if (label == null || label.length() == 0) {
-            styledLabel.append(getString("_UI_WorkflowDescription_type"), StyledString.Style.QUALIFIER_STYLER); //$NON-NLS-1$
-        } else {
-            styledLabel.append(getString("_UI_WorkflowDescription_type"), StyledString.Style.QUALIFIER_STYLER).append(" " + label); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        return styledLabel;
-    }
-
-    /**
-     * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
-     * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     */
-    @Override
-    public void notifyChanged(Notification notification) {
-        updateChildren(notification);
-
-        switch (notification.getFeatureID(WorkflowDescription.class)) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-            return;
-        }
-        super.notifyChanged(notification);
-    }
-
-    /**
-     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
-     * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-        super.collectNewChildDescriptors(newChildDescriptors, object);
-
-        newChildDescriptors.add(createChildParameter(WorkflowPackage.Literals.WORKFLOW_DESCRIPTION__PAGES, WorkflowFactory.eINSTANCE.createPageDescription()));
-    }
-
-    /**
-     * Return the resource locator for this item provider's resources. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public ResourceLocator getResourceLocator() {
-        return ((IChildCreationExtender) adapterFactory).getResourceLocator();
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactory.java b/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactory.java
deleted file mode 100644
index 0f9529c..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-gen/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IChildCreationExtender;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.Group;
-import org.eclipse.sirius.viewpoint.description.util.DescriptionSwitch;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-import org.eclipse.sirius.workflow.edit.WorkflowEditPlugin;
-import org.eclipse.sirius.workflow.util.WorkflowAdapterFactory;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers. The adapters generated by this
- * factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. The adapters
- * also support Eclipse property sheets. Note that most of the adapters are shared among multiple instances. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
-public class WorkflowItemProviderAdapterFactory extends WorkflowAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
-    /**
-     * This keeps track of the root adapter factory that delegates to this adapter factory. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    protected ComposedAdapterFactory parentAdapterFactory;
-
-    /**
-     * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-    /**
-     * This helps manage the child creation extenders. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(WorkflowEditPlugin.INSTANCE, WorkflowPackage.eNS_URI);
-
-    /**
-     * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected Collection<Object> supportedTypes = new ArrayList<Object>();
-
-    /**
-     * This constructs an instance. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowItemProviderAdapterFactory() {
-        supportedTypes.add(IEditingDomainItemProvider.class);
-        supportedTypes.add(IStructuredItemContentProvider.class);
-        supportedTypes.add(ITreeItemContentProvider.class);
-        supportedTypes.add(IItemLabelProvider.class);
-        supportedTypes.add(IItemPropertySource.class);
-        supportedTypes.add(IItemStyledLabelProvider.class);
-    }
-
-    /**
-     * This keeps track of the one adapter used for all {@link org.eclipse.sirius.workflow.WorkflowDescription}
-     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected WorkflowDescriptionItemProvider workflowDescriptionItemProvider;
-
-    /**
-     * This creates an adapter for a {@link org.eclipse.sirius.workflow.WorkflowDescription}. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Adapter createWorkflowDescriptionAdapter() {
-        if (workflowDescriptionItemProvider == null) {
-            workflowDescriptionItemProvider = new WorkflowDescriptionItemProvider(this);
-        }
-
-        return workflowDescriptionItemProvider;
-    }
-
-    /**
-     * This keeps track of the one adapter used for all {@link org.eclipse.sirius.workflow.PageDescription} instances.
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected PageDescriptionItemProvider pageDescriptionItemProvider;
-
-    /**
-     * This creates an adapter for a {@link org.eclipse.sirius.workflow.PageDescription}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Adapter createPageDescriptionAdapter() {
-        if (pageDescriptionItemProvider == null) {
-            pageDescriptionItemProvider = new PageDescriptionItemProvider(this);
-        }
-
-        return pageDescriptionItemProvider;
-    }
-
-    /**
-     * This keeps track of the one adapter used for all {@link org.eclipse.sirius.workflow.SectionDescription}
-     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected SectionDescriptionItemProvider sectionDescriptionItemProvider;
-
-    /**
-     * This creates an adapter for a {@link org.eclipse.sirius.workflow.SectionDescription}. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Adapter createSectionDescriptionAdapter() {
-        if (sectionDescriptionItemProvider == null) {
-            sectionDescriptionItemProvider = new SectionDescriptionItemProvider(this);
-        }
-
-        return sectionDescriptionItemProvider;
-    }
-
-    /**
-     * This keeps track of the one adapter used for all {@link org.eclipse.sirius.workflow.ActivityDescription}
-     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected ActivityDescriptionItemProvider activityDescriptionItemProvider;
-
-    /**
-     * This creates an adapter for a {@link org.eclipse.sirius.workflow.ActivityDescription}. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Adapter createActivityDescriptionAdapter() {
-        if (activityDescriptionItemProvider == null) {
-            activityDescriptionItemProvider = new ActivityDescriptionItemProvider(this);
-        }
-
-        return activityDescriptionItemProvider;
-    }
-
-    /**
-     * This returns the root adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public ComposeableAdapterFactory getRootAdapterFactory() {
-        return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-    }
-
-    /**
-     * This sets the composed adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-        this.parentAdapterFactory = parentAdapterFactory;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public boolean isFactoryForType(Object type) {
-        return supportedTypes.contains(type) || super.isFactoryForType(type);
-    }
-
-    /**
-     * This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Adapter adapt(Notifier notifier, Object type) {
-        return super.adapt(notifier, this);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object adapt(Object object, Object type) {
-        if (isFactoryForType(type)) {
-            Object adapter = super.adapt(object, type);
-            if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
-                return adapter;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public List<IChildCreationExtender> getChildCreationExtenders() {
-        return childCreationExtenderManager.getChildCreationExtenders();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
-        return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public ResourceLocator getResourceLocator() {
-        return childCreationExtenderManager;
-    }
-
-    /**
-     * This adds a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void addListener(INotifyChangedListener notifyChangedListener) {
-        changeNotifier.addListener(notifyChangedListener);
-    }
-
-    /**
-     * This removes a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void removeListener(INotifyChangedListener notifyChangedListener) {
-        changeNotifier.removeListener(notifyChangedListener);
-    }
-
-    /**
-     * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void fireNotifyChanged(Notification notification) {
-        changeNotifier.fireNotifyChanged(notification);
-
-        if (parentAdapterFactory != null) {
-            parentAdapterFactory.fireNotifyChanged(notification);
-        }
-    }
-
-    /**
-     * This disposes all of the item providers created by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void dispose() {
-        if (workflowDescriptionItemProvider != null) {
-            workflowDescriptionItemProvider.dispose();
-        }
-        if (pageDescriptionItemProvider != null) {
-            pageDescriptionItemProvider.dispose();
-        }
-        if (sectionDescriptionItemProvider != null) {
-            sectionDescriptionItemProvider.dispose();
-        }
-        if (activityDescriptionItemProvider != null) {
-            activityDescriptionItemProvider.dispose();
-        }
-    }
-
-    /**
-     * A child creation extender for the {@link DescriptionPackage}. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public static class DescriptionChildCreationExtender implements IChildCreationExtender {
-        /**
-         * The switch for creating child descriptors specific to each extended class. <!-- begin-user-doc --> <!--
-         * end-user-doc -->
-         *
-         * @generated
-         */
-        protected static class CreationSwitch extends DescriptionSwitch<Object> {
-            /**
-             * The child descriptors being populated. <!-- begin-user-doc --> <!-- end-user-doc -->
-             *
-             * @generated
-             */
-            protected List<Object> newChildDescriptors;
-
-            /**
-             * The domain in which to create the children. <!-- begin-user-doc --> <!-- end-user-doc -->
-             *
-             * @generated
-             */
-            protected EditingDomain editingDomain;
-
-            /**
-             * Creates the a switch for populating child descriptors in the given domain. <!-- begin-user-doc --> <!--
-             * end-user-doc -->
-             *
-             * @generated
-             */
-            CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
-                this.newChildDescriptors = newChildDescriptors;
-                this.editingDomain = editingDomain;
-            }
-
-            /**
-             * <!-- begin-user-doc --> <!-- end-user-doc -->
-             *
-             * @generated
-             */
-            @Override
-            public Object caseGroup(Group object) {
-                newChildDescriptors.add(createChildParameter(DescriptionPackage.Literals.GROUP__EXTENSIONS, WorkflowFactory.eINSTANCE.createWorkflowDescription()));
-
-                return null;
-            }
-
-            /**
-             * <!-- begin-user-doc --> <!-- end-user-doc -->
-             *
-             * @generated
-             */
-            protected CommandParameter createChildParameter(Object feature, Object child) {
-                return new CommandParameter(null, feature, child);
-            }
-
-        }
-
-        /**
-         * <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        @Override
-        public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
-            ArrayList<Object> result = new ArrayList<Object>();
-            new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
-            return result;
-        }
-
-        /**
-         * <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        @Override
-        public ResourceLocator getResourceLocator() {
-            return WorkflowEditPlugin.INSTANCE;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-generator/org/eclipse/sirius/workflow/edit/internal/generator/GapPatternGenerator.java b/plugins/org.eclipse.sirius.workflow.edit/src-generator/org/eclipse/sirius/workflow/edit/internal/generator/GapPatternGenerator.java
deleted file mode 100644
index 5067a73..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-generator/org/eclipse/sirius/workflow/edit/internal/generator/GapPatternGenerator.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * Copyright (c) 2016, 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.edit.internal.generator;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
-
-/**
- * Utility class used to generate the Java classes used for the generation gap pattern of the EMF Edit part.
- * 
- * @author sbegaudeau
- */
-@SuppressWarnings({ "checkstyle:multiplestringliterals" })
-public final class GapPatternGenerator {
-    /**
-     * The constructor.
-     */
-    private GapPatternGenerator() {
-        // do nothing
-    }
-
-    /**
-     * The entry point of our generator.
-     * 
-     * @param args
-     *            The arguments (unused)
-     */
-    public static void main(String[] args) {
-        String userDir = System.getProperty("user.dir"); //$NON-NLS-1$
-        Path siriusWorkflowEditProjectPath = Paths.get(userDir);
-        Path siriusWorkflowProjectPath = siriusWorkflowEditProjectPath.getParent().resolve("org.eclipse.sirius.workflow.model"); //$NON-NLS-1$
-        Path ecoreModel = siriusWorkflowProjectPath.resolve("model/workflow.ecore"); //$NON-NLS-1$
-
-        ResourceSet resourceSet = new ResourceSetImpl();
-        resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl()); //$NON-NLS-1$
-        URI uri = URI.createFileURI(ecoreModel.toAbsolutePath().toString());
-
-        Path outputFolderPath = siriusWorkflowEditProjectPath.resolve("src-spec/org/eclipse/sirius/workflow/provider"); //$NON-NLS-1$
-
-        Resource resource = resourceSet.getResource(uri, true);
-        if (resource != null && resource.getContents().size() == 1 && resource.getContents().get(0) instanceof EPackage) {
-            EPackage ePackage = (EPackage) resource.getContents().get(0);
-
-            GapPatternGenerator.generateAdapterFactory(outputFolderPath, ePackage);
-            GapPatternGenerator.generateDescriptionChildCreationExtender(outputFolderPath, ePackage);
-
-            List<EClassifier> eClassifiers = ePackage.getEClassifiers();
-            for (EClassifier eClassifier : eClassifiers) {
-                if (eClassifier instanceof EClass) {
-                    GapPatternGenerator.generateItemProvider(outputFolderPath, (EClass) eClassifier);
-                }
-            }
-        }
-    }
-
-    /**
-     * Appends the copyrights to the given string builder and returns it.
-     * 
-     * @param builder
-     *            The string builder
-     * @return The given string builder
-     */
-    private static StringBuilder appendCopyright(StringBuilder builder) {
-        builder.append("/**").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * Copyright (c) 2018 Obeo.").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * This program and the accompanying materials").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * are made available under the terms of the Eclipse Public License 2.0").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * which accompanies this distribution, and is available at").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * https://www.eclipse.org/legal/epl-2.0/").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * SPDX-License-Identifier: EPL-2.0").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * Contributors:").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *    Obeo - initial API and implementation").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" */").append(System.lineSeparator()); //$NON-NLS-1$
-        return builder;
-    }
-
-    /**
-     * Returns the given word with the first character in upper case.
-     * 
-     * @param word
-     *            The word
-     * @return The given word with the first character in upper case
-     */
-    private static String toUpperFirst(String word) {
-        return word.substring(0, 1).toUpperCase() + word.substring(1);
-    }
-
-    /**
-     * Returns the given word with the first character in lower case.
-     * 
-     * @param word
-     *            The word
-     * @return The given word with the first character in lower case
-     */
-    private static String toLowerFirst(String word) {
-        return word.substring(0, 1).toLowerCase() + word.substring(1);
-    }
-
-    /**
-     * Writes the file at the given location with the given content.
-     * 
-     * @param outputFilePath
-     *            The file location
-     * @param builder
-     *            The content
-     * @param force
-     *            <code>true</code> to indicate that we should overwrite the existing file, if any, <code>false</code>
-     *            otherwise
-     */
-    private static void writeSourceFile(Path outputFilePath, StringBuilder builder, boolean force) {
-        File parentFolder = outputFilePath.toFile().getParentFile();
-        if (!parentFolder.exists()) {
-            parentFolder.mkdirs();
-        }
-        if (!outputFilePath.toFile().exists() || force) {
-            try {
-                Files.write(outputFilePath, builder.toString().getBytes());
-            } catch (IOException e) {
-                // CHECKSTYLE:OFF
-                e.printStackTrace();
-                // CHECKSTYLE:ON
-            }
-        }
-    }
-
-    /**
-     * Generates the adapter factory for the given EPackage in the given output folder.
-     * 
-     * @param outputFolderPath
-     *            The path of the output folder
-     * @param ePackage
-     *            The EPackage
-     */
-    private static void generateAdapterFactory(Path outputFolderPath, EPackage ePackage) {
-        StringBuilder builder = GapPatternGenerator.appendCopyright(new StringBuilder());
-
-        builder.append("package org.eclipse.sirius.workflow.provider;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("import org.eclipse.emf.common.notify.Adapter;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("/**").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * Subclass used to not have to modify the generated code.").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * @author ").append(System.getProperty("user.name")).append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-        builder.append(" */").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("public class WorkflowItemProviderAdapterFactorySpec extends WorkflowItemProviderAdapterFactory {").append(System.lineSeparator()); //$NON-NLS-1$
-
-        for (EClassifier eClassifier : ePackage.getEClassifiers()) {
-            if (eClassifier instanceof EClass && !((EClass) eClassifier).isAbstract() && !((EClass) eClassifier).isInterface()) {
-                builder.append(System.lineSeparator());
-                builder.append("    @Override").append(System.lineSeparator()); //$NON-NLS-1$
-                builder.append("    public Adapter create" + GapPatternGenerator.toUpperFirst(eClassifier.getName()) + "Adapter() {").append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-                builder.append("        if (" + GapPatternGenerator.toLowerFirst(eClassifier.getName()) + "ItemProvider == null) {").append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-                builder.append("            " + GapPatternGenerator.toLowerFirst(eClassifier.getName()) + "ItemProvider = new " + GapPatternGenerator.toUpperFirst(eClassifier.getName()) //$NON-NLS-1$ //$NON-NLS-2$
-                        + "ItemProviderSpec(this);") //$NON-NLS-1$
-                        .append(System.lineSeparator());
-                builder.append("        }").append(System.lineSeparator()); //$NON-NLS-1$
-                builder.append(System.lineSeparator());
-                builder.append("        return " + GapPatternGenerator.toLowerFirst(eClassifier.getName()) + "ItemProvider;").append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-                builder.append("    }").append(System.lineSeparator()); //$NON-NLS-1$
-            }
-        }
-
-        builder.append("}").append(System.lineSeparator()); //$NON-NLS-1$
-
-        String className = GapPatternGenerator.toUpperFirst(ePackage.getName()) + "ItemProviderAdapterFactorySpec.java"; //$NON-NLS-1$
-        Path outputFilePath = outputFolderPath.resolve(className);
-
-        GapPatternGenerator.writeSourceFile(outputFilePath, builder, true);
-    }
-
-    /**
-     * Generates the description child creation extender for the given EPackage in the given output folder.
-     * 
-     * @param outputFolderPath
-     *            The path of the output folder
-     * @param ePackage
-     *            The EPackage
-     */
-    private static void generateDescriptionChildCreationExtender(Path outputFolderPath, EPackage ePackage) {
-        StringBuilder builder = GapPatternGenerator.appendCopyright(new StringBuilder());
-        builder.append("package org.eclipse.sirius.workflow.provider;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("import org.eclipse.sirius.workflow.provider.WorkflowItemProviderAdapterFactory.DescriptionChildCreationExtender;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("/**").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * Subclass used to not have to modify the generated code.").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * @author ").append(System.getProperty("user.name")).append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-        builder.append(" */").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("public class DescriptionChildCreationExtenderSpec extends DescriptionChildCreationExtender {") //$NON-NLS-1$
-                .append(System.lineSeparator());
-        builder.append("}").append(System.lineSeparator()); //$NON-NLS-1$
-
-        String className = "DescriptionChildCreationExtenderSpec.java"; //$NON-NLS-1$
-        Path outputFilePath = outputFolderPath.resolve(className);
-
-        GapPatternGenerator.writeSourceFile(outputFilePath, builder, false);
-    }
-
-    /**
-     * Generates the item provider for the given EClass in the given output folder.
-     * 
-     * @param outputFolderPath
-     *            The path of the output folder
-     * @param eClass
-     *            The EClass
-     */
-    private static void generateItemProvider(Path outputFolderPath, EClass eClass) {
-        StringBuilder builder = GapPatternGenerator.appendCopyright(new StringBuilder());
-        builder.append("package org.eclipse.sirius.workflow.provider;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("import org.eclipse.emf.common.notify.AdapterFactory;").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("/**").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * Subclass used to not have to modify the generated code.").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" * @author sbegaudeau").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(" */").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("public class " + GapPatternGenerator.toUpperFirst(eClass.getName()) + "ItemProviderSpec extends " + GapPatternGenerator.toUpperFirst(eClass.getName()) + "ItemProvider {") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                .append(System.lineSeparator());
-        builder.append(System.lineSeparator());
-        builder.append("    /**").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("     * The constructor.").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("     *").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("     * @param adapterFactory").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("     *            The adapter factory").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("     */").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("    public " + GapPatternGenerator.toUpperFirst(eClass.getName()) + "ItemProviderSpec(AdapterFactory adapterFactory) {").append(System.lineSeparator()); //$NON-NLS-1$ //$NON-NLS-2$
-        builder.append("        super(adapterFactory);").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append("    }").append(System.lineSeparator()); //$NON-NLS-1$
-        builder.append(System.lineSeparator());
-        builder.append("}").append(System.lineSeparator()); //$NON-NLS-1$
-
-        String className = GapPatternGenerator.toUpperFirst(eClass.getName()) + "ItemProviderSpec.java"; //$NON-NLS-1$
-        Path outputFilePath = outputFolderPath.resolve(className);
-
-        GapPatternGenerator.writeSourceFile(outputFilePath, builder, false);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProviderSpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProviderSpec.java
deleted file mode 100644
index f5ac308..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/ActivityDescriptionItemProviderSpec.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.StyledString;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class ActivityDescriptionItemProviderSpec extends ActivityDescriptionItemProvider {
-
-    /**
-     * The constructor.
-     *
-     * @param adapterFactory
-     *            The adapter factory
-     */
-    public ActivityDescriptionItemProviderSpec(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    @Override
-    public String getText(Object object) {
-        Object styledText = this.getStyledText(object);
-        if (styledText instanceof StyledString) {
-            return ((StyledString) styledText).getString();
-        }
-        return super.getText(object);
-    }
-
-    @Override
-    public Object getStyledText(Object object) {
-        return Utils.computeLabel(this, object, "_UI_ActivityDescription_type"); //$NON-NLS-1$
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/DescriptionChildCreationExtenderSpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/DescriptionChildCreationExtenderSpec.java
deleted file mode 100644
index 6ce9ab8..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/DescriptionChildCreationExtenderSpec.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.sirius.workflow.provider.WorkflowItemProviderAdapterFactory.DescriptionChildCreationExtender;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class DescriptionChildCreationExtenderSpec extends DescriptionChildCreationExtender {
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/PageDescriptionItemProviderSpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/PageDescriptionItemProviderSpec.java
deleted file mode 100644
index b5a5930..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/PageDescriptionItemProviderSpec.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.StyledString;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class PageDescriptionItemProviderSpec extends PageDescriptionItemProvider {
-
-    /**
-     * The constructor.
-     *
-     * @param adapterFactory
-     *            The adapter factory
-     */
-    public PageDescriptionItemProviderSpec(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    @Override
-    public String getText(Object object) {
-        Object styledText = this.getStyledText(object);
-        if (styledText instanceof StyledString) {
-            return ((StyledString) styledText).getString();
-        }
-        return super.getText(object);
-    }
-
-    @Override
-    public Object getStyledText(Object object) {
-        return Utils.computeLabel(this, object, "_UI_PageDescription_type"); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProviderSpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProviderSpec.java
deleted file mode 100644
index 213a314..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/SectionDescriptionItemProviderSpec.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.provider.StyledString;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class SectionDescriptionItemProviderSpec extends SectionDescriptionItemProvider {
-
-    /**
-     * The constructor.
-     *
-     * @param adapterFactory
-     *            The adapter factory
-     */
-    public SectionDescriptionItemProviderSpec(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    @Override
-    public String getText(Object object) {
-        Object styledText = this.getStyledText(object);
-        if (styledText instanceof StyledString) {
-            return ((StyledString) styledText).getString();
-        }
-        return super.getText(object);
-    }
-
-    @Override
-    public Object getStyledText(Object object) {
-        return Utils.computeLabel(this, object, "_UI_SectionDescription_type"); //$NON-NLS-1$
-    }
-
-    @Override
-    protected CommandParameter createChildParameter(Object feature, Object child) {
-        Utils.addNoopNavigationOperations(child);
-        return super.createChildParameter(feature, child);
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/Utils.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/Utils.java
deleted file mode 100644
index 549ddde..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/Utils.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * Copyright (c) 2017, 2020 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import java.util.Optional;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.edit.provider.IItemFontProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.StyledString;
-import org.eclipse.emf.edit.provider.StyledString.Style;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.viewpoint.description.tool.ChangeContext;
-import org.eclipse.sirius.viewpoint.description.tool.InitialOperation;
-import org.eclipse.sirius.viewpoint.description.tool.ToolFactory;
-import org.eclipse.sirius.viewpoint.description.tool.ToolPackage;
-
-/**
- * Utility class used to store common operations for all the item providers.
- * 
- * @author sbegaudeau
- */
-public final class Utils {
-
-    /**
-     * The style used by keywords.
-     */
-    public static final Style KEYWORD_STYLE = Style.newBuilder().setForegroundColor(URI.createURI("color://rgb/125/9/82")).setFont(IItemFontProvider.BOLD_FONT).toStyle(); //$NON-NLS-1$
-
-    /**
-     * The constructor.
-     */
-    private Utils() {
-        // prevent instantiation
-    }
-
-    /**
-     * Computes the label of the given object.
-     * 
-     * @param itemProviderAdapter
-     *            The item provider adapter of the object
-     * @param object
-     *            The object
-     * @param defaultLabelKey
-     *            The key of the default label
-     * @return The label or <code>null</code> if it is undefined
-     */
-    public static StyledString computeLabel(ItemProviderAdapter itemProviderAdapter, Object object, String defaultLabelKey) {
-        StyledString styledString = new StyledString();
-        if (object instanceof IdentifiedElement) {
-            IdentifiedElement identifiedElement = (IdentifiedElement) object;
-            styledString = Utils.computeIdentifiedElementLabel(itemProviderAdapter, identifiedElement, defaultLabelKey);
-        }
-        return styledString;
-    }
-
-    /**
-     * Computes the label of the given identified element.
-     * 
-     * @param itemProviderAdapter
-     *            The {@link ItemProviderAdapter}
-     * @param identifiedElement
-     *            The Identified Element
-     * @param defaultLabelKey
-     *            The default label key
-     * @return The label of the element
-     */
-    private static StyledString computeIdentifiedElementLabel(ItemProviderAdapter itemProviderAdapter, IdentifiedElement identifiedElement, String defaultLabelKey) {
-        String label = Optional.ofNullable(identifiedElement.getLabel()).orElse(""); //$NON-NLS-1$
-        if (label.isEmpty()) {
-            label = Optional.ofNullable(identifiedElement.getName()).filter(id -> !id.isEmpty()).orElseGet(() -> itemProviderAdapter.getString(defaultLabelKey));
-        }
-        StyledString styledString = new StyledString(label);
-
-        EStructuralFeature eStructuralFeature = identifiedElement.eClass().getEStructuralFeature("extends"); //$NON-NLS-1$
-        if (eStructuralFeature instanceof EReference && identifiedElement.eIsSet(eStructuralFeature)) {
-            Object extendsValue = identifiedElement.eGet(eStructuralFeature);
-            styledString.append(" extends ", KEYWORD_STYLE); //$NON-NLS-1$
-            styledString.append(Utils.computeSimpleLabel(itemProviderAdapter, extendsValue));
-        }
-
-        return styledString;
-    }
-
-    /**
-     * Returns the label of the given object.
-     * 
-     * @param itemProviderAdapter
-     *            The Item Provider Adapter
-     * @param object
-     *            The object
-     * @return Its Label
-     */
-    private static String computeSimpleLabel(ItemProviderAdapter itemProviderAdapter, Object object) {
-        if (object instanceof IdentifiedElement) {
-            IdentifiedElement identifiedElement = (IdentifiedElement) object;
-            String label = Optional.ofNullable(identifiedElement.getLabel()).orElse(""); //$NON-NLS-1$
-            if (label.isEmpty()) {
-                label = Optional.ofNullable(identifiedElement.getName()).filter(id -> !id.isEmpty())
-                        .orElseGet(() -> itemProviderAdapter.getString("_UI_" + identifiedElement.eClass().getName() + "_type")); //$NON-NLS-1$ //$NON-NLS-2$
-            }
-            return label;
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Add default "Begin" operations with a no-op navigation to the specific element.
-     *
-     * @param child
-     *            a newly created child.
-     */
-    public static void addNoopNavigationOperations(Object child) {
-        if (child instanceof EObject) {
-            EObject obj = (EObject) child;
-            for (EReference ref : obj.eClass().getEAllReferences()) {
-                if (ref.isContainment() && ref.getEReferenceType() == ToolPackage.Literals.INITIAL_OPERATION) {
-                    InitialOperation begin = ToolFactory.eINSTANCE.createInitialOperation();
-                    ChangeContext noop = ToolFactory.eINSTANCE.createChangeContext();
-                    noop.setBrowseExpression("var:self"); //$NON-NLS-1$
-                    begin.setFirstModelOperations(noop);
-                    obj.eSet(ref, begin);
-                }
-            }
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProviderSpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProviderSpec.java
deleted file mode 100644
index 3c88ddf..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowDescriptionItemProviderSpec.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.StyledString;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class WorkflowDescriptionItemProviderSpec extends WorkflowDescriptionItemProvider {
-
-    /**
-     * The constructor.
-     *
-     * @param adapterFactory
-     *            The adapter factory
-     */
-    public WorkflowDescriptionItemProviderSpec(AdapterFactory adapterFactory) {
-        super(adapterFactory);
-    }
-
-    @Override
-    public String getText(Object object) {
-        Object styledText = this.getStyledText(object);
-        if (styledText instanceof StyledString) {
-            return ((StyledString) styledText).getString();
-        }
-        return super.getText(object);
-    }
-
-    @Override
-    public Object getStyledText(Object object) {
-        return Utils.computeLabel(this, object, "_UI_WorkflowDescription_type"); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactorySpec.java b/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactorySpec.java
deleted file mode 100644
index a49b9dd..0000000
--- a/plugins/org.eclipse.sirius.workflow.edit/src-spec/org/eclipse/sirius/workflow/provider/WorkflowItemProviderAdapterFactorySpec.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.provider;
-
-import org.eclipse.emf.common.notify.Adapter;
-
-/**
- * Subclass used to not have to modify the generated code.
- *
- * @author sbegaudeau
- */
-public class WorkflowItemProviderAdapterFactorySpec extends WorkflowItemProviderAdapterFactory {
-
-    @Override
-    public Adapter createWorkflowDescriptionAdapter() {
-        if (workflowDescriptionItemProvider == null) {
-            workflowDescriptionItemProvider = new WorkflowDescriptionItemProviderSpec(this);
-        }
-
-        return workflowDescriptionItemProvider;
-    }
-
-    @Override
-    public Adapter createPageDescriptionAdapter() {
-        if (pageDescriptionItemProvider == null) {
-            pageDescriptionItemProvider = new PageDescriptionItemProviderSpec(this);
-        }
-
-        return pageDescriptionItemProvider;
-    }
-
-    @Override
-    public Adapter createSectionDescriptionAdapter() {
-        if (sectionDescriptionItemProvider == null) {
-            sectionDescriptionItemProvider = new SectionDescriptionItemProviderSpec(this);
-        }
-
-        return sectionDescriptionItemProvider;
-    }
-
-    @Override
-    public Adapter createActivityDescriptionAdapter() {
-        if (activityDescriptionItemProvider == null) {
-            activityDescriptionItemProvider = new ActivityDescriptionItemProviderSpec(this);
-        }
-
-        return activityDescriptionItemProvider;
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.model/.checkstyle b/plugins/org.eclipse.sirius.workflow.model/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.workflow.model/.classpath b/plugins/org.eclipse.sirius.workflow.model/.classpath
deleted file mode 100644
index 858bac4..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.workflow.model/.project b/plugins/org.eclipse.sirius.workflow.model/.project
deleted file mode 100644
index 1f7f0de..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.workflow.model</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/fr.obeo.baseliner.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/fr.obeo.baseliner.prefs
deleted file mode 100644
index edbf927..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/fr.obeo.baseliner.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-baselineSource=platform\:/resource/org.eclipse.sirius.targets/baseline.target
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 97c066b..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,354 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.model/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.workflow.model/META-INF/MANIFEST.MF
deleted file mode 100644
index fb8734e..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.sirius.workflow.model;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Eclipse-LazyStart: true
-Automatic-Module-Name: org.eclipse.sirius.workflow.model
-Export-Package: org.eclipse.sirius.workflow;version="6.0.0",
- org.eclipse.sirius.workflow.impl;version="6.0.0",
- org.eclipse.sirius.workflow.util;version="6.0.0"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
- org.eclipse.emf.ecore;bundle-version="2.12.0";visibility:=reexport,
- org.eclipse.sirius;bundle-version="6.0.0";visibility:=reexport
-Import-Package: org.eclipse.sirius.viewpoint;version="3.2.0",
- org.eclipse.sirius.viewpoint.description;version="4.0.0",
- org.eclipse.sirius.viewpoint.description.impl;version="3.1.0",
- org.eclipse.sirius.viewpoint.description.tool;version="4.0.0"
diff --git a/plugins/org.eclipse.sirius.workflow.model/about.html b/plugins/org.eclipse.sirius.workflow.model/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.workflow.model/build.properties b/plugins/org.eclipse.sirius.workflow.model/build.properties
deleted file mode 100644
index 5fae891..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#  Copyright (c) 2018 Obeo.
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#  Contributors:
-#     Obeo - initial API and implementation
-# 
-
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html
-jars.compile.order = .
-source.. = src-gen/
-output.. = bin/
-javacWarnings.. = none
-javacDefaultEncoding.. = US-ASCII
-javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.workflow.model/model/workflow.ecore b/plugins/org.eclipse.sirius.workflow.model/model/workflow.ecore
deleted file mode 100644
index d39cf9f..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/model/workflow.ecore
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="workflow" nsURI="http://www.eclipse.org/sirius/workflow/1.0.0"
-    nsPrefix="workflow">
-  <eClassifiers xsi:type="ecore:EClass" name="WorkflowDescription" eSuperTypes="../../org.eclipse.sirius/model/viewpoint.ecore#//description/Extension ../../org.eclipse.sirius/model/viewpoint.ecore#//description/IdentifiedElement ../../org.eclipse.sirius/model/viewpoint.ecore#//description/DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="pages" upperBound="-1"
-        eType="#//PageDescription" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PageDescription" eSuperTypes="../../org.eclipse.sirius/model/viewpoint.ecore#//description/IdentifiedElement ../../org.eclipse.sirius/model/viewpoint.ecore#//description/DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleExpression" lowerBound="1"
-        eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/InterpretedExpression"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imagePath" eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/ImagePath"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionExpression"
-        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/InterpretedExpression"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="sections" upperBound="-1"
-        eType="#//SectionDescription" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SectionDescription" eSuperTypes="../../org.eclipse.sirius/model/viewpoint.ecore#//description/IdentifiedElement ../../org.eclipse.sirius/model/viewpoint.ecore#//description/DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleExpression" lowerBound="1"
-        eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/InterpretedExpression"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imagePath" eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/ImagePath"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descriptionExpression"
-        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/InterpretedExpression"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="activities" upperBound="-1"
-        eType="#//ActivityDescription" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ActivityDescription" eSuperTypes="../../org.eclipse.sirius/model/viewpoint.ecore#//description/IdentifiedElement ../../org.eclipse.sirius/model/viewpoint.ecore#//description/DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelExpression" lowerBound="1"
-        eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/InterpretedExpression"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imagePath" eType="ecore:EDataType ../../org.eclipse.sirius/model/viewpoint.ecore#//description/ImagePath"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="operation" lowerBound="1"
-        eType="ecore:EClass ../../org.eclipse.sirius/model/viewpoint.ecore#//description/tool/InitialOperation"
-        containment="true"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.workflow.model/model/workflow.genmodel b/plugins/org.eclipse.sirius.workflow.model/model/workflow.genmodel
deleted file mode 100644
index b60455a..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/model/workflow.genmodel
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2018 Obeo.&#xA;This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v2.0&#xA;which accompanies this distribution, and is available at&#xA;https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;Contributors:&#xA;   Obeo - initial API and implementation"
-    modelDirectory="/org.eclipse.sirius.workflow.model/src-gen" creationIcons="false"
-    editDirectory="/org.eclipse.sirius.workflow.edit/src-gen" editorDirectory="" modelPluginID="org.eclipse.sirius.workflow.model"
-    modelName="Workflow" editPluginClass="org.eclipse.sirius.workflow.edit.WorkflowEditPlugin"
-    editorPluginClass="" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    codeFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore"
-    containmentProxies="true" complianceLevel="8.0" copyrightFields="false" editPluginID="org.eclipse.sirius.workflow.edit"
-    editorPluginID="org.eclipse.sirius.workflow.editor" runtimeVersion="2.3" language=""
-    usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.sirius/model/viewpoint.genmodel#//viewpoint"
-    importOrganizing="true" styleProviders="true" cleanup="true">
-  <foreignModel>workflow.ecore</foreignModel>
-  <genPackages prefix="Workflow" basePackage="org.eclipse.sirius" disposableProviderFactory="true"
-      extensibleProviderFactory="true" childCreationExtenders="true" ecorePackage="workflow.ecore#/">
-    <genClasses ecoreClass="workflow.ecore#//WorkflowDescription" labelFeature="../../org.eclipse.sirius/model/viewpoint.genmodel#//viewpoint/description/IdentifiedElement/label">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workflow.ecore#//WorkflowDescription/pages"/>
-    </genClasses>
-    <genClasses ecoreClass="workflow.ecore#//PageDescription" labelFeature="#//workflow/PageDescription/titleExpression">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//PageDescription/titleExpression"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//PageDescription/imagePath"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//PageDescription/descriptionExpression"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workflow.ecore#//PageDescription/sections"/>
-    </genClasses>
-    <genClasses ecoreClass="workflow.ecore#//SectionDescription" labelFeature="#//workflow/SectionDescription/titleExpression">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//SectionDescription/titleExpression"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//SectionDescription/imagePath"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//SectionDescription/descriptionExpression"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workflow.ecore#//SectionDescription/activities"/>
-    </genClasses>
-    <genClasses ecoreClass="workflow.ecore#//ActivityDescription" labelFeature="#//workflow/ActivityDescription/labelExpression">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//ActivityDescription/labelExpression"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workflow.ecore#//ActivityDescription/imagePath"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workflow.ecore#//ActivityDescription/operation"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/plugins/org.eclipse.sirius.workflow.model/plugin.properties b/plugins/org.eclipse.sirius.workflow.model/plugin.properties
deleted file mode 100644
index 7dc433d..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-pluginName = Sirius Workflow Model
-providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.sirius.workflow.model/plugin.xml b/plugins/org.eclipse.sirius.workflow.model/plugin.xml
deleted file mode 100644
index 28055fa..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-  Copyright (c) 2018 Obeo.
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License v2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
- 
-  Contributors:
-     Obeo - initial API and implementation
- 
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated workflow -->
-      <package
-            uri="http://www.eclipse.org/sirius/workflow/1.0.0"
-            class="org.eclipse.sirius.workflow.WorkflowPackage"
-            genModel="model/workflow.genmodel"/>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.sirius.workflow.model/pom.xml b/plugins/org.eclipse.sirius.workflow.model/pom.xml
deleted file mode 100644
index 187ec7d..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-  Copyright (c) 2015, 2016 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.workflow.model</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/ActivityDescription.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/ActivityDescription.java
deleted file mode 100644
index 85af4d0..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/ActivityDescription.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.viewpoint.description.tool.InitialOperation;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Activity Description</b></em>'. <!--
- * end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.ActivityDescription#getLabelExpression <em>Label Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.ActivityDescription#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.ActivityDescription#getOperation <em>Operation</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage#getActivityDescription()
- * @model
- * @generated
- */
-public interface ActivityDescription extends IdentifiedElement, DocumentedElement {
-    /**
-     * Returns the value of the '<em><b>Label Expression</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Label Expression</em>' attribute isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Label Expression</em>' attribute.
-     * @see #setLabelExpression(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getActivityDescription_LabelExpression()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.InterpretedExpression" required="true"
-     * @generated
-     */
-    String getLabelExpression();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.ActivityDescription#getLabelExpression <em>Label
-     * Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Label Expression</em>' attribute.
-     * @see #getLabelExpression()
-     * @generated
-     */
-    void setLabelExpression(String value);
-
-    /**
-     * Returns the value of the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Image Path</em>' attribute isn't clear, there really should be more of a description
-     * here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Image Path</em>' attribute.
-     * @see #setImagePath(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getActivityDescription_ImagePath()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.ImagePath"
-     * @generated
-     */
-    String getImagePath();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.ActivityDescription#getImagePath <em>Image Path</em>}'
-     * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Image Path</em>' attribute.
-     * @see #getImagePath()
-     * @generated
-     */
-    void setImagePath(String value);
-
-    /**
-     * Returns the value of the '<em><b>Operation</b></em>' containment reference. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Operation</em>' containment reference isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Operation</em>' containment reference.
-     * @see #setOperation(InitialOperation)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getActivityDescription_Operation()
-     * @model containment="true" resolveProxies="true" required="true"
-     * @generated
-     */
-    InitialOperation getOperation();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.ActivityDescription#getOperation <em>Operation</em>}'
-     * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Operation</em>' containment reference.
-     * @see #getOperation()
-     * @generated
-     */
-    void setOperation(InitialOperation value);
-
-} // ActivityDescription
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/PageDescription.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/PageDescription.java
deleted file mode 100644
index ae5535f..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/PageDescription.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Page Description</b></em>'. <!-- end-user-doc
- * -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.PageDescription#getTitleExpression <em>Title Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.PageDescription#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.PageDescription#getDescriptionExpression <em>Description Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.PageDescription#getSections <em>Sections</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage#getPageDescription()
- * @model
- * @generated
- */
-public interface PageDescription extends IdentifiedElement, DocumentedElement {
-    /**
-     * Returns the value of the '<em><b>Title Expression</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Title Expression</em>' attribute isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Title Expression</em>' attribute.
-     * @see #setTitleExpression(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getPageDescription_TitleExpression()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.InterpretedExpression" required="true"
-     * @generated
-     */
-    String getTitleExpression();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.PageDescription#getTitleExpression <em>Title
-     * Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Title Expression</em>' attribute.
-     * @see #getTitleExpression()
-     * @generated
-     */
-    void setTitleExpression(String value);
-
-    /**
-     * Returns the value of the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Image Path</em>' attribute isn't clear, there really should be more of a description
-     * here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Image Path</em>' attribute.
-     * @see #setImagePath(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getPageDescription_ImagePath()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.ImagePath"
-     * @generated
-     */
-    String getImagePath();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.PageDescription#getImagePath <em>Image Path</em>}'
-     * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Image Path</em>' attribute.
-     * @see #getImagePath()
-     * @generated
-     */
-    void setImagePath(String value);
-
-    /**
-     * Returns the value of the '<em><b>Description Expression</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Description Expression</em>' attribute isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Description Expression</em>' attribute.
-     * @see #setDescriptionExpression(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getPageDescription_DescriptionExpression()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.InterpretedExpression" required="true"
-     * @generated
-     */
-    String getDescriptionExpression();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.PageDescription#getDescriptionExpression
-     * <em>Description Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Description Expression</em>' attribute.
-     * @see #getDescriptionExpression()
-     * @generated
-     */
-    void setDescriptionExpression(String value);
-
-    /**
-     * Returns the value of the '<em><b>Sections</b></em>' containment reference list. The list contents are of type
-     * {@link org.eclipse.sirius.workflow.SectionDescription}. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Sections</em>' containment reference list isn't clear, there really should be more of
-     * a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Sections</em>' containment reference list.
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getPageDescription_Sections()
-     * @model containment="true" resolveProxies="true"
-     * @generated
-     */
-    EList<SectionDescription> getSections();
-
-} // PageDescription
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/SectionDescription.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/SectionDescription.java
deleted file mode 100644
index acc4cbe..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/SectionDescription.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Section Description</b></em>'. <!-- end-user-doc
- * -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.SectionDescription#getTitleExpression <em>Title Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.SectionDescription#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.SectionDescription#getDescriptionExpression <em>Description
- * Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.SectionDescription#getActivities <em>Activities</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage#getSectionDescription()
- * @model
- * @generated
- */
-public interface SectionDescription extends IdentifiedElement, DocumentedElement {
-    /**
-     * Returns the value of the '<em><b>Title Expression</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Title Expression</em>' attribute isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Title Expression</em>' attribute.
-     * @see #setTitleExpression(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getSectionDescription_TitleExpression()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.InterpretedExpression" required="true"
-     * @generated
-     */
-    String getTitleExpression();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.SectionDescription#getTitleExpression <em>Title
-     * Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Title Expression</em>' attribute.
-     * @see #getTitleExpression()
-     * @generated
-     */
-    void setTitleExpression(String value);
-
-    /**
-     * Returns the value of the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Image Path</em>' attribute isn't clear, there really should be more of a description
-     * here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Image Path</em>' attribute.
-     * @see #setImagePath(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getSectionDescription_ImagePath()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.ImagePath"
-     * @generated
-     */
-    String getImagePath();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.SectionDescription#getImagePath <em>Image Path</em>}'
-     * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Image Path</em>' attribute.
-     * @see #getImagePath()
-     * @generated
-     */
-    void setImagePath(String value);
-
-    /**
-     * Returns the value of the '<em><b>Description Expression</b></em>' attribute. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Description Expression</em>' attribute isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Description Expression</em>' attribute.
-     * @see #setDescriptionExpression(String)
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getSectionDescription_DescriptionExpression()
-     * @model dataType="org.eclipse.sirius.viewpoint.description.InterpretedExpression" required="true"
-     * @generated
-     */
-    String getDescriptionExpression();
-
-    /**
-     * Sets the value of the '{@link org.eclipse.sirius.workflow.SectionDescription#getDescriptionExpression
-     * <em>Description Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param value
-     *            the new value of the '<em>Description Expression</em>' attribute.
-     * @see #getDescriptionExpression()
-     * @generated
-     */
-    void setDescriptionExpression(String value);
-
-    /**
-     * Returns the value of the '<em><b>Activities</b></em>' containment reference list. The list contents are of type
-     * {@link org.eclipse.sirius.workflow.ActivityDescription}. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Activities</em>' containment reference list isn't clear, there really should be more
-     * of a description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Activities</em>' containment reference list.
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getSectionDescription_Activities()
-     * @model containment="true" resolveProxies="true"
-     * @generated
-     */
-    EList<ActivityDescription> getActivities();
-
-} // SectionDescription
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowDescription.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowDescription.java
deleted file mode 100644
index a042aff..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowDescription.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.Extension;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Description</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.WorkflowDescription#getPages <em>Pages</em>}</li>
- * </ul>
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage#getWorkflowDescription()
- * @model
- * @generated
- */
-public interface WorkflowDescription extends Extension, IdentifiedElement, DocumentedElement {
-    /**
-     * Returns the value of the '<em><b>Pages</b></em>' containment reference list. The list contents are of type
-     * {@link org.eclipse.sirius.workflow.PageDescription}. <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Pages</em>' containment reference list isn't clear, there really should be more of a
-     * description here...
-     * </p>
-     * <!-- end-user-doc -->
-     *
-     * @return the value of the '<em>Pages</em>' containment reference list.
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#getWorkflowDescription_Pages()
-     * @model containment="true" resolveProxies="true"
-     * @generated
-     */
-    EList<PageDescription> getPages();
-
-} // WorkflowDescription
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowFactory.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowFactory.java
deleted file mode 100644
index 6442761..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc --> The <b>Factory</b> for the model. It provides a create method for each non-abstract class of
- * the model. <!-- end-user-doc -->
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage
- * @generated
- */
-public interface WorkflowFactory extends EFactory {
-    /**
-     * The singleton instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    WorkflowFactory eINSTANCE = org.eclipse.sirius.workflow.impl.WorkflowFactoryImpl.init();
-
-    /**
-     * Returns a new object of class '<em>Description</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return a new object of class '<em>Description</em>'.
-     * @generated
-     */
-    WorkflowDescription createWorkflowDescription();
-
-    /**
-     * Returns a new object of class '<em>Page Description</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return a new object of class '<em>Page Description</em>'.
-     * @generated
-     */
-    PageDescription createPageDescription();
-
-    /**
-     * Returns a new object of class '<em>Section Description</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return a new object of class '<em>Section Description</em>'.
-     * @generated
-     */
-    SectionDescription createSectionDescription();
-
-    /**
-     * Returns a new object of class '<em>Activity Description</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return a new object of class '<em>Activity Description</em>'.
-     * @generated
-     */
-    ActivityDescription createActivityDescription();
-
-    /**
-     * Returns the package supported by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the package supported by this factory.
-     * @generated
-     */
-    WorkflowPackage getWorkflowPackage();
-
-} // WorkflowFactory
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowPackage.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowPackage.java
deleted file mode 100644
index b2b86fc..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/WorkflowPackage.java
+++ /dev/null
@@ -1,679 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-
-/**
- * <!-- begin-user-doc --> The <b>Package</b> for the model. It contains accessors for the meta objects to represent
- * <ul>
- * <li>each class,</li>
- * <li>each feature of each class,</li>
- * <li>each enum,</li>
- * <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- *
- * @see org.eclipse.sirius.workflow.WorkflowFactory
- * @model kind="package"
- * @generated
- */
-public interface WorkflowPackage extends EPackage {
-    /**
-     * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    String eNAME = "workflow"; //$NON-NLS-1$
-
-    /**
-     * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    String eNS_URI = "http://www.eclipse.org/sirius/workflow/1.0.0"; //$NON-NLS-1$
-
-    /**
-     * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    String eNS_PREFIX = "workflow"; //$NON-NLS-1$
-
-    /**
-     * The singleton instance of the package. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    WorkflowPackage eINSTANCE = org.eclipse.sirius.workflow.impl.WorkflowPackageImpl.init();
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl
-     * <em>Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl
-     * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getWorkflowDescription()
-     * @generated
-     */
-    int WORKFLOW_DESCRIPTION = 0;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int WORKFLOW_DESCRIPTION__NAME = DescriptionPackage.EXTENSION_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int WORKFLOW_DESCRIPTION__LABEL = DescriptionPackage.EXTENSION_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Documentation</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int WORKFLOW_DESCRIPTION__DOCUMENTATION = DescriptionPackage.EXTENSION_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Pages</b></em>' containment reference list. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int WORKFLOW_DESCRIPTION__PAGES = DescriptionPackage.EXTENSION_FEATURE_COUNT + 3;
-
-    /**
-     * The number of structural features of the '<em>Description</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     * @ordered
-     */
-    int WORKFLOW_DESCRIPTION_FEATURE_COUNT = DescriptionPackage.EXTENSION_FEATURE_COUNT + 4;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl <em>Page
-     * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see org.eclipse.sirius.workflow.impl.PageDescriptionImpl
-     * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getPageDescription()
-     * @generated
-     */
-    int PAGE_DESCRIPTION = 1;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__NAME = DescriptionPackage.IDENTIFIED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__LABEL = DescriptionPackage.IDENTIFIED_ELEMENT__LABEL;
-
-    /**
-     * The feature id for the '<em><b>Documentation</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__DOCUMENTATION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Title Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__TITLE_EXPRESSION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__IMAGE_PATH = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Description Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 3;
-
-    /**
-     * The feature id for the '<em><b>Sections</b></em>' containment reference list. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION__SECTIONS = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 4;
-
-    /**
-     * The number of structural features of the '<em>Page Description</em>' class. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int PAGE_DESCRIPTION_FEATURE_COUNT = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 5;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl <em>Section
-     * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see org.eclipse.sirius.workflow.impl.SectionDescriptionImpl
-     * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getSectionDescription()
-     * @generated
-     */
-    int SECTION_DESCRIPTION = 2;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__NAME = DescriptionPackage.IDENTIFIED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__LABEL = DescriptionPackage.IDENTIFIED_ELEMENT__LABEL;
-
-    /**
-     * The feature id for the '<em><b>Documentation</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__DOCUMENTATION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Title Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__TITLE_EXPRESSION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__IMAGE_PATH = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Description Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 3;
-
-    /**
-     * The feature id for the '<em><b>Activities</b></em>' containment reference list. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION__ACTIVITIES = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 4;
-
-    /**
-     * The number of structural features of the '<em>Section Description</em>' class. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int SECTION_DESCRIPTION_FEATURE_COUNT = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 5;
-
-    /**
-     * The meta object id for the '{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl <em>Activity
-     * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl
-     * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getActivityDescription()
-     * @generated
-     */
-    int ACTIVITY_DESCRIPTION = 3;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__NAME = DescriptionPackage.IDENTIFIED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__LABEL = DescriptionPackage.IDENTIFIED_ELEMENT__LABEL;
-
-    /**
-     * The feature id for the '<em><b>Documentation</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__DOCUMENTATION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Label Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__LABEL_EXPRESSION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Image Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__IMAGE_PATH = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 2;
-
-    /**
-     * The feature id for the '<em><b>Operation</b></em>' containment reference. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION__OPERATION = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 3;
-
-    /**
-     * The number of structural features of the '<em>Activity Description</em>' class. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @generated
-     * @ordered
-     */
-    int ACTIVITY_DESCRIPTION_FEATURE_COUNT = DescriptionPackage.IDENTIFIED_ELEMENT_FEATURE_COUNT + 4;
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.workflow.WorkflowDescription <em>Description</em>}'.
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for class '<em>Description</em>'.
-     * @see org.eclipse.sirius.workflow.WorkflowDescription
-     * @generated
-     */
-    EClass getWorkflowDescription();
-
-    /**
-     * Returns the meta object for the containment reference list
-     * '{@link org.eclipse.sirius.workflow.WorkflowDescription#getPages <em>Pages</em>}'. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @return the meta object for the containment reference list '<em>Pages</em>'.
-     * @see org.eclipse.sirius.workflow.WorkflowDescription#getPages()
-     * @see #getWorkflowDescription()
-     * @generated
-     */
-    EReference getWorkflowDescription_Pages();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.workflow.PageDescription <em>Page
-     * Description</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for class '<em>Page Description</em>'.
-     * @see org.eclipse.sirius.workflow.PageDescription
-     * @generated
-     */
-    EClass getPageDescription();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.workflow.PageDescription#getTitleExpression
-     * <em>Title Expression</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Title Expression</em>'.
-     * @see org.eclipse.sirius.workflow.PageDescription#getTitleExpression()
-     * @see #getPageDescription()
-     * @generated
-     */
-    EAttribute getPageDescription_TitleExpression();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.workflow.PageDescription#getImagePath
-     * <em>Image Path</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Image Path</em>'.
-     * @see org.eclipse.sirius.workflow.PageDescription#getImagePath()
-     * @see #getPageDescription()
-     * @generated
-     */
-    EAttribute getPageDescription_ImagePath();
-
-    /**
-     * Returns the meta object for the attribute
-     * '{@link org.eclipse.sirius.workflow.PageDescription#getDescriptionExpression <em>Description Expression</em>}'.
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Description Expression</em>'.
-     * @see org.eclipse.sirius.workflow.PageDescription#getDescriptionExpression()
-     * @see #getPageDescription()
-     * @generated
-     */
-    EAttribute getPageDescription_DescriptionExpression();
-
-    /**
-     * Returns the meta object for the containment reference list
-     * '{@link org.eclipse.sirius.workflow.PageDescription#getSections <em>Sections</em>}'. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @return the meta object for the containment reference list '<em>Sections</em>'.
-     * @see org.eclipse.sirius.workflow.PageDescription#getSections()
-     * @see #getPageDescription()
-     * @generated
-     */
-    EReference getPageDescription_Sections();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.workflow.SectionDescription <em>Section
-     * Description</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for class '<em>Section Description</em>'.
-     * @see org.eclipse.sirius.workflow.SectionDescription
-     * @generated
-     */
-    EClass getSectionDescription();
-
-    /**
-     * Returns the meta object for the attribute
-     * '{@link org.eclipse.sirius.workflow.SectionDescription#getTitleExpression <em>Title Expression</em>}'. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Title Expression</em>'.
-     * @see org.eclipse.sirius.workflow.SectionDescription#getTitleExpression()
-     * @see #getSectionDescription()
-     * @generated
-     */
-    EAttribute getSectionDescription_TitleExpression();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.workflow.SectionDescription#getImagePath
-     * <em>Image Path</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Image Path</em>'.
-     * @see org.eclipse.sirius.workflow.SectionDescription#getImagePath()
-     * @see #getSectionDescription()
-     * @generated
-     */
-    EAttribute getSectionDescription_ImagePath();
-
-    /**
-     * Returns the meta object for the attribute
-     * '{@link org.eclipse.sirius.workflow.SectionDescription#getDescriptionExpression <em>Description
-     * Expression</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Description Expression</em>'.
-     * @see org.eclipse.sirius.workflow.SectionDescription#getDescriptionExpression()
-     * @see #getSectionDescription()
-     * @generated
-     */
-    EAttribute getSectionDescription_DescriptionExpression();
-
-    /**
-     * Returns the meta object for the containment reference list
-     * '{@link org.eclipse.sirius.workflow.SectionDescription#getActivities <em>Activities</em>}'. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the containment reference list '<em>Activities</em>'.
-     * @see org.eclipse.sirius.workflow.SectionDescription#getActivities()
-     * @see #getSectionDescription()
-     * @generated
-     */
-    EReference getSectionDescription_Activities();
-
-    /**
-     * Returns the meta object for class '{@link org.eclipse.sirius.workflow.ActivityDescription <em>Activity
-     * Description</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for class '<em>Activity Description</em>'.
-     * @see org.eclipse.sirius.workflow.ActivityDescription
-     * @generated
-     */
-    EClass getActivityDescription();
-
-    /**
-     * Returns the meta object for the attribute
-     * '{@link org.eclipse.sirius.workflow.ActivityDescription#getLabelExpression <em>Label Expression</em>}'. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Label Expression</em>'.
-     * @see org.eclipse.sirius.workflow.ActivityDescription#getLabelExpression()
-     * @see #getActivityDescription()
-     * @generated
-     */
-    EAttribute getActivityDescription_LabelExpression();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.eclipse.sirius.workflow.ActivityDescription#getImagePath
-     * <em>Image Path</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the attribute '<em>Image Path</em>'.
-     * @see org.eclipse.sirius.workflow.ActivityDescription#getImagePath()
-     * @see #getActivityDescription()
-     * @generated
-     */
-    EAttribute getActivityDescription_ImagePath();
-
-    /**
-     * Returns the meta object for the containment reference
-     * '{@link org.eclipse.sirius.workflow.ActivityDescription#getOperation <em>Operation</em>}'. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @return the meta object for the containment reference '<em>Operation</em>'.
-     * @see org.eclipse.sirius.workflow.ActivityDescription#getOperation()
-     * @see #getActivityDescription()
-     * @generated
-     */
-    EReference getActivityDescription_Operation();
-
-    /**
-     * Returns the factory that creates the instances of the model. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the factory that creates the instances of the model.
-     * @generated
-     */
-    WorkflowFactory getWorkflowFactory();
-
-    /**
-     * <!-- begin-user-doc --> Defines literals for the meta objects that represent
-     * <ul>
-     * <li>each class,</li>
-     * <li>each feature of each class,</li>
-     * <li>each enum,</li>
-     * <li>and each data type</li>
-     * </ul>
-     * <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    interface Literals {
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl
-         * <em>Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @see org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl
-         * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getWorkflowDescription()
-         * @generated
-         */
-        EClass WORKFLOW_DESCRIPTION = WorkflowPackage.eINSTANCE.getWorkflowDescription();
-
-        /**
-         * The meta object literal for the '<em><b>Pages</b></em>' containment reference list feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EReference WORKFLOW_DESCRIPTION__PAGES = WorkflowPackage.eINSTANCE.getWorkflowDescription_Pages();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl <em>Page
-         * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @see org.eclipse.sirius.workflow.impl.PageDescriptionImpl
-         * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getPageDescription()
-         * @generated
-         */
-        EClass PAGE_DESCRIPTION = WorkflowPackage.eINSTANCE.getPageDescription();
-
-        /**
-         * The meta object literal for the '<em><b>Title Expression</b></em>' attribute feature. <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute PAGE_DESCRIPTION__TITLE_EXPRESSION = WorkflowPackage.eINSTANCE.getPageDescription_TitleExpression();
-
-        /**
-         * The meta object literal for the '<em><b>Image Path</b></em>' attribute feature. <!-- begin-user-doc --> <!--
-         * end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute PAGE_DESCRIPTION__IMAGE_PATH = WorkflowPackage.eINSTANCE.getPageDescription_ImagePath();
-
-        /**
-         * The meta object literal for the '<em><b>Description Expression</b></em>' attribute feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION = WorkflowPackage.eINSTANCE.getPageDescription_DescriptionExpression();
-
-        /**
-         * The meta object literal for the '<em><b>Sections</b></em>' containment reference list feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EReference PAGE_DESCRIPTION__SECTIONS = WorkflowPackage.eINSTANCE.getPageDescription_Sections();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl <em>Section
-         * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @see org.eclipse.sirius.workflow.impl.SectionDescriptionImpl
-         * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getSectionDescription()
-         * @generated
-         */
-        EClass SECTION_DESCRIPTION = WorkflowPackage.eINSTANCE.getSectionDescription();
-
-        /**
-         * The meta object literal for the '<em><b>Title Expression</b></em>' attribute feature. <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute SECTION_DESCRIPTION__TITLE_EXPRESSION = WorkflowPackage.eINSTANCE.getSectionDescription_TitleExpression();
-
-        /**
-         * The meta object literal for the '<em><b>Image Path</b></em>' attribute feature. <!-- begin-user-doc --> <!--
-         * end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute SECTION_DESCRIPTION__IMAGE_PATH = WorkflowPackage.eINSTANCE.getSectionDescription_ImagePath();
-
-        /**
-         * The meta object literal for the '<em><b>Description Expression</b></em>' attribute feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION = WorkflowPackage.eINSTANCE.getSectionDescription_DescriptionExpression();
-
-        /**
-         * The meta object literal for the '<em><b>Activities</b></em>' containment reference list feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EReference SECTION_DESCRIPTION__ACTIVITIES = WorkflowPackage.eINSTANCE.getSectionDescription_Activities();
-
-        /**
-         * The meta object literal for the '{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl <em>Activity
-         * Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @see org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl
-         * @see org.eclipse.sirius.workflow.impl.WorkflowPackageImpl#getActivityDescription()
-         * @generated
-         */
-        EClass ACTIVITY_DESCRIPTION = WorkflowPackage.eINSTANCE.getActivityDescription();
-
-        /**
-         * The meta object literal for the '<em><b>Label Expression</b></em>' attribute feature. <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute ACTIVITY_DESCRIPTION__LABEL_EXPRESSION = WorkflowPackage.eINSTANCE.getActivityDescription_LabelExpression();
-
-        /**
-         * The meta object literal for the '<em><b>Image Path</b></em>' attribute feature. <!-- begin-user-doc --> <!--
-         * end-user-doc -->
-         *
-         * @generated
-         */
-        EAttribute ACTIVITY_DESCRIPTION__IMAGE_PATH = WorkflowPackage.eINSTANCE.getActivityDescription_ImagePath();
-
-        /**
-         * The meta object literal for the '<em><b>Operation</b></em>' containment reference feature. <!--
-         * begin-user-doc --> <!-- end-user-doc -->
-         *
-         * @generated
-         */
-        EReference ACTIVITY_DESCRIPTION__OPERATION = WorkflowPackage.eINSTANCE.getActivityDescription_Operation();
-
-    }
-
-} // WorkflowPackage
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/ActivityDescriptionImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/ActivityDescriptionImpl.java
deleted file mode 100644
index f2be465..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/ActivityDescriptionImpl.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.impl.IdentifiedElementImpl;
-import org.eclipse.sirius.viewpoint.description.tool.InitialOperation;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Activity Description</b></em>'. <!--
- * end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl#getDocumentation <em>Documentation</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl#getLabelExpression <em>Label
- * Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.ActivityDescriptionImpl#getOperation <em>Operation</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ActivityDescriptionImpl extends IdentifiedElementImpl implements ActivityDescription {
-    /**
-     * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected static final String DOCUMENTATION_EDEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected String documentation = ActivityDescriptionImpl.DOCUMENTATION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getLabelExpression() <em>Label Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getLabelExpression()
-     * @generated
-     * @ordered
-     */
-    protected static final String LABEL_EXPRESSION_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getLabelExpression() <em>Label Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getLabelExpression()
-     * @generated
-     * @ordered
-     */
-    protected String labelExpression = ActivityDescriptionImpl.LABEL_EXPRESSION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected static final String IMAGE_PATH_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected String imagePath = ActivityDescriptionImpl.IMAGE_PATH_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getOperation() <em>Operation</em>}' containment reference. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getOperation()
-     * @generated
-     * @ordered
-     */
-    protected InitialOperation operation;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected ActivityDescriptionImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return WorkflowPackage.Literals.ACTIVITY_DESCRIPTION;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDocumentation(String newDocumentation) {
-        String oldDocumentation = documentation;
-        documentation = newDocumentation;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION, oldDocumentation, documentation));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getLabelExpression() {
-        return labelExpression;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setLabelExpression(String newLabelExpression) {
-        String oldLabelExpression = labelExpression;
-        labelExpression = newLabelExpression;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION, oldLabelExpression, labelExpression));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getImagePath() {
-        return imagePath;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setImagePath(String newImagePath) {
-        String oldImagePath = imagePath;
-        imagePath = newImagePath;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH, oldImagePath, imagePath));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public InitialOperation getOperation() {
-        if (operation != null && operation.eIsProxy()) {
-            InternalEObject oldOperation = (InternalEObject) operation;
-            operation = (InitialOperation) eResolveProxy(oldOperation);
-            if (operation != oldOperation) {
-                InternalEObject newOperation = (InternalEObject) operation;
-                NotificationChain msgs = oldOperation.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, null, null);
-                if (newOperation.eInternalContainer() == null) {
-                    msgs = newOperation.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, null, msgs);
-                }
-                if (msgs != null) {
-                    msgs.dispatch();
-                }
-                if (eNotificationRequired()) {
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, oldOperation, operation));
-                }
-            }
-        }
-        return operation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public InitialOperation basicGetOperation() {
-        return operation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public NotificationChain basicSetOperation(InitialOperation newOperation, NotificationChain msgs) {
-        InitialOperation oldOperation = operation;
-        operation = newOperation;
-        if (eNotificationRequired()) {
-            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, oldOperation, newOperation);
-            if (msgs == null) {
-                msgs = notification;
-            } else {
-                msgs.add(notification);
-            }
-        }
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setOperation(InitialOperation newOperation) {
-        if (newOperation != operation) {
-            NotificationChain msgs = null;
-            if (operation != null) {
-                msgs = ((InternalEObject) operation).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, null, msgs);
-            }
-            if (newOperation != null) {
-                msgs = ((InternalEObject) newOperation).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, null, msgs);
-            }
-            msgs = basicSetOperation(newOperation, msgs);
-            if (msgs != null) {
-                msgs.dispatch();
-            }
-        } else if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION, newOperation, newOperation));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            return basicSetOperation(null, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-            return getDocumentation();
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION:
-            return getLabelExpression();
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH:
-            return getImagePath();
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            if (resolve) {
-                return getOperation();
-            }
-            return basicGetOperation();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-            setDocumentation((String) newValue);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION:
-            setLabelExpression((String) newValue);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH:
-            setImagePath((String) newValue);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            setOperation((InitialOperation) newValue);
-            return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-            setDocumentation(ActivityDescriptionImpl.DOCUMENTATION_EDEFAULT);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION:
-            setLabelExpression(ActivityDescriptionImpl.LABEL_EXPRESSION_EDEFAULT);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH:
-            setImagePath(ActivityDescriptionImpl.IMAGE_PATH_EDEFAULT);
-            return;
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            setOperation((InitialOperation) null);
-            return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-            return ActivityDescriptionImpl.DOCUMENTATION_EDEFAULT == null ? documentation != null : !ActivityDescriptionImpl.DOCUMENTATION_EDEFAULT.equals(documentation);
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION:
-            return ActivityDescriptionImpl.LABEL_EXPRESSION_EDEFAULT == null ? labelExpression != null : !ActivityDescriptionImpl.LABEL_EXPRESSION_EDEFAULT.equals(labelExpression);
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH:
-            return ActivityDescriptionImpl.IMAGE_PATH_EDEFAULT == null ? imagePath != null : !ActivityDescriptionImpl.IMAGE_PATH_EDEFAULT.equals(imagePath);
-        case WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION:
-            return operation != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (derivedFeatureID) {
-            case WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION:
-                return DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (baseFeatureID) {
-            case DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-                return WorkflowPackage.ACTIVITY_DESCRIPTION__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) {
-            return super.toString();
-        }
-
-        StringBuffer result = new StringBuffer(super.toString());
-        result.append(" (documentation: "); //$NON-NLS-1$
-        result.append(documentation);
-        result.append(", labelExpression: "); //$NON-NLS-1$
-        result.append(labelExpression);
-        result.append(", imagePath: "); //$NON-NLS-1$
-        result.append(imagePath);
-        result.append(')');
-        return result.toString();
-    }
-
-} // ActivityDescriptionImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/PageDescriptionImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/PageDescriptionImpl.java
deleted file mode 100644
index d204367..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/PageDescriptionImpl.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.impl.IdentifiedElementImpl;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Page Description</b></em>'. <!-- end-user-doc
- * -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl#getDocumentation <em>Documentation</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl#getTitleExpression <em>Title Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl#getDescriptionExpression <em>Description
- * Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.PageDescriptionImpl#getSections <em>Sections</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class PageDescriptionImpl extends IdentifiedElementImpl implements PageDescription {
-    /**
-     * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected static final String DOCUMENTATION_EDEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected String documentation = PageDescriptionImpl.DOCUMENTATION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getTitleExpression() <em>Title Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getTitleExpression()
-     * @generated
-     * @ordered
-     */
-    protected static final String TITLE_EXPRESSION_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getTitleExpression() <em>Title Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getTitleExpression()
-     * @generated
-     * @ordered
-     */
-    protected String titleExpression = PageDescriptionImpl.TITLE_EXPRESSION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected static final String IMAGE_PATH_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected String imagePath = PageDescriptionImpl.IMAGE_PATH_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getDescriptionExpression() <em>Description Expression</em>}' attribute. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getDescriptionExpression()
-     * @generated
-     * @ordered
-     */
-    protected static final String DESCRIPTION_EXPRESSION_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getDescriptionExpression() <em>Description Expression</em>}' attribute. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getDescriptionExpression()
-     * @generated
-     * @ordered
-     */
-    protected String descriptionExpression = PageDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getSections() <em>Sections</em>}' containment reference list. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getSections()
-     * @generated
-     * @ordered
-     */
-    protected EList<SectionDescription> sections;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected PageDescriptionImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return WorkflowPackage.Literals.PAGE_DESCRIPTION;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDocumentation(String newDocumentation) {
-        String oldDocumentation = documentation;
-        documentation = newDocumentation;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION, oldDocumentation, documentation));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getTitleExpression() {
-        return titleExpression;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setTitleExpression(String newTitleExpression) {
-        String oldTitleExpression = titleExpression;
-        titleExpression = newTitleExpression;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION, oldTitleExpression, titleExpression));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getImagePath() {
-        return imagePath;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setImagePath(String newImagePath) {
-        String oldImagePath = imagePath;
-        imagePath = newImagePath;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH, oldImagePath, imagePath));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDescriptionExpression() {
-        return descriptionExpression;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDescriptionExpression(String newDescriptionExpression) {
-        String oldDescriptionExpression = descriptionExpression;
-        descriptionExpression = newDescriptionExpression;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION, oldDescriptionExpression, descriptionExpression));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EList<SectionDescription> getSections() {
-        if (sections == null) {
-            sections = new EObjectContainmentEList.Resolving<SectionDescription>(SectionDescription.class, this, WorkflowPackage.PAGE_DESCRIPTION__SECTIONS);
-        }
-        return sections;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            return ((InternalEList<?>) getSections()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-        case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-            return getDocumentation();
-        case WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION:
-            return getTitleExpression();
-        case WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH:
-            return getImagePath();
-        case WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            return getDescriptionExpression();
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            return getSections();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-        case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-            setDocumentation((String) newValue);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION:
-            setTitleExpression((String) newValue);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH:
-            setImagePath((String) newValue);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            setDescriptionExpression((String) newValue);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            getSections().clear();
-            getSections().addAll((Collection<? extends SectionDescription>) newValue);
-            return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-            setDocumentation(PageDescriptionImpl.DOCUMENTATION_EDEFAULT);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION:
-            setTitleExpression(PageDescriptionImpl.TITLE_EXPRESSION_EDEFAULT);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH:
-            setImagePath(PageDescriptionImpl.IMAGE_PATH_EDEFAULT);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            setDescriptionExpression(PageDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT);
-            return;
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            getSections().clear();
-            return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-            return PageDescriptionImpl.DOCUMENTATION_EDEFAULT == null ? documentation != null : !PageDescriptionImpl.DOCUMENTATION_EDEFAULT.equals(documentation);
-        case WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION:
-            return PageDescriptionImpl.TITLE_EXPRESSION_EDEFAULT == null ? titleExpression != null : !PageDescriptionImpl.TITLE_EXPRESSION_EDEFAULT.equals(titleExpression);
-        case WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH:
-            return PageDescriptionImpl.IMAGE_PATH_EDEFAULT == null ? imagePath != null : !PageDescriptionImpl.IMAGE_PATH_EDEFAULT.equals(imagePath);
-        case WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            return PageDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT == null ? descriptionExpression != null : !PageDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT.equals(descriptionExpression);
-        case WorkflowPackage.PAGE_DESCRIPTION__SECTIONS:
-            return sections != null && !sections.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (derivedFeatureID) {
-            case WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION:
-                return DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (baseFeatureID) {
-            case DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-                return WorkflowPackage.PAGE_DESCRIPTION__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) {
-            return super.toString();
-        }
-
-        StringBuffer result = new StringBuffer(super.toString());
-        result.append(" (documentation: "); //$NON-NLS-1$
-        result.append(documentation);
-        result.append(", titleExpression: "); //$NON-NLS-1$
-        result.append(titleExpression);
-        result.append(", imagePath: "); //$NON-NLS-1$
-        result.append(imagePath);
-        result.append(", descriptionExpression: "); //$NON-NLS-1$
-        result.append(descriptionExpression);
-        result.append(')');
-        return result.toString();
-    }
-
-} // PageDescriptionImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/SectionDescriptionImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/SectionDescriptionImpl.java
deleted file mode 100644
index 796adde..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/SectionDescriptionImpl.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.impl.IdentifiedElementImpl;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Section Description</b></em>'. <!--
- * end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl#getDocumentation <em>Documentation</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl#getTitleExpression <em>Title Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl#getImagePath <em>Image Path</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl#getDescriptionExpression <em>Description
- * Expression</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.SectionDescriptionImpl#getActivities <em>Activities</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SectionDescriptionImpl extends IdentifiedElementImpl implements SectionDescription {
-    /**
-     * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected static final String DOCUMENTATION_EDEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected String documentation = SectionDescriptionImpl.DOCUMENTATION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getTitleExpression() <em>Title Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getTitleExpression()
-     * @generated
-     * @ordered
-     */
-    protected static final String TITLE_EXPRESSION_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getTitleExpression() <em>Title Expression</em>}' attribute. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #getTitleExpression()
-     * @generated
-     * @ordered
-     */
-    protected String titleExpression = SectionDescriptionImpl.TITLE_EXPRESSION_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected static final String IMAGE_PATH_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getImagePath() <em>Image Path</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getImagePath()
-     * @generated
-     * @ordered
-     */
-    protected String imagePath = SectionDescriptionImpl.IMAGE_PATH_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getDescriptionExpression() <em>Description Expression</em>}' attribute. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getDescriptionExpression()
-     * @generated
-     * @ordered
-     */
-    protected static final String DESCRIPTION_EXPRESSION_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getDescriptionExpression() <em>Description Expression</em>}' attribute. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getDescriptionExpression()
-     * @generated
-     * @ordered
-     */
-    protected String descriptionExpression = SectionDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getActivities() <em>Activities</em>}' containment reference list. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see #getActivities()
-     * @generated
-     * @ordered
-     */
-    protected EList<ActivityDescription> activities;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected SectionDescriptionImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return WorkflowPackage.Literals.SECTION_DESCRIPTION;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDocumentation(String newDocumentation) {
-        String oldDocumentation = documentation;
-        documentation = newDocumentation;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION, oldDocumentation, documentation));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getTitleExpression() {
-        return titleExpression;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setTitleExpression(String newTitleExpression) {
-        String oldTitleExpression = titleExpression;
-        titleExpression = newTitleExpression;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION, oldTitleExpression, titleExpression));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getImagePath() {
-        return imagePath;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setImagePath(String newImagePath) {
-        String oldImagePath = imagePath;
-        imagePath = newImagePath;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH, oldImagePath, imagePath));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDescriptionExpression() {
-        return descriptionExpression;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDescriptionExpression(String newDescriptionExpression) {
-        String oldDescriptionExpression = descriptionExpression;
-        descriptionExpression = newDescriptionExpression;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION, oldDescriptionExpression, descriptionExpression));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EList<ActivityDescription> getActivities() {
-        if (activities == null) {
-            activities = new EObjectContainmentEList.Resolving<ActivityDescription>(ActivityDescription.class, this, WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES);
-        }
-        return activities;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            return ((InternalEList<?>) getActivities()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-        case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-            return getDocumentation();
-        case WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION:
-            return getTitleExpression();
-        case WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH:
-            return getImagePath();
-        case WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            return getDescriptionExpression();
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            return getActivities();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-        case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-            setDocumentation((String) newValue);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION:
-            setTitleExpression((String) newValue);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH:
-            setImagePath((String) newValue);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            setDescriptionExpression((String) newValue);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            getActivities().clear();
-            getActivities().addAll((Collection<? extends ActivityDescription>) newValue);
-            return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-            setDocumentation(SectionDescriptionImpl.DOCUMENTATION_EDEFAULT);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION:
-            setTitleExpression(SectionDescriptionImpl.TITLE_EXPRESSION_EDEFAULT);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH:
-            setImagePath(SectionDescriptionImpl.IMAGE_PATH_EDEFAULT);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            setDescriptionExpression(SectionDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT);
-            return;
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            getActivities().clear();
-            return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-            return SectionDescriptionImpl.DOCUMENTATION_EDEFAULT == null ? documentation != null : !SectionDescriptionImpl.DOCUMENTATION_EDEFAULT.equals(documentation);
-        case WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION:
-            return SectionDescriptionImpl.TITLE_EXPRESSION_EDEFAULT == null ? titleExpression != null : !SectionDescriptionImpl.TITLE_EXPRESSION_EDEFAULT.equals(titleExpression);
-        case WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH:
-            return SectionDescriptionImpl.IMAGE_PATH_EDEFAULT == null ? imagePath != null : !SectionDescriptionImpl.IMAGE_PATH_EDEFAULT.equals(imagePath);
-        case WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION:
-            return SectionDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT == null ? descriptionExpression != null
-                    : !SectionDescriptionImpl.DESCRIPTION_EXPRESSION_EDEFAULT.equals(descriptionExpression);
-        case WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES:
-            return activities != null && !activities.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (derivedFeatureID) {
-            case WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION:
-                return DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-        if (baseClass == DocumentedElement.class) {
-            switch (baseFeatureID) {
-            case DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-                return WorkflowPackage.SECTION_DESCRIPTION__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) {
-            return super.toString();
-        }
-
-        StringBuffer result = new StringBuffer(super.toString());
-        result.append(" (documentation: "); //$NON-NLS-1$
-        result.append(documentation);
-        result.append(", titleExpression: "); //$NON-NLS-1$
-        result.append(titleExpression);
-        result.append(", imagePath: "); //$NON-NLS-1$
-        result.append(imagePath);
-        result.append(", descriptionExpression: "); //$NON-NLS-1$
-        result.append(descriptionExpression);
-        result.append(')');
-        return result.toString();
-    }
-
-} // SectionDescriptionImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowDescriptionImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowDescriptionImpl.java
deleted file mode 100644
index 413c9b0..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowDescriptionImpl.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Description</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl#getLabel <em>Label</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl#getDocumentation <em>Documentation</em>}</li>
- * <li>{@link org.eclipse.sirius.workflow.impl.WorkflowDescriptionImpl#getPages <em>Pages</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class WorkflowDescriptionImpl extends MinimalEObjectImpl.Container implements WorkflowDescription {
-    /**
-     * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected static final String NAME_EDEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected String name = WorkflowDescriptionImpl.NAME_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getLabel() <em>Label</em>}' attribute. <!-- begin-user-doc --> <!--
-     * end-user-doc -->
-     *
-     * @see #getLabel()
-     * @generated
-     * @ordered
-     */
-    protected static final String LABEL_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-     * -->
-     *
-     * @see #getLabel()
-     * @generated
-     * @ordered
-     */
-    protected String label = WorkflowDescriptionImpl.LABEL_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected static final String DOCUMENTATION_EDEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getDocumentation()
-     * @generated
-     * @ordered
-     */
-    protected String documentation = WorkflowDescriptionImpl.DOCUMENTATION_EDEFAULT;
-
-    /**
-     * The cached value of the '{@link #getPages() <em>Pages</em>}' containment reference list. <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     *
-     * @see #getPages()
-     * @generated
-     * @ordered
-     */
-    protected EList<PageDescription> pages;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected WorkflowDescriptionImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return WorkflowPackage.Literals.WORKFLOW_DESCRIPTION;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setName(String newName) {
-        String oldName = name;
-        name = newName;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.WORKFLOW_DESCRIPTION__NAME, oldName, name));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getLabel() {
-        return label;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setLabel(String newLabel) {
-        String oldLabel = label;
-        label = newLabel;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL, oldLabel, label));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void setDocumentation(String newDocumentation) {
-        String oldDocumentation = documentation;
-        documentation = newDocumentation;
-        if (eNotificationRequired()) {
-            eNotify(new ENotificationImpl(this, Notification.SET, WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION, oldDocumentation, documentation));
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EList<PageDescription> getPages() {
-        if (pages == null) {
-            pages = new EObjectContainmentEList.Resolving<PageDescription>(PageDescription.class, this, WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES);
-        }
-        return pages;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            return ((InternalEList<?>) getPages()).basicRemove(otherEnd, msgs);
-        }
-        return super.eInverseRemove(otherEnd, featureID, msgs);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-            return getName();
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-            return getLabel();
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-            return getDocumentation();
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            return getPages();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-            setName((String) newValue);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-            setLabel((String) newValue);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-            setDocumentation((String) newValue);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            getPages().clear();
-            getPages().addAll((Collection<? extends PageDescription>) newValue);
-            return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-            setName(WorkflowDescriptionImpl.NAME_EDEFAULT);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-            setLabel(WorkflowDescriptionImpl.LABEL_EDEFAULT);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-            setDocumentation(WorkflowDescriptionImpl.DOCUMENTATION_EDEFAULT);
-            return;
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            getPages().clear();
-            return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-            return WorkflowDescriptionImpl.NAME_EDEFAULT == null ? name != null : !WorkflowDescriptionImpl.NAME_EDEFAULT.equals(name);
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-            return WorkflowDescriptionImpl.LABEL_EDEFAULT == null ? label != null : !WorkflowDescriptionImpl.LABEL_EDEFAULT.equals(label);
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-            return WorkflowDescriptionImpl.DOCUMENTATION_EDEFAULT == null ? documentation != null : !WorkflowDescriptionImpl.DOCUMENTATION_EDEFAULT.equals(documentation);
-        case WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES:
-            return pages != null && !pages.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-        if (baseClass == IdentifiedElement.class) {
-            switch (derivedFeatureID) {
-            case WorkflowPackage.WORKFLOW_DESCRIPTION__NAME:
-                return DescriptionPackage.IDENTIFIED_ELEMENT__NAME;
-            case WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL:
-                return DescriptionPackage.IDENTIFIED_ELEMENT__LABEL;
-            default:
-                return -1;
-            }
-        }
-        if (baseClass == DocumentedElement.class) {
-            switch (derivedFeatureID) {
-            case WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION:
-                return DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-        if (baseClass == IdentifiedElement.class) {
-            switch (baseFeatureID) {
-            case DescriptionPackage.IDENTIFIED_ELEMENT__NAME:
-                return WorkflowPackage.WORKFLOW_DESCRIPTION__NAME;
-            case DescriptionPackage.IDENTIFIED_ELEMENT__LABEL:
-                return WorkflowPackage.WORKFLOW_DESCRIPTION__LABEL;
-            default:
-                return -1;
-            }
-        }
-        if (baseClass == DocumentedElement.class) {
-            switch (baseFeatureID) {
-            case DescriptionPackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-                return WorkflowPackage.WORKFLOW_DESCRIPTION__DOCUMENTATION;
-            default:
-                return -1;
-            }
-        }
-        return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public String toString() {
-        if (eIsProxy()) {
-            return super.toString();
-        }
-
-        StringBuffer result = new StringBuffer(super.toString());
-        result.append(" (name: "); //$NON-NLS-1$
-        result.append(name);
-        result.append(", label: "); //$NON-NLS-1$
-        result.append(label);
-        result.append(", documentation: "); //$NON-NLS-1$
-        result.append(documentation);
-        result.append(')');
-        return result.toString();
-    }
-
-} // WorkflowDescriptionImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowFactoryImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowFactoryImpl.java
deleted file mode 100644
index a9244ff..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowFactoryImpl.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
- *
- * @generated
- */
-public class WorkflowFactoryImpl extends EFactoryImpl implements WorkflowFactory {
-    /**
-     * Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public static WorkflowFactory init() {
-        try {
-            WorkflowFactory theWorkflowFactory = (WorkflowFactory) EPackage.Registry.INSTANCE.getEFactory(WorkflowPackage.eNS_URI);
-            if (theWorkflowFactory != null) {
-                return theWorkflowFactory;
-            }
-        } catch (Exception exception) {
-            EcorePlugin.INSTANCE.log(exception);
-        }
-        return new WorkflowFactoryImpl();
-    }
-
-    /**
-     * Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowFactoryImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EObject create(EClass eClass) {
-        switch (eClass.getClassifierID()) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION:
-            return createWorkflowDescription();
-        case WorkflowPackage.PAGE_DESCRIPTION:
-            return createPageDescription();
-        case WorkflowPackage.SECTION_DESCRIPTION:
-            return createSectionDescription();
-        case WorkflowPackage.ACTIVITY_DESCRIPTION:
-            return createActivityDescription();
-        default:
-            throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public WorkflowDescription createWorkflowDescription() {
-        WorkflowDescriptionImpl workflowDescription = new WorkflowDescriptionImpl();
-        return workflowDescription;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public PageDescription createPageDescription() {
-        PageDescriptionImpl pageDescription = new PageDescriptionImpl();
-        return pageDescription;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public SectionDescription createSectionDescription() {
-        SectionDescriptionImpl sectionDescription = new SectionDescriptionImpl();
-        return sectionDescription;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public ActivityDescription createActivityDescription() {
-        ActivityDescriptionImpl activityDescription = new ActivityDescriptionImpl();
-        return activityDescription;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public WorkflowPackage getWorkflowPackage() {
-        return (WorkflowPackage) getEPackage();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @deprecated
-     * @generated
-     */
-    @Deprecated
-    public static WorkflowPackage getPackage() {
-        return WorkflowPackage.eINSTANCE;
-    }
-
-} // WorkflowFactoryImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowPackageImpl.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowPackageImpl.java
deleted file mode 100644
index ec35086..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/impl/WorkflowPackageImpl.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.sirius.viewpoint.ViewpointPackage;
-import org.eclipse.sirius.viewpoint.description.DescriptionPackage;
-import org.eclipse.sirius.viewpoint.description.tool.ToolPackage;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowFactory;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
- *
- * @generated
- */
-public class WorkflowPackageImpl extends EPackageImpl implements WorkflowPackage {
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private EClass workflowDescriptionEClass = null;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private EClass pageDescriptionEClass = null;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private EClass sectionDescriptionEClass = null;
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private EClass activityDescriptionEClass = null;
-
-    /**
-     * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
-     * EPackage.Registry} by the package package URI value.
-     * <p>
-     * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
-     * performs initialization of the package, or returns the registered package, if one already exists. <!--
-     * begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @see org.eclipse.emf.ecore.EPackage.Registry
-     * @see org.eclipse.sirius.workflow.WorkflowPackage#eNS_URI
-     * @see #init()
-     * @generated
-     */
-    private WorkflowPackageImpl() {
-        super(WorkflowPackage.eNS_URI, WorkflowFactory.eINSTANCE);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private static boolean isInited = false;
-
-    /**
-     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-     *
-     * <p>
-     * This method is used to initialize {@link WorkflowPackage#eINSTANCE} when that field is accessed. Clients should
-     * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
-     * --> <!-- end-user-doc -->
-     *
-     * @see #eNS_URI
-     * @see #createPackageContents()
-     * @see #initializePackageContents()
-     * @generated
-     */
-    public static WorkflowPackage init() {
-        if (WorkflowPackageImpl.isInited) {
-            return (WorkflowPackage) EPackage.Registry.INSTANCE.getEPackage(WorkflowPackage.eNS_URI);
-        }
-
-        // Obtain or create and register package
-        WorkflowPackageImpl theWorkflowPackage = (WorkflowPackageImpl) (EPackage.Registry.INSTANCE.get(WorkflowPackage.eNS_URI) instanceof WorkflowPackageImpl
-                ? EPackage.Registry.INSTANCE.get(WorkflowPackage.eNS_URI)
-                : new WorkflowPackageImpl());
-
-        WorkflowPackageImpl.isInited = true;
-
-        // Initialize simple dependencies
-        EcorePackage.eINSTANCE.eClass();
-        ViewpointPackage.eINSTANCE.eClass();
-
-        // Create package meta-data objects
-        theWorkflowPackage.createPackageContents();
-
-        // Initialize created meta-data
-        theWorkflowPackage.initializePackageContents();
-
-        // Mark meta-data to indicate it can't be changed
-        theWorkflowPackage.freeze();
-
-        // Update the registry and return the package
-        EPackage.Registry.INSTANCE.put(WorkflowPackage.eNS_URI, theWorkflowPackage);
-        return theWorkflowPackage;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EClass getWorkflowDescription() {
-        return workflowDescriptionEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EReference getWorkflowDescription_Pages() {
-        return (EReference) workflowDescriptionEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EClass getPageDescription() {
-        return pageDescriptionEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getPageDescription_TitleExpression() {
-        return (EAttribute) pageDescriptionEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getPageDescription_ImagePath() {
-        return (EAttribute) pageDescriptionEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getPageDescription_DescriptionExpression() {
-        return (EAttribute) pageDescriptionEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EReference getPageDescription_Sections() {
-        return (EReference) pageDescriptionEClass.getEStructuralFeatures().get(3);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EClass getSectionDescription() {
-        return sectionDescriptionEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getSectionDescription_TitleExpression() {
-        return (EAttribute) sectionDescriptionEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getSectionDescription_ImagePath() {
-        return (EAttribute) sectionDescriptionEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getSectionDescription_DescriptionExpression() {
-        return (EAttribute) sectionDescriptionEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EReference getSectionDescription_Activities() {
-        return (EReference) sectionDescriptionEClass.getEStructuralFeatures().get(3);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EClass getActivityDescription() {
-        return activityDescriptionEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getActivityDescription_LabelExpression() {
-        return (EAttribute) activityDescriptionEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EAttribute getActivityDescription_ImagePath() {
-        return (EAttribute) activityDescriptionEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public EReference getActivityDescription_Operation() {
-        return (EReference) activityDescriptionEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    @Override
-    public WorkflowFactory getWorkflowFactory() {
-        return (WorkflowFactory) getEFactoryInstance();
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private boolean isCreated = false;
-
-    /**
-     * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but
-     * its first. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public void createPackageContents() {
-        if (isCreated) {
-            return;
-        }
-        isCreated = true;
-
-        // Create classes and their features
-        workflowDescriptionEClass = createEClass(WorkflowPackage.WORKFLOW_DESCRIPTION);
-        createEReference(workflowDescriptionEClass, WorkflowPackage.WORKFLOW_DESCRIPTION__PAGES);
-
-        pageDescriptionEClass = createEClass(WorkflowPackage.PAGE_DESCRIPTION);
-        createEAttribute(pageDescriptionEClass, WorkflowPackage.PAGE_DESCRIPTION__TITLE_EXPRESSION);
-        createEAttribute(pageDescriptionEClass, WorkflowPackage.PAGE_DESCRIPTION__IMAGE_PATH);
-        createEAttribute(pageDescriptionEClass, WorkflowPackage.PAGE_DESCRIPTION__DESCRIPTION_EXPRESSION);
-        createEReference(pageDescriptionEClass, WorkflowPackage.PAGE_DESCRIPTION__SECTIONS);
-
-        sectionDescriptionEClass = createEClass(WorkflowPackage.SECTION_DESCRIPTION);
-        createEAttribute(sectionDescriptionEClass, WorkflowPackage.SECTION_DESCRIPTION__TITLE_EXPRESSION);
-        createEAttribute(sectionDescriptionEClass, WorkflowPackage.SECTION_DESCRIPTION__IMAGE_PATH);
-        createEAttribute(sectionDescriptionEClass, WorkflowPackage.SECTION_DESCRIPTION__DESCRIPTION_EXPRESSION);
-        createEReference(sectionDescriptionEClass, WorkflowPackage.SECTION_DESCRIPTION__ACTIVITIES);
-
-        activityDescriptionEClass = createEClass(WorkflowPackage.ACTIVITY_DESCRIPTION);
-        createEAttribute(activityDescriptionEClass, WorkflowPackage.ACTIVITY_DESCRIPTION__LABEL_EXPRESSION);
-        createEAttribute(activityDescriptionEClass, WorkflowPackage.ACTIVITY_DESCRIPTION__IMAGE_PATH);
-        createEReference(activityDescriptionEClass, WorkflowPackage.ACTIVITY_DESCRIPTION__OPERATION);
-    }
-
-    /**
-     * <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    private boolean isInitialized = false;
-
-    /**
-     * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any
-     * invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public void initializePackageContents() {
-        if (isInitialized) {
-            return;
-        }
-        isInitialized = true;
-
-        // Initialize package
-        setName(WorkflowPackage.eNAME);
-        setNsPrefix(WorkflowPackage.eNS_PREFIX);
-        setNsURI(WorkflowPackage.eNS_URI);
-
-        // Obtain other dependent packages
-        DescriptionPackage theDescriptionPackage = (DescriptionPackage) EPackage.Registry.INSTANCE.getEPackage(DescriptionPackage.eNS_URI);
-        ToolPackage theToolPackage = (ToolPackage) EPackage.Registry.INSTANCE.getEPackage(ToolPackage.eNS_URI);
-
-        // Create type parameters
-
-        // Set bounds for type parameters
-
-        // Add supertypes to classes
-        workflowDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getExtension());
-        workflowDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getIdentifiedElement());
-        workflowDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getDocumentedElement());
-        pageDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getIdentifiedElement());
-        pageDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getDocumentedElement());
-        sectionDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getIdentifiedElement());
-        sectionDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getDocumentedElement());
-        activityDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getIdentifiedElement());
-        activityDescriptionEClass.getESuperTypes().add(theDescriptionPackage.getDocumentedElement());
-
-        // Initialize classes and features; add operations and parameters
-        initEClass(workflowDescriptionEClass, WorkflowDescription.class, "WorkflowDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEReference(getWorkflowDescription_Pages(), this.getPageDescription(), null, "pages", null, 0, -1, WorkflowDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
-                EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED,
-                EPackageImpl.IS_ORDERED);
-
-        initEClass(pageDescriptionEClass, PageDescription.class, "PageDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getPageDescription_TitleExpression(), theDescriptionPackage.getInterpretedExpression(), "titleExpression", null, 1, 1, PageDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEAttribute(getPageDescription_ImagePath(), theDescriptionPackage.getImagePath(), "imagePath", null, 0, 1, PageDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
-                EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEAttribute(getPageDescription_DescriptionExpression(), theDescriptionPackage.getInterpretedExpression(), "descriptionExpression", null, 1, 1, PageDescription.class, //$NON-NLS-1$
-                !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED,
-                EPackageImpl.IS_ORDERED);
-        initEReference(getPageDescription_Sections(), this.getSectionDescription(), null, "sections", null, 0, -1, PageDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
-                EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED,
-                EPackageImpl.IS_ORDERED);
-
-        initEClass(sectionDescriptionEClass, SectionDescription.class, "SectionDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getSectionDescription_TitleExpression(), theDescriptionPackage.getInterpretedExpression(), "titleExpression", null, 1, 1, SectionDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEAttribute(getSectionDescription_ImagePath(), theDescriptionPackage.getImagePath(), "imagePath", null, 0, 1, SectionDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEAttribute(getSectionDescription_DescriptionExpression(), theDescriptionPackage.getInterpretedExpression(), "descriptionExpression", null, 1, 1, SectionDescription.class, //$NON-NLS-1$
-                !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED,
-                EPackageImpl.IS_ORDERED);
-        initEReference(getSectionDescription_Activities(), this.getActivityDescription(), null, "activities", null, 0, -1, SectionDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE,
-                !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-
-        initEClass(activityDescriptionEClass, ActivityDescription.class, "ActivityDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-        initEAttribute(getActivityDescription_LabelExpression(), theDescriptionPackage.getInterpretedExpression(), "labelExpression", null, 1, 1, ActivityDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEAttribute(getActivityDescription_ImagePath(), theDescriptionPackage.getImagePath(), "imagePath", null, 0, 1, ActivityDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-        initEReference(getActivityDescription_Operation(), theToolPackage.getInitialOperation(), null, "operation", null, 1, 1, ActivityDescription.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
-                !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE,
-                !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
-
-        // Create resource
-        createResource(WorkflowPackage.eNS_URI);
-    }
-
-} // WorkflowPackageImpl
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowAdapterFactory.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowAdapterFactory.java
deleted file mode 100644
index fb826d2..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowAdapterFactory.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.Extension;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides an adapter <code>createXXX</code>
- * method for each class of the model. <!-- end-user-doc -->
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage
- * @generated
- */
-public class WorkflowAdapterFactory extends AdapterFactoryImpl {
-    /**
-     * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected static WorkflowPackage modelPackage;
-
-    /**
-     * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowAdapterFactory() {
-        if (WorkflowAdapterFactory.modelPackage == null) {
-            WorkflowAdapterFactory.modelPackage = WorkflowPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Returns whether this factory is applicable for the type of the object. <!-- begin-user-doc --> This
-     * implementation returns <code>true</code> if the object is either the model's package or is an instance object of
-     * the model. <!-- end-user-doc -->
-     *
-     * @return whether this factory is applicable for the type of the object.
-     * @generated
-     */
-    @Override
-    public boolean isFactoryForType(Object object) {
-        if (object == WorkflowAdapterFactory.modelPackage) {
-            return true;
-        }
-        if (object instanceof EObject) {
-            return ((EObject) object).eClass().getEPackage() == WorkflowAdapterFactory.modelPackage;
-        }
-        return false;
-    }
-
-    /**
-     * The switch that delegates to the <code>createXXX</code> methods. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected WorkflowSwitch<Adapter> modelSwitch = new WorkflowSwitch<Adapter>() {
-        @Override
-        public Adapter caseWorkflowDescription(WorkflowDescription object) {
-            return createWorkflowDescriptionAdapter();
-        }
-
-        @Override
-        public Adapter casePageDescription(PageDescription object) {
-            return createPageDescriptionAdapter();
-        }
-
-        @Override
-        public Adapter caseSectionDescription(SectionDescription object) {
-            return createSectionDescriptionAdapter();
-        }
-
-        @Override
-        public Adapter caseActivityDescription(ActivityDescription object) {
-            return createActivityDescriptionAdapter();
-        }
-
-        @Override
-        public Adapter caseExtension(Extension object) {
-            return createExtensionAdapter();
-        }
-
-        @Override
-        public Adapter caseIdentifiedElement(IdentifiedElement object) {
-            return createIdentifiedElementAdapter();
-        }
-
-        @Override
-        public Adapter caseDocumentedElement(DocumentedElement object) {
-            return createDocumentedElementAdapter();
-        }
-
-        @Override
-        public Adapter defaultCase(EObject object) {
-            return createEObjectAdapter();
-        }
-    };
-
-    /**
-     * Creates an adapter for the <code>target</code>. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @param target
-     *            the object to adapt.
-     * @return the adapter for the <code>target</code>.
-     * @generated
-     */
-    @Override
-    public Adapter createAdapter(Notifier target) {
-        return modelSwitch.doSwitch((EObject) target);
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.workflow.WorkflowDescription
-     * <em>Description</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
-     * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc
-     * -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.workflow.WorkflowDescription
-     * @generated
-     */
-    public Adapter createWorkflowDescriptionAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.workflow.PageDescription <em>Page
-     * Description</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
-     * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.workflow.PageDescription
-     * @generated
-     */
-    public Adapter createPageDescriptionAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.workflow.SectionDescription <em>Section
-     * Description</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
-     * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.workflow.SectionDescription
-     * @generated
-     */
-    public Adapter createSectionDescriptionAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.workflow.ActivityDescription <em>Activity
-     * Description</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
-     * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.workflow.ActivityDescription
-     * @generated
-     */
-    public Adapter createActivityDescriptionAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.viewpoint.description.Extension
-     * <em>Extension</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
-     * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc
-     * -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.viewpoint.description.Extension
-     * @generated
-     */
-    public Adapter createExtensionAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.viewpoint.description.IdentifiedElement
-     * <em>Identified Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can
-     * easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!--
-     * end-user-doc -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.viewpoint.description.IdentifiedElement
-     * @generated
-     */
-    public Adapter createIdentifiedElementAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.eclipse.sirius.viewpoint.description.DocumentedElement
-     * <em>Documented Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can
-     * easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!--
-     * end-user-doc -->
-     *
-     * @return the new adapter.
-     * @see org.eclipse.sirius.viewpoint.description.DocumentedElement
-     * @generated
-     */
-    public Adapter createDocumentedElementAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for the default case. <!-- begin-user-doc --> This default implementation returns null.
-     * <!-- end-user-doc -->
-     *
-     * @return the new adapter.
-     * @generated
-     */
-    public Adapter createEObjectAdapter() {
-        return null;
-    }
-
-} // WorkflowAdapterFactory
diff --git a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowSwitch.java b/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowSwitch.java
deleted file mode 100644
index ef22f6d..0000000
--- a/plugins/org.eclipse.sirius.workflow.model/src-gen/org/eclipse/sirius/workflow/util/WorkflowSwitch.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- *  Copyright (c) 2018 Obeo.
- *  This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v2.0
- *  which accompanies this distribution, and is available at
- *  https://www.eclipse.org/legal/epl-2.0/
- *
- *  Contributors:
- *     Obeo - initial API and implementation
- *
- */
-package org.eclipse.sirius.workflow.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.sirius.viewpoint.description.DocumentedElement;
-import org.eclipse.sirius.viewpoint.description.Extension;
-import org.eclipse.sirius.viewpoint.description.IdentifiedElement;
-import org.eclipse.sirius.workflow.ActivityDescription;
-import org.eclipse.sirius.workflow.PageDescription;
-import org.eclipse.sirius.workflow.SectionDescription;
-import org.eclipse.sirius.workflow.WorkflowDescription;
-import org.eclipse.sirius.workflow.WorkflowPackage;
-
-/**
- * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance hierarchy. It supports the call
- * {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object and proceeding up the inheritance hierarchy until a non-null result is
- * returned, which is the result of the switch. <!-- end-user-doc -->
- *
- * @see org.eclipse.sirius.workflow.WorkflowPackage
- * @generated
- */
-public class WorkflowSwitch<T> {
-    /**
-     * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    protected static WorkflowPackage modelPackage;
-
-    /**
-     * Creates an instance of the switch. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @generated
-     */
-    public WorkflowSwitch() {
-        if (WorkflowSwitch.modelPackage == null) {
-            WorkflowSwitch.modelPackage = WorkflowPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
-     * result. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the first non-null result returned by a <code>caseXXX</code> call.
-     * @generated
-     */
-    public T doSwitch(EObject theEObject) {
-        return doSwitch(theEObject.eClass(), theEObject);
-    }
-
-    /**
-     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
-     * result. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the first non-null result returned by a <code>caseXXX</code> call.
-     * @generated
-     */
-    protected T doSwitch(EClass theEClass, EObject theEObject) {
-        if (theEClass.eContainer() == WorkflowSwitch.modelPackage) {
-            return doSwitch(theEClass.getClassifierID(), theEObject);
-        } else {
-            List<EClass> eSuperTypes = theEClass.getESuperTypes();
-            return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
-        }
-    }
-
-    /**
-     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
-     * result. <!-- begin-user-doc --> <!-- end-user-doc -->
-     *
-     * @return the first non-null result returned by a <code>caseXXX</code> call.
-     * @generated
-     */
-    protected T doSwitch(int classifierID, EObject theEObject) {
-        switch (classifierID) {
-        case WorkflowPackage.WORKFLOW_DESCRIPTION: {
-            WorkflowDescription workflowDescription = (WorkflowDescription) theEObject;
-            T result = caseWorkflowDescription(workflowDescription);
-            if (result == null) {
-                result = caseExtension(workflowDescription);
-            }
-            if (result == null) {
-                result = caseIdentifiedElement(workflowDescription);
-            }
-            if (result == null) {
-                result = caseDocumentedElement(workflowDescription);
-            }
-            if (result == null) {
-                result = defaultCase(theEObject);
-            }
-            return result;
-        }
-        case WorkflowPackage.PAGE_DESCRIPTION: {
-            PageDescription pageDescription = (PageDescription) theEObject;
-            T result = casePageDescription(pageDescription);
-            if (result == null) {
-                result = caseIdentifiedElement(pageDescription);
-            }
-            if (result == null) {
-                result = caseDocumentedElement(pageDescription);
-            }
-            if (result == null) {
-                result = defaultCase(theEObject);
-            }
-            return result;
-        }
-        case WorkflowPackage.SECTION_DESCRIPTION: {
-            SectionDescription sectionDescription = (SectionDescription) theEObject;
-            T result = caseSectionDescription(sectionDescription);
-            if (result == null) {
-                result = caseIdentifiedElement(sectionDescription);
-            }
-            if (result == null) {
-                result = caseDocumentedElement(sectionDescription);
-            }
-            if (result == null) {
-                result = defaultCase(theEObject);
-            }
-            return result;
-        }
-        case WorkflowPackage.ACTIVITY_DESCRIPTION: {
-            ActivityDescription activityDescription = (ActivityDescription) theEObject;
-            T result = caseActivityDescription(activityDescription);
-            if (result == null) {
-                result = caseIdentifiedElement(activityDescription);
-            }
-            if (result == null) {
-                result = caseDocumentedElement(activityDescription);
-            }
-            if (result == null) {
-                result = defaultCase(theEObject);
-            }
-            return result;
-        }
-        default:
-            return defaultCase(theEObject);
-        }
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Description</em>'. <!-- begin-user-doc -->
-     * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Description</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseWorkflowDescription(WorkflowDescription object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Page Description</em>'. <!-- begin-user-doc
-     * --> This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc
-     * -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Page Description</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T casePageDescription(PageDescription object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Section Description</em>'. <!--
-     * begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch. <!--
-     * end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Section Description</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseSectionDescription(SectionDescription object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Activity Description</em>'. <!--
-     * begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch. <!--
-     * end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Activity Description</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseActivityDescription(ActivityDescription object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Extension</em>'. <!-- begin-user-doc -->
-     * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Extension</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseExtension(Extension object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Identified Element</em>'. <!--
-     * begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch. <!--
-     * end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Identified Element</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseIdentifiedElement(IdentifiedElement object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Documented Element</em>'. <!--
-     * begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch. <!--
-     * end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Documented Element</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseDocumentedElement(DocumentedElement object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. <!-- begin-user-doc --> This
-     * implementation returns null; returning a non-null result will terminate the switch, but this is the last case
-     * anyway. <!-- end-user-doc -->
-     *
-     * @param object
-     *            the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-     * @generated
-     */
-    public T defaultCase(EObject object) {
-        return null;
-    }
-
-} // WorkflowSwitch
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.checkstyle b/plugins/org.eclipse.sirius.workflow.ui.page/.checkstyle
deleted file mode 100644
index 3c756ff..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.checkstyle
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
-  <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
-    <additional-data name="protect-config-file" value="false"/>
-  </local-check-config>
-  <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
-    <file-match-pattern match-pattern="." include-pattern="true"/>
-  </fileset>
-  <filter name="FilesFromPackage" enabled="true">
-    <filter-data value="src-gen"/>
-  </filter>
-</fileset-config>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.classpath b/plugins/org.eclipse.sirius.workflow.ui.page/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.project b/plugins/org.eclipse.sirius.workflow.ui.page/.project
deleted file mode 100644
index 020f9c6..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sirius.workflow.ui.page</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/fr.obeo.baseliner.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/fr.obeo.baseliner.prefs
deleted file mode 100644
index edbf927..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/fr.obeo.baseliner.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-baselineSource=platform\:/resource/org.eclipse.sirius.targets/baseline.target
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 9093a2c..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Jan 26 14:35:58 CET 2012
-eclipse.preferences.version=1
-encoding/<project>=US-ASCII
-encoding/analysis_templates=ISO-8859-1
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index a287fef..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Sep 24 15:04:19 CEST 2007
-eclipse.preferences.version=1
-line.separator=\n
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 97c066b..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,354 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=200
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f903dbc..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,62 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=true
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=true
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=true
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Sirius
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_Sirius
-formatter_settings_version=12
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index b196c64..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index c307a7b..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,32 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=0
-compilers.p.build.java.compiler=0
-compilers.p.build.java.compliance=0
-compilers.p.build.missing.output=0
-compilers.p.build.output.library=0
-compilers.p.build.source.library=0
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=0
-compilers.p.missing-packages=0
-compilers.p.missing-version-export-package=1
-compilers.p.missing-version-import-package=1
-compilers.p.missing-version-require-bundle=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.workflow.ui.page/META-INF/MANIFEST.MF
deleted file mode 100644
index 9547b02..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.sirius.workflow.ui.page;singleton:=true
-Bundle-Version: 7.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.sirius.ui.editor;bundle-version="6.0.0",
- org.eclipse.ui.forms;bundle-version="3.7.1",
- org.eclipse.ui;bundle-version="3.108.1",
- org.eclipse.sirius.common;bundle-version="6.0.0",
- org.eclipse.sirius.ui;bundle-version="6.0.0",
- org.eclipse.emf.transaction;bundle-version="1.9.0",
- org.eclipse.ui.browser;bundle-version="3.5.2",
- org.eclipse.sirius.ecore.extender;bundle-version="5.1.0",
- org.eclipse.sirius.server;bundle-version="7.0.0",
- org.eclipse.sirius.server.backend;bundle-version="7.0.0",
- org.eclipse.sirius.server.frontend.workflow;bundle-version="7.0.0"
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.sirius.workflow.ui.page;version="6.0.0"
-Bundle-Activator: org.eclipse.sirius.workflow.ui.page.WorkflowPagePlugin$Implementation
-Import-Package: org.eclipse.sirius.ext.base;version="2.1.0"
-Automatic-Module-Name: org.eclipse.sirius.workflow.ui.page
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/about.html b/plugins/org.eclipse.sirius.workflow.ui.page/about.html
deleted file mode 100644
index 164f781..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/build.properties b/plugins/org.eclipse.sirius.workflow.ui.page/build.properties
deleted file mode 100644
index fa0f8d2..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#  Copyright (c) 2018 Obeo.
-#  This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v2.0
-#  which accompanies this distribution, and is available at
-#  https://www.eclipse.org/legal/epl-2.0/
-# 
-#  Contributors:
-#     Obeo - initial API and implementation
-# 
-
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-javacWarnings.. = none
-javacDefaultEncoding.. = US-ASCII
-javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/plugin.properties b/plugins/org.eclipse.sirius.workflow.ui.page/plugin.properties
deleted file mode 100644
index b789ce1..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# ====================================================================
-# Copyright (c) 2018 Obeo
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#    Obeo - initial API and implementation
-# ====================================================================
-
-pluginName = Workflow Page Provider for Aird Editor
-providerName = Eclipse Modeling Project
-
-WorkflowPage_tab_name=Workflow
-WorkflowPage_header_title=Workflow of {0}
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/plugin.xml b/plugins/org.eclipse.sirius.workflow.ui.page/plugin.xml
deleted file mode 100644
index d1fc895..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension point="org.eclipse.sirius.ui.editor.sessionEditorPageProvider">
-      <pageProvider class="org.eclipse.sirius.workflow.ui.page.WorkflowPageProvider" />
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/pom.xml b/plugins/org.eclipse.sirius.workflow.ui.page/pom.xml
deleted file mode 100644
index ab55ce8..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-  Copyright (c) 2015, 2016 Obeo
-  This program and the accompanying materials
-  are made available under the terms of the Eclipse Public License 2.0
-  which accompanies this distribution, and is available at
-  https://www.eclipse.org/legal/epl-2.0/
-
-  SPDX-License-Identifier: EPL-2.0
-
-  Contributors:
-       Obeo - Initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.eclipse.sirius</groupId>
-    <artifactId>sirius-parent</artifactId>
-    <version>7.0.0-SNAPSHOT</version>
-    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
-  </parent>
-
-  <artifactId>org.eclipse.sirius.workflow.ui.page</artifactId>
-  <packaging>eclipse-plugin</packaging>
-  <version>7.0.0-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/Messages.java b/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/Messages.java
deleted file mode 100644
index 71b510f..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.ui.page;
-
-import org.eclipse.sirius.ext.base.I18N;
-import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
-
-/**
- * Translatable messages used in this plug-in.
- * 
- * @author pcdavid
- *
- */
-public class Messages {
-    static {
-        I18N.initializeMessages(Messages.class, WorkflowPagePlugin.INSTANCE);
-    }
-    
-    @TranslatableMessage
-    public static String WorkflowPage_tab_name;
-    
-    @TranslatableMessage
-    public static String WorkflowPage_header_title;
-
-}
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPage.java b/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPage.java
deleted file mode 100644
index d741e46..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPage.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.ui.page;
-
-import java.text.MessageFormat;
-import java.util.Objects;
-import java.util.Optional;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionListener;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.business.api.session.SessionManagerListener;
-import org.eclipse.sirius.server.backend.internal.services.workflow.WorkflowHelper;
-import org.eclipse.sirius.server.internal.SiriusServerPlugin;
-import org.eclipse.sirius.ui.editor.SessionEditorPlugin;
-import org.eclipse.sirius.ui.editor.api.pages.AbstractSessionEditorPage;
-import org.eclipse.sirius.ui.editor.api.pages.PageProviderRegistry.PositioningKind;
-import org.eclipse.sirius.ui.editor.api.pages.PageUpdateCommandBuilder.PageUpdateCommand;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * A page in the session editor that displays the workflow configured for a session and allows the user to trigger the
- * corresponding actions.
- * <p>
- * The implementations is based on a web application; the page simply embed a {@link Browser} component and points it to
- * the URI of the application.
- * 
- * @author pcdavid
- */
-public class WorkflowPage extends AbstractSessionEditorPage {
-    /**
-     * Listener refreshing the {@link Browser} when Sirius resource changes occur.
-     * 
-     * @author <a href="mailto:pierre.guilet@obeo.fr">Pierre Guilet</a>
-     *
-     */
-    private final class BrowserRefresher extends SessionManagerListener.Stub {
-        @Override
-        public void notify(Session updated, int notification) {
-            if (session == updated) {
-                switch (notification) {
-                case SessionListener.REPRESENTATION_CHANGE:
-                case SessionListener.SEMANTIC_CHANGE:
-                case SessionListener.SELECTED_VIEWS_CHANGE_KIND:
-                case SessionListener.VSM_UPDATED:
-                case SessionListener.REPLACED:
-                    Display.getDefault().asyncExec(() -> {
-                        if (browser != null && !browser.isDisposed()) {
-                            browser.refresh();
-                        }
-                    });
-                    break;
-                default:
-                    // do nothing as we will be notified in other way
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * The session.
-     */
-    private final Session session;
-
-    /**
-     * The browser component used to display the workflow web application.
-     */
-    private Browser browser;
-
-    /**
-     * Listener refreshing the {@link Browser} when Sirius resource changes occur.
-     */
-    private BrowserRefresher sessionManagerListenerForBrowserRefresh;
-
-    /**
-     * Creates a new {@link WorkflowPage} for the specified session.
-     * 
-     * @param s
-     *            the session.
-     */
-    public WorkflowPage(Session s) {
-        super(s.getID(), Messages.WorkflowPage_tab_name);
-        this.session = Objects.requireNonNull(s);
-        sessionManagerListenerForBrowserRefresh = new BrowserRefresher();
-        SessionManager.INSTANCE.addSessionsListener(sessionManagerListenerForBrowserRefresh);
-    }
-
-    @Override
-    public void dispose() {
-        SessionManager.INSTANCE.removeSessionsListener(sessionManagerListenerForBrowserRefresh);
-        super.dispose();
-    }
-
-    @Override
-    protected void createFormContent(IManagedForm managedForm) {
-        super.createFormContent(managedForm);
-        FormToolkit toolkit = managedForm.getToolkit();
-        ScrolledForm scrolledForm = managedForm.getForm();
-        scrolledForm.setText(MessageFormat.format(Messages.WorkflowPage_header_title, session.getID()));
-        toolkit.decorateFormHeading(scrolledForm.getForm());
-
-        Composite body = managedForm.getForm().getBody();
-        body.setLayout(GridLayoutFactory.swtDefaults().create());
-
-        Composite subBody = toolkit.createComposite(body);
-        subBody.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).equalWidth(false).margins(0, 0).create());
-        subBody.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        browser = new Browser(subBody, SWT.FILL);
-        GridData browserGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
-        browserGridData.widthHint = 0;
-        browserGridData.heightHint = 0;
-        browser.setLayoutData(browserGridData);
-        browser.setUrl(getRootURL(this.session));
-    }
-
-    private String getRootURL(Session session) {
-        URI uri = session.getSessionResource().getURI();
-        if (uri.isPlatformResource()) {
-            @SuppressWarnings("restriction")
-            java.net.URI serverUri = SiriusServerPlugin.getPlugin().getServerURI();
-            // Use this URL when using the frontend in dev mode.
-            // return "http://localhost:3000/projects/" + uri.segment(1); //$NON-NLS-1$
-            return String.format("http://%s:%d/workflow/projects/%s?fullscreen=true", serverUri.getHost(), serverUri.getPort(), uri.segment(1)); //$NON-NLS-1$
-        } else {
-            return "http://localhost:8080/"; //$NON-NLS-1$
-        }
-    }
-
-    @Override
-    public Optional<String> getLocationId() {
-        return Optional.of(SessionEditorPlugin.DEFAULT_PAGE_ID);
-    }
-
-    @Override
-    public Optional<PositioningKind> getPositioning() {
-        return Optional.of(PositioningKind.AFTER);
-    }
-
-    @Override
-    public Optional<PageUpdateCommand> pageChanged(boolean isVisible) {
-        return Optional.empty();
-    }
-
-    @Override
-    public Optional<PageUpdateCommand> resourceSetChanged(ResourceSetChangeEvent resourceSetChangeEvent) {
-        return Optional.empty();
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPagePlugin.java b/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPagePlugin.java
deleted file mode 100644
index aa778fd..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPagePlugin.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.ui.page;
-
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.ResourceLocator;
-
-public class WorkflowPagePlugin extends EMFPlugin {
-    /**
-     * The identifier of the plugin.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.sirius.workflow.ui.page"; //$NON-NLS-1$
-
-    /**
-     * The sole instance of the plugin.
-     */
-    public static final WorkflowPagePlugin INSTANCE = new WorkflowPagePlugin();
-
-    /**
-     * The sole instance of the bundle activator.
-     */
-    private static Implementation plugin;
-
-    /**
-     * The constructor.
-     */
-    public WorkflowPagePlugin() {
-        super(new ResourceLocator[0]);
-    }
-
-    @Override
-    public ResourceLocator getPluginResourceLocator() {
-        return plugin;
-    }
-
-    /**
-     * Returns the singleton instance of the Eclipse plugin.
-     *
-     * @return the singleton instance.
-     */
-    public static Implementation getPlugin() {
-        return plugin;
-    }
-
-    /**
-     * The bundle activator.
-     *
-     * @author sbegaudeau
-     */
-    public static class Implementation extends EclipsePlugin {
-
-        /**
-         * The constructor. 
-         */
-        public Implementation() {
-            WorkflowPagePlugin.plugin = this;
-        }
-    }
-}
diff --git a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPageProvider.java b/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPageProvider.java
deleted file mode 100644
index d3875bb..0000000
--- a/plugins/org.eclipse.sirius.workflow.ui.page/src/org/eclipse/sirius/workflow/ui/page/WorkflowPageProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018, 2019 Obeo.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *    Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.workflow.ui.page;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Supplier;
-
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.ui.editor.SessionEditor;
-import org.eclipse.sirius.ui.editor.api.pages.AbstractSessionEditorPage;
-import org.eclipse.sirius.ui.editor.api.pages.PageProvider;
-
-/**
- * Provides a {@link WorkflowPage} for the session editor.
- * 
- * @author pcdavid
- */
-public class WorkflowPageProvider extends PageProvider {
-    /**
-     * Prefix used to identify the pages.
-     */
-    private static final String PREFIX = "org.eclipse.sirius.workflow:"; //$NON-NLS-1$
-
-    @Override
-    public Map<String, Supplier<AbstractSessionEditorPage>> getPages(SessionEditor editor) {
-        Session s = editor.getSession();
-        Map<String, Supplier<AbstractSessionEditorPage>> result = new HashMap<>();
-        result.put(PREFIX + s.getID(), () -> new WorkflowPage(s));
-        return result;
-    }
-
-    @Override
-    public boolean provides(String pageId, SessionEditor editor) {
-        if (pageId.startsWith(PREFIX)) {
-            String sid = pageId.substring(PREFIX.length());
-            return SessionManager.INSTANCE.getSessions().stream().anyMatch(s -> s.getID().equals(sid));
-        }
-        return false;
-    }
-}